如何通过 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 Message
----------- -- ---------------- -------
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" NumUnreadableBytes="0" TotalSize="5118410992" TotalNoOfFiles="4691" Flags="84" BackupTypeDetermined="1" SSBTotalNoOfFiles="0" SSBTotalSizeOnDisk="0" /></VolumeInfo>

相关内容