Jump to content

PS: Eventlog zur Serversicherung auslesen


Direkt zur Lösung Gelöst von Kuddel071089,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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*")}
Link zu diesem Kommentar
  • Beste Lösung

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
Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...