ibicis 10 Geschrieben 22. November 2011 Melden Teilen Geschrieben 22. November 2011 Zurzeit wird der Status von 2 Diensten ermittelt. Erst wenn beide Dienste laufen wird eine Erfolgsmail verschickt. Läuft nur einer von beiden Diensten geschieht nichts. Die Syntax: echo Der SQL-Server wurde an folgendem Tag zur folgenden Zeit auf folgendem Computer neugestartet: > "C:\scripts\SQL-restart\mail.txt" echo Datum: %date% >> "C:\scripts\SQL-restart\mail.txt" echo Zeit: %time% >> "C:\scripts\SQL-restart\mail.txt" echo Computer: %computername% >> "C:\scripts\SQL-restart\mail.txt" echo neugestartete Dienste: >> "C:\scripts\SQL-restart\mail.txt" pslist.exe /accepteula W3SQLMGR | findstr /B /I W3SQLMGR >NUL: 2>&1 >>"C:\scripts\SQL-restart\mail.txt" pslist.exe /accepteula NTBTRV | findstr /B /I NTBTRV >NUL: 2>&1 >>"C:\scripts\SQL-restart\mail.txt" findstr /C:"W3SQLMGR" "C:\scripts\SQL-restart\mail.txt" && goto find-str goto :EOF :find-str findstr /C:"NTBTRV" "C:\scripts\SQL-restart\mail.txt" && goto blat-mail goto :EOF :blat-mail cd /d "C:\scripts\SQL-restart" Blat -install sql-server1.domain.local sysadmin@domain.de Blat "mail.txt" ^ -to administrator@domain.de -server mail.domain.de -u administrator@domain.de -pw password ^ -debug -timestamp -log blatSMTPlog.txt ^ Ich möchte nun, dass beim Ermitteln nur eines von beiden Diensten eine entsprechende Mail versendet wird, die eine Fehlermeldung enthält. Kann ich die bislang verwendete Syntax für findstr mit if/else kombinieren bzw. gibt es einen anderen Weg oder muss ich für diesen Vorsatz bei Null beginnen? Danke für jede konstruktive Hilfe vorab. Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 23. November 2011 Melden Teilen Geschrieben 23. November 2011 Was ist der Zweck des ganzen? Ist dafür ein Monitoringsystem nicht geeigneter? Wenn es unbedingt ein Script sein muss und Powershell sein kann: $service1 = (Get-Service W3SQLMGR).Status $service2 = (Get-Service NTBTRV).Status if( ($service1 -eq 'running) -and ($service2 -eq 'running') ){ #Funktion für Erfolg aufrufen }elseif(($service1 -eq 'running) -or ($service2 -eq 'running') ){ #Funktion mit Fehler, dass nur ein Dienst läuft }else{ #Funktion mit Fehler, dass kein Dienst läuft } Zitieren Link zu diesem Kommentar
ibicis 10 Geschrieben 23. November 2011 Autor Melden Teilen Geschrieben 23. November 2011 Danke dir. Es ist eine Benutzeraktion die ausgeführt wird, wenn der Dienst mal hängt, was nicht so häufig vorkommt, deshalb ist ein Monitor (noch) nicht angebracht. Dummerweise kenne ich mich mit Powershell nicht aus, sodass ich diesbzgl. ziemlich auf dem Schlauch stehe. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.