Kuddel071089 9 Geschrieben 15. Juni 2017 Melden Teilen Geschrieben 15. Juni 2017 Hallo zusammen, wir haben bei unseren DomainControllern gerade die Windows Server Sicherung aktiviert. Jetzt bin ich gerade dabei ein Powershell Skript zu schreiben, welches prüft ob die Sicherungen korrekt liefen. Im Eventlog findet man dazu unter "Anwendungs- und Dienstprotokolle/Microsoft/WIndows/Backup/Betriebsbereit" jeweils einen Eintrag mit der Ereignis-ID 4: Message: Die Sicherung wurde erfolgreich abgeschlossen. Diesen Eintrag würde ich jetzt gerne per Powershell abfragen und mir dann eine Mail zukommen lassen. Leider bekomme ich es nicht hin per "Get-Eventlog" den o.g. Eintrag abzufragen. Hier im Forum gibts es schon ein Thema dazu: http://www.mcseboard.de/topic/173783-powershell-mit-get-eventlog/ Nur da werden Ereignisse mit anderen IDs abgefragt. Hat jemand einen Tip für mich ? Vielen Dank schon einmal Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 15. Juni 2017 Melden Teilen Geschrieben 15. Juni 2017 Get-Eventog ist veraltet und sollte für neue Scripte nicht mehr verwendet werden. Schau Dir einfach mal die Hilfe für Get-WinEvent an .... inclusive der Beispiele ... Zitieren Link zu diesem Kommentar
Kuddel071089 9 Geschrieben 15. Juni 2017 Autor Melden Teilen Geschrieben 15. Juni 2017 Also die Abfrage der Erfolgreich-Meldungen klappt schonmal: Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName DC2 | Where-Object {$_.Id -eq 4} Jetzt will ich natürlich in meinem Skript immer nur prüfen ob am gestrigen Tag die Sicherung erfolgreich lief. Leider fuktioniert der Filter nicht: Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName DC2 | Where-Object {$_.Id -eq 4 -and ($_.TimeCreated -like "*14.06.2017*")} Habe den Fehler gefunden. Ist mal wieder ein Übersetzungsproblem: Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName DC2 | Where-Object {$_.Id -eq 4 -and ($_.TimeCreated -like "*06/14/2017*")} Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 15. Juni 2017 Melden Teilen Geschrieben 15. Juni 2017 Moin, häng doch einfach in der Ereignisanzeige eine Reaktion an das Event. Dann wirst du immer bei neuem Auftreten informiert. Gruß, Nils 1 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 15. Juni 2017 Melden Teilen Geschrieben 15. Juni 2017 häng doch einfach in der Ereignisanzeige eine Reaktion an das Event. Dann wirst du immer bei neuem Auftreten informiert. Wow ... auf die geilsten Lösungen kommt man einfach manchmal nicht, wenn man nicht ständig damit arbeitet. :thumb1: :jau: Zitieren Link zu diesem Kommentar
Beste Lösung Kuddel071089 9 Geschrieben 15. Juni 2017 Autor Beste Lösung Melden Teilen Geschrieben 15. Juni 2017 Moin, häng doch einfach in der Ereignisanzeige eine Reaktion an das Event. Dann wirst du immer bei neuem Auftreten informiert. Gruß, Nils Hallo NIls, wusste bis eben gar nicht, dass so was geht ^^. Ja gut, das wäre dann wohl der einfach Weg gewesen :-D Für die Interessierten, wie ich es umgesetzt habe: cls $host.ui.RawUI.WindowTitle = "DC Backup Check v0.2" #Mailvariablen $Mailempfaenger = "xxxx@xxxx.de" $smtpserver = "outlook.xxxx.de" $absender = "Check@xxxx.de" #Server definieren $servers = @("DC01","DC02","DC03") #Checkschleife foreach($server in $servers) { #Datum von gestern in Variable $gestern = (Get-Date) - (New-TimeSpan -Day 1) #Check ob das Backup gestartet wurde $event_start = Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName $server | Where-Object {$_.Id -eq 1 -and ($_.TimeCreated -ge $gestern)} if($event_start) { #Check ob das Backup erfolgreich abgeschlossen wurde #Event in Variable schreiben $event_erfolgreich = Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName $server | Where-Object {$_.Id -eq 4 -and ($_.TimeCreated -ge $gestern)} if($event_erfolgreich) { #Klammer vom Check ob das Backup erfolgreich war #Erfolgreichmail $mailbody = "C:\mailbody_$server.txt" "$($event_erfolgreich.TimeCreated)" | Out-File -FilePath $mailbody -Append "$($event_erfolgreich.Message)" | Out-File -FilePath $mailbody -Append $body = Get-Content -Raw $mailbody Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from $absender -Subject "+++ AD DC Backup: $server --> SUCCESS +++" -Body $body -Encoding Unicode Remove-Item $mailbody } else { #Fehlermeldung, dass das Backup nicht erfolgreich abgeschlossen wurde Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from $absender -Subject "+++ AD DC Backup: $server --> ERROR +++" -Body "Das Backup wurde nicht erfolgreich abgeschlossen" -Encoding Unicode } }#Klammer vom Check ob das Backup gestartet wurde else { #Fehlermeldung, dass es keinen Eventlog-Eintrag für den Start des Backups gibt Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from $absender -Subject "+++ AD DC Backup: $server --> ERROR +++" -Body "Das Backup wurde nicht ausgeführt" -Encoding Unicode } }#Klammer der ForEach Schleife Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 15. Juni 2017 Melden Teilen Geschrieben 15. Juni 2017 Wenn du den Quellcode einrückst brauchst du nicht kommentieren, woher die Klammern kommen, dann sieht man das direkt. Zitieren Link zu diesem Kommentar
Kuddel071089 9 Geschrieben 15. Juni 2017 Autor Melden Teilen Geschrieben 15. Juni 2017 Wenn du den Quellcode einrückst brauchst du nicht kommentieren, woher die Klammern kommen, dann sieht man das direkt. stimmt. guter tip, danke Zitieren Link zu diesem Kommentar
GuentherH 61 Geschrieben 15. Juni 2017 Melden Teilen Geschrieben 15. Juni 2017 Nur als kleine Anmerkung. Die Abfrage auf Event ID 4 ist zu wenig. Event ID 4 sagt nur, dass ein Backup Job gelaufen ist. Ob er erfolgreich war oder nicht kann man daraus nicht erkennen. Es muss auch noch auf Event ID 14 mit HRESULT="0" abgefragt werden. Erst mit beiden Parametern kann auf eine erfolgreiche Sicherung geprüft werden. LG Günther 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.