Ergänzung eines PowerShell Skriptes um eine Benachrichtigung von Fehlern
Hallo zusammen,
ich hätte einmal eine Frage zu PowerShell.
Und zwar haben wir im Unternehmen ein Festplattenüberwachungsskript laufen, welches einmal täglich die Kapazitäten der Festplatten abfragt und beim Erreichen eines bestimmten Schwellwertes eine E-Mail an uns schickt. Zusätzlich dazu überprüft das Skript den Replikationsstatus auf Fehler.
Nun möchte ich dazu eine Funktion hinzufügen, die wenn das Skript nicht erfolgreich läuft; sprich nicht ausgeführt wird, diese Stelle überspringt und mit der nächsten Aufgabe weitermacht.
Dazu soll es uns bei einem Fehler eine E-Mail- Benachrichtigung schicken, in der am besten noch gleich die Fehlermeldung und die entsprechende Zeile steht.
Hätte dazu einer eine Idee ob und wie man das realisieren kann? Eventuell mit einer IF-Schleife?
Vielleicht hat einer von euch damit Erfahrung, oder sonst einen hilfreichen Tipp.
Vielen Dank für die Hilfe schon einmal im Voraus.
Freundliche Grüße
brokentoothkoi
ich hätte einmal eine Frage zu PowerShell.
Und zwar haben wir im Unternehmen ein Festplattenüberwachungsskript laufen, welches einmal täglich die Kapazitäten der Festplatten abfragt und beim Erreichen eines bestimmten Schwellwertes eine E-Mail an uns schickt. Zusätzlich dazu überprüft das Skript den Replikationsstatus auf Fehler.
Nun möchte ich dazu eine Funktion hinzufügen, die wenn das Skript nicht erfolgreich läuft; sprich nicht ausgeführt wird, diese Stelle überspringt und mit der nächsten Aufgabe weitermacht.
Dazu soll es uns bei einem Fehler eine E-Mail- Benachrichtigung schicken, in der am besten noch gleich die Fehlermeldung und die entsprechende Zeile steht.
Hätte dazu einer eine Idee ob und wie man das realisieren kann? Eventuell mit einer IF-Schleife?
Vielleicht hat einer von euch damit Erfahrung, oder sonst einen hilfreichen Tipp.
Vielen Dank für die Hilfe schon einmal im Voraus.
Freundliche Grüße
brokentoothkoi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 667604
Url: https://administrator.de/contentid/667604
Ausgedruckt am: 23.11.2024 um 16:11 Uhr
2 Kommentare
Neuester Kommentar
Servus @brokentoothkoi,
da gibt es viele Möglichkeiten, ich würde das zwar direkt mittels Monitoring System überwachen(Icinga/Prtg & Co.) aber wenn du es unbedingt im Skript machen willst wäre eine Methode bspw. mit Try{}catch{} zu arbeiten.
Beispiel
Beachte das CMDLets welche die Option -ErrorAction bieten explizit auf -ErrorAction Stop gesetzt werden sollten damit sie eine Exception werfen.
Weitere Möglichkeiten zum Errorhandling in der Powershell findest du hier
Alles, was Sie schon immer über Ausnahmen wissen wollten
Grüße Uwe
da gibt es viele Möglichkeiten, ich würde das zwar direkt mittels Monitoring System überwachen(Icinga/Prtg & Co.) aber wenn du es unbedingt im Skript machen willst wäre eine Methode bspw. mit Try{}catch{} zu arbeiten.
Beispiel
try{
# do something here
# example throw an Exception
throw "This is an explicit failure!"
# do some other things
write-host "Something goes on."
}catch{
# $_ Object contains exception details
# $_.Exception.Message only the error message
Send-MailMessage -From "user@domain.de" -to "empfaenger@domain.de" -Subject "Error in occured in script" -BodyAsHtml -Body "<pre>$($_ | out-string)</pre>" -SmtpServer smtp.domain.de -Credential (New-Object PSCredential("USERNAME",(ConvertTo-SecureString 'PASSWORD' -AsPlainText -Force))) -UseSSL
}
Weitere Möglichkeiten zum Errorhandling in der Powershell findest du hier
Alles, was Sie schon immer über Ausnahmen wissen wollten
Grüße Uwe