Quiero verificar automáticamente el resultado más reciente de WindowsServerBackup a través de PowerShell en Windows Server 2012/2012 R2.
No se trata sólo de "éxito" o "fracaso", sino también de "volumen respaldado" y "mensaje de error". Intenté utilizar las siguientes formas pero no puedo obtener la información anterior.
Get-WB*
No es suficiente lo que quiero hacer.- No puedo encontrar el objeto WMI en WindowsServerBackup.
Get-Eventlog
No puedo acceder a la copia de seguridad (Registro de aplicaciones y servicios/Microsoft/Windows/Copia de seguridad)
¿Me perdí algún camino correcto? ¿Qué tengo que hacer?
Respuesta1
Con la información deeste sitio web, pude resolverlo:
Puede utilizar el Get-WinEvent
cmdlet, porque Get-EventLog
sólo puede acceder a muy pocos archivos de registro. Para ver todos los archivos de registro en el sistema, puede usar:
Get-WinEvent -ListLog *
Para encontrar uno determinado, puedes usar
Get-WinEvent -ListLog * | Where LogName -like "*backup*"
Algunos de esos registros solo son accesibles para personas con privilegios elevados. El que queremos se llama "Microsoft-Windows-Backup", se puede acceder a él sin privilegios de administrador.
Puede obtener todos los eventos de este registro usando este comando:
Get-WinEvent "Microsoft-Windows-Backup"
Esa es la forma de acceder al registro de eventos de la copia de seguridad, pero no estoy seguro de que contenga toda la información que necesita.
Respuesta2
Para obtener una descripción general, donde puede ver mensajes de error:
# All messages
Get-WinEvent "Microsoft-Windows-Backup" | Format-Table -Wrap
# Only the newest
Get-WinEvent "Microsoft-Windows-Backup" -MaxEvents 1 | Format-Table -Wrap
Para obtener EventData con detalles como información sobre volúmenes, puede 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"
Por supuesto, esto se puede analizar más a fondo, pero con estos comandos puedes obtener la información.
Salida de muestra de mi servidor:
Hora de creación Nivel de ID Nombre de visualización Mensaje
----------- -- ---------------- -------
21-02-2018 23:12:16 14 Información La operación de copia de seguridad se ha completado.<VolumeInfo><VolumeInfoItem Name="D:" OriginalAccessPath="D:" State="14" HResult="0" DetailHResult="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>