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.
Get-WB*
não é suficiente o que eu quero fazer.- Não consigo encontrar o objeto WMI no WindowsServerBackup.
Get-Eventlog
nã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-WinEvent
cmdlet, porque Get-EventLog
só 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>