我想通过 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 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>