ibicis 10 Geschrieben 22. November 2011 Melden 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.
Dukel 468 Geschrieben 23. November 2011 Melden 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 }
ibicis 10 Geschrieben 23. November 2011 Autor Melden 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden