我想透過 Windows Server 2012/2012 R2 上的 PowerShell 自動檢查最新的 WindowsServerBackup 結果。
它不僅是“成功”或“失敗”,還有“備份卷”和“錯誤訊息”。所以我嘗試使用以下方式,但無法取得上述資訊。
Get-WB*
我想做的還不夠。- 我在 WindowsServerBackup 周圍找不到 WMI 物件。
Get-Eventlog
無法存取備份(應用程式和服務日誌/Microsoft/Windows/備份)
我錯過了一些正確的方法嗎?我該怎麼辦?
答案1
有了來自的信息這個網站,我能夠弄清楚:
您可以使用Get-WinEvent
cmdlet,因為Get-EventLog
只能存取很少的日誌檔案。要查看系統上的所有日誌文件,您可以使用:
Get-WinEvent -ListLog *
要查找某個特定的,您可以使用
Get-WinEvent -ListLog * | Where LogName -like "*backup*"
其中一些日誌只能透過提升的權限進行存取。我們想要的名為“Microsoft-Windows-Backup”,無需管理員權限即可存取它。
您可以使用以下命令從此日誌中取得所有事件:
Get-WinEvent "Microsoft-Windows-Backup"
這是存取備份事件日誌的方法,但我不確定它是否包含您需要的所有資訊。
答案2
要獲得概述,您可以在其中查看錯誤訊息:
# All messages
Get-WinEvent "Microsoft-Windows-Backup" | Format-Table -Wrap
# Only the newest
Get-WinEvent "Microsoft-Windows-Backup" -MaxEvents 1 | Format-Table -Wrap
若要取得包含磁碟區資訊等詳細資訊的 EventData,您可以使用下列程式碼:
# 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"
當然可以進一步解析,但是透過這些命令您可以獲得資訊。
我的伺服器的範例輸出:
TimeCreated Id LevelDisplayName 訊息
----------- -- ---------------- -------
21-02-2018 23:12:16 14 資訊備份作業已完成。<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" NumUnreadBytes="0" TotalSize="5118410992"第4691章