Windows Sicherung per Script + Abfrage

Frankenheimer

╬Bruderschaft ALC╬
Thread Starter
Mitglied seit
30.09.2003
Beiträge
12.957
Ort
in einer Wohnung
Tag zusammen,

da der Sicherungs Scheduler von Windows nur die Option "OFT und NOCH ÖFTER" kennt und somit für mein Vorhaben einer monatlichen Sicherung nicht geeignet ist, muss ich das Ganze per Script abfeuern.

Folgender Befehl scheint zu funktionieren:
Code:
wbadmin start backup -allcritical -backuptarget:\\localhost\e$ -vssFull

Laufwerk E: entspricht meiner externen Platte. Verifiziert, dass E: auch tatsächlich richtig und vor allem da ist, fange ich per Script ab welches einmal überprüft, ob LW E: da ist und zum anderen ob das Volume-Label von E: "BACKUP" entspricht. Das reicht mir als Fehlerabfrage.

Wichtiger wäre für mich allerdings der Punkt der Fehlerabfrage der Sicherung. Ich möchte eigentlich nach der Sicherung mittels Script abfragen, ob das Backup erfolgreich war. Es soll dann eine simple Datei auf dem Desktop für alle User abgelegt werden, entweder Sicherung_01_05_2013_erfolgreich.txt oder sowas in der Art.

Backup Operations

Hier sollen angeblich die Event-IDs ausgegeben werden, in dem Falle z.B. ID4. Aber im Application Log finde ich dazu nichts wenn ich ein Testbackup starte. Evtl. muss dieser Errorcode auch direkt abgefragt werden. Ich bin grade etwas überfragt was ich da tun muss. Powershell steht auch zur Verfügung (Server 2012), aber davon habe ich ehrlich gesagt, keinerlei Ahnung und wäre auf Beispielprogrammierung angewiesen.

Danke schonmal!
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich hatte sowas ähnliches schonmal per Powershell gelöst.
Hier mein Script, Eventlog habe ich schon auf dein Microsoft-Windows-Backup geändert, die Auswertung der EventCodes musst du je nach dem was du brauchst halt anpassen.
Das Script täglich als geplanten Task laufen lassen, und es sollte denke ich das tun was du willst :)

Code:
$eventlogs = Get-WmiObject -class Win32_NTLogEvent -filter "(SourceName='Microsoft-Windows-Backup')" | Where-Object { $_.timegenerated -gt ((Get-Date).AddDays(-1)).ToString("yyyyMMdd")}

if($eventlogs.Count -gt 0)
{
	foreach($eventlog in $eventlogs)
	{
		if($eventlog.EventCode -eq 4)
		{
			$path = "C:\Scripts\Log\"+$eventlog.TimeGenerated+"-successfull.log"
			$eventlog | Format-List | Out-File $path
		}
		else
		{
			$path = "C:\Scripts\Log\"+$eventlog.TimeGenerated+"-error.log"
			$eventlog | Format-List | Out-File $path
		}
	}
}

Um zu prüfen ob überhaupt im Eventlog Daten vorhanden sind würde ich einmal diese Zeile in Poershell eingeben. Dann solltest du eigentlich alle Eventlogs des Backups angezeigt bekommen. Wenn hier nichts kommt würde ich sagen ist am wbadmin start backup-Befehl was faul.
Code:
Get-WmiObject -class Win32_NTLogEvent -filter "(SourceName='Microsoft-Windows-Backup')" | Format-List
 
Vielen Dank schonmal für die Mühe die du dir gemacht hast. Du scheinst Recht zu haben. Mit WBADMIN ist etwas faul. Im Eventlog sind keinerlei Hinweise zu finden, ob das Backup erfolgreich gelaufen ist. Lediglich "Backup Engine Service has stopped" oder "has started". Damit kann ich leider nichts anfangen. Auch sonst scheint das Backup wohl immer ein gewisses Eigenleben zu führen.

Ein Arbeitskollege sagte mir, dass man auch über Windows\Logs sehen kann ob das erfolgreich war. Dort müssten eigentlich Logfiles liegen anhand deren Größe man erkennen kann, ob das Backup erfolgreich war. Alles größer >1KB = Fehler. Gibts aber nicht, dort habe ich nur *.etl Dateien die ohne Umwandlung nicht lesbar sind.

Es wird darauf hinauslaufen, dass ich den Output des Backups direkt in eine Datei umleiten muss. Dort steht immerhin am Ende:

Code:
Creating a backup of volume Local Disk(C:), copied (79%).
Creating a backup of volume Local Disk(C:), copied (83%).
Creating a backup of volume Local Disk(C:), copied (86%).
Creating a backup of volume Local Disk(C:), copied (90%).
Creating a backup of volume Local Disk(C:), copied (93%).
Creating a backup of volume Local Disk(C:), copied (97%).
The backup of volume Local Disk(C:) successfully completed.
The backup operation successfully completed.
Summary of the backup operation:
------------------

The backup of volume Local Disk(C:) successfully completed.

Wenn ich die Datei nach "successfully completed" absuche und daraus einen Rückgabewert aus erfolgreich oder nicht baue, dann hätte ich das Ziel auch erreicht. Elegant ist es leider nicht. Aber so ist das halt, wenn keine sauberen Einträge im Eventlog sind.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh