Я хочу автоматически проверять последний результат WindowsServerBackup через PowerShell на Windows Server 2012/2012 R2.
Это не только «успех» или «сбой», но и «резервный том» и «сообщение об ошибке». Поэтому я попытался использовать следующие способы, но не могу получить вышеуказанную информацию.
Get-WB*
недостаточно того, что я хочу делать.Get-Eventlog
нет доступа к резервному копированию (журнал приложений и служб / Microsoft / Windows / Резервное копирование)Я что-то упустил? Что я должен делать?
Чтобы получить обзор, где вы можете увидеть сообщения об ошибках:
# 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" DetailHResult = "0" PreviousState = "8" IsCritical = "0" IsIncremental = "1" BlockLevel = " 0 "HasFiles =" 1 "HasSystemState =" 0 "IsCompested =" 0 "IsPruned =" 0 "IsRecreateVhd =" 0 "FullBackupReason =" 0 "DataTransferred =" 6274990320 "NumUnreadableBytes =" 0 "TotalSize =" 5118410992 "TotalSize =" 5118410992 " 4691 "Flags =" 84 "BackupTypeDetermined =" 1 "SSBTotalNoOfFiles =" 0 "SSBTotalSizeOnDisk =" 0 "/> </VolumeInfo>
С информацией от этот сайт, Я смог понять это:
Вы можете использовать Get-WinEvent
командлет, потому что Get-EventLog
может получить доступ только к очень немногим файлам журнала. Чтобы просмотреть все файлы журнала в системе, вы можете использовать:
Get-WinEvent -ListLog *
Чтобы найти конкретный, вы можете использовать
Get-WinEvent -ListLog * | Where LogName -like "*backup*"
Некоторые из этих журналов доступны только для пользователей с повышенными привилегиями. Тот, который нам нужен, называется «Microsoft-Windows-Backup», к нему можно получить доступ без прав администратора.
Вы можете получить все события из этого журнала с помощью этой команды:
Get-WinEvent "Microsoft-Windows-Backup"
Это способ получить доступ к журналу событий резервного копирования, но я не уверен, что он содержит всю необходимую информацию.