Ich möchte das neueste WindowsServerBackup-Ergebnis automatisch per PowerShell auf Windows Server 2012/2012 R2 überprüfen.
Es heißt nicht nur „Erfolgreich“ oder „Fehler“, sondern auch „Volume gesichert“ und „Fehlermeldung“. Ich habe es also mit den folgenden Methoden versucht, aber ich kann die oben genannten Informationen nicht erhalten.
Get-WB*
ist nicht genug, was ich tun möchte.- Ich kann kein WMI-Objekt in der Nähe von WindowsServerBackup finden.
Get-Eventlog
kann nicht auf Backup zugreifen (Anwendungs- und Dienstprotokoll/Microsoft/Windows/Backup)
Habe ich einen Weg übersehen? Was soll ich tun?
Antwort1
Mit den Informationen vonDiese Internetseite, ich konnte es herausfinden:
Sie können das Cmdlet verwenden Get-WinEvent
, da Get-EventLog
nur auf sehr wenige Protokolldateien zugegriffen werden kann. Um alle Protokolldateien auf dem System anzuzeigen, können Sie Folgendes verwenden:
Get-WinEvent -ListLog *
Um einen bestimmten zu finden, können Sie verwenden
Get-WinEvent -ListLog * | Where LogName -like "*backup*"
Auf einige dieser Protokolle kann nur mit erhöhten Rechten zugegriffen werden. Das gewünschte Protokoll heißt „Microsoft-Windows-Backup“ und kann ohne Administratorrechte aufgerufen werden.
Sie können alle Ereignisse aus diesem Protokoll mit diesem Befehl abrufen:
Get-WinEvent "Microsoft-Windows-Backup"
Auf diese Weise können Sie auf das Sicherungsereignisprotokoll zugreifen, aber ich bin nicht sicher, ob es alle benötigten Informationen enthält.
Antwort2
Um einen Überblick zu bekommen, wo Sie Fehlermeldungen sehen können:
# All messages
Get-WinEvent "Microsoft-Windows-Backup" | Format-Table -Wrap
# Only the newest
Get-WinEvent "Microsoft-Windows-Backup" -MaxEvents 1 | Format-Table -Wrap
Um EventData mit Details wie Informationen zu Volumes abzurufen, können Sie diesen Code verwenden:
# Save as variable
$Event = Get-WinEvent "Microsoft-Windows-Backup" -MaxEvents 1
# Convert to XML
$EventXML = [xml]$Event.ToXml()
# Show all EventData
$EventXML.Event.EventData.Data | Format-Table -Wrap
# Show only VolumesInfo data, with things like path, size and number of files
$EventXML.SelectSingleNode("//*[@Name='VolumesInfo']")."#text"
Das kann natürlich weiter analysiert werden, aber mit diesen Befehlen können Sie die Informationen erhalten.
Beispielausgabe von meinem Server:
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
21-02-2018 23:12:16 14 Information Der Sicherungsvorgang ist abgeschlossen.<VolumeInfo><VolumeInfoItem Name="D:" OriginalAccessPath="D:" State="14" HResult="0" DetailedHResult="0" PreviousState="8" IsCritical="0" IsIncremental="1" BlockLevel="0" HasFiles="1" HasSystemState="0" IsCompacted="0" IsPruned="0" IsRecreateVhd="0" FullBackupReason="0" DataTransferred="6274990320" NumUnreadableBytes="0" TotalSize="5118410992" TotalNoOfFiles="4691" Flags="84" BackupTypeDetermined="1" SSBTotalNoOfFiles="0" SSBTotalSizeOnDisk="0" /></VolumeInfo>