Как получить доступ к результату и объему WindowsServerBackup через PowerShell?

Я хочу автоматически проверять последний результат WindowsServerBackup через PowerShell на Windows Server 2012/2012 R2.

Это не только "успех" или "сбой", но также "резервное копирование тома" и "сообщение об ошибке". Поэтому я попытался использовать следующие способы, но я не могу получить вышеуказанную информацию.

  1. Get-WB* не достаточно того, что я хочу сделать.
  2. Я не могу найти объект WMI вокруг WindowsServerBackup.
  3. Get-Eventlog невозможно получить доступ к резервному копированию (Журнал приложений и служб /Microsoft/Windows/ Резервное копирование)

Я пропустил какой-то правильный путь? Что я должен делать?

2 ответа

Решение

С информацией с этого сайта, я смог понять это:

Вы можете использовать Get-WinEvent командлет, потому что Get-EventLog может получить доступ только к очень немногим файлам журналов. Чтобы увидеть все файлы журнала в системе, вы можете использовать:

Get-WinEvent -ListLog *

Чтобы найти определенный, вы можете использовать

Get-WinEvent -ListLog * | Where LogName -like "*backup*"

Некоторые из этих журналов доступны только для пользователей с повышенными привилегиями. Тот, который нам нужен, называется "Microsoft-Windows-Backup", к нему можно получить доступ без прав администратора.

Вы можете получить все события из этого журнала, используя эту команду:

Get-WinEvent "Microsoft-Windows-Backup"

Это способ доступа к журналу событий резервного копирования, но я не уверен, содержит ли он всю необходимую информацию.

Чтобы получить обзор, где вы можете увидеть сообщения об ошибках:

# 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 Информация Операция резервного копирования завершена.

Другие вопросы по тегам