如何透過PowerShell存取WindowsServerBackup的結果和磁碟區?

如何透過PowerShell存取WindowsServerBackup的結果和磁碟區?

我想透過 Windows Server 2012/2012 R2 上的 PowerShell 自動檢查最新的 WindowsServerBackup 結果。

它不僅是“成功”或“失敗”,還有“備份卷”和“錯誤訊息”。所以我嘗試使用以下方式,但無法取得上述資訊。

  1. Get-WB* 我想做的還不夠。
  2. 我在 WindowsServerBackup 周圍找不到 WMI 物件。
  3. Get-Eventlog無法存取備份(應用程式和服務日誌/Microsoft/Windows/備份)

我錯過了一些正確的方法嗎?我該怎麼辦?

答案1

有了來自的信息這個網站,我能夠弄清楚:

您可以使用Get-WinEventcmdlet,因為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章

相關內容