Como acessar o resultado e o volume do WindowsServerBackup via PowerShell?

Como acessar o resultado e o volume do WindowsServerBackup via PowerShell?

Quero verificar automaticamente o resultado mais recente do WindowsServerBackup via PowerShell no Windows Server 2012/2012 R2.

Não é apenas “sucesso” ou “falha”, mas também “volume de backup” e “mensagem de erro”. Tentei usar as seguintes formas, mas não consigo obter as informações acima.

  1. Get-WB* não é suficiente o que eu quero fazer.
  2. Não consigo encontrar o objeto WMI no WindowsServerBackup.
  3. Get-Eventlognão consigo acessar o Backup (Log de Aplicativos e Serviços/Microsoft/Windows/Backup)

Eu perdi algum caminho certo? O que devo fazer?

Responder1

Com as informações deesse site, consegui descobrir:

Você pode usar o Get-WinEventcmdlet, porque Get-EventLogsó pode acessar poucos arquivos de log. Para ver todos os arquivos de log do sistema, você pode usar:

Get-WinEvent -ListLog *

Para encontrar um determinado, você pode usar

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

Alguns desses logs só são acessíveis com privilégios elevados. O que queremos se chama "Microsoft-Windows-Backup", pode ser acessado sem privilégios de administrador.

Você pode obter todos os eventos deste log usando este comando:

Get-WinEvent "Microsoft-Windows-Backup"

Essa é a maneira de acessar o log de eventos do Backup, mas não tenho certeza se ele contém todas as informações necessárias.

Responder2

Para obter uma visão geral, onde você pode ver mensagens de erro:

# All messages
Get-WinEvent "Microsoft-Windows-Backup" | Format-Table -Wrap

# Only the newest
Get-WinEvent "Microsoft-Windows-Backup" -MaxEvents 1 | Format-Table -Wrap

Para obter EventData com detalhes como informações sobre volumes, você pode usar este código:

# 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"

É claro que isso pode ser analisado mais detalhadamente, mas com esses comandos você pode obter as informações.

Exemplo de saída do meu servidor:

Mensagem TimeCreated Id LevelDisplayName
----------- -- ---------------- -------
21-02-2018 23:12:16 14 Informações A operação de backup foi concluída.

<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>

informação relacionada