¿Cómo ver y analizar WindowsUpdate.log en Windows 10 / Windows Server 2016?

Históricamente, el WindowsUpdate.log Se ha utilizado un archivo de texto sin formato para analizar el funcionamiento del agente y el servicio de Windows Update. Sin embargo, los registros de Windows Update en Windows 10 (Windows Server 2016/2019) se guardan en el Seguimiento de eventos para Windows formato de archivo (ETW), en lugar del archivo de texto habitual. Con tal acción, los desarrolladores de Windows planearon aumentar el rendimiento del subsistema de registro y reducir el espacio ocupado por los archivos de texto en el disco.

Por lo tanto, los eventos de Windows Update ya no se escriben en tiempo real en el % windir% WindowsUpdate.log expediente. Aunque el archivo todavía está presente en la raíz de la carpeta de Windows, solo dice que el formato ETW ahora se usa para recopilar registros de WU.

Los registros de Windows Update ahora se generan mediante ETW (Seguimiento de eventos para Windows).

Ejecute el comando Get-WindowsUpdateLog PowerShell para convertir las trazas ETW en un WindowsUpdate.log legible.

Para obtener más información, visite http://go.microsoft.com/fwlink/?LinkId=518345

archivo windowsupdate.log vacío en Windows 10 y Windows Server 2016/2019

La desventaja del nuevo método de registro para los administradores: ahora no puede analizar rápidamente el servicio del Agente de Windows Update, busque códigos de error en el archivo de texto WindowsUpdate.log (consulte la Lista completa de códigos de error de Windows Update), verifique la configuración del agente WSUS y analizar el historial de instalación de actualizaciones.

Puede convertir eventos ETW al archivo de texto sin formato WindowsUpdate.log para un análisis más conveniente de los eventos del servicio de actualización. Para hacer esto, use el cmdlet de PowerShell – Get-WindowsUpdateLog. Este cmdlet le permite recopilar información de todos .etl archivos (se almacenan en C: WINDOWS Logs WindowsUpdate) y cree un único archivo de texto WindowsUpdate.log.

etl archivos en C: WINDOWS Logs WindowsUpdate

Para generar el archivo WindowsUpdate.log y guardarlo en C: PS Logs, ejecute el siguiente comando en la consola de PowerShell:

Get-WindowsUpdateLog -logpath C:PSLogsWindowsUpdate.log

Get-WindowsUpdateLog cmdlet de powershell para generar un archivo de texto sin formato windowsupdate.log

En Windows Server 2016, cuando ejecuta el cmdlet Get-WindowsUpdateLog, puede recibir el error «Falta SymSrv.dll»:

Copy-Item : Cannot find path 'C:Program FilesWindows DefenderSymSrv.dll' because it does not exist. At C:Windowssystem32WindowsPowerShellv1.0ModulesWindowsUpdateWindowsUpdateLog.psm1:56 char:5

Get-WindowsUpdateLog Copy-Item: no se puede encontrar la ruta 'C: Archivos de programa Windows Defender SymSrv.dll' porque no existe

El archivo «C: Archivos de programa Windows Defender SymSrv.dll» suele faltar si Windows Defender no está instalado en el servidor.

Para corregir el error, puede instalar Windows Defender, copiar el archivo SymSrv.dll de otro Windows Server 2016 / Windows 10 o buscar el archivo SymSrv.dll en la carpeta local de WinSxS (en mi caso, el directorio se llamó C: Windows WinSxS amd64_windows-defender-service-cloudclean_…) y cópielo en la carpeta «C: Archivos de programa Windows Defender».

SymSrv.dll Defender dll

En versiones anteriores de Windows 10, la primera vez que ejecuta el cmdlet Get-WindowsUpdateLog, descarga e instala el Tienda de símbolos de Internet de Microsoft. Las versiones más recientes de Windows 10 acceden al servidor de caracteres de Microsoft en Azure en línea. Entonces el cmdlet:

  1. Lee los datos de todos los archivos .etl;
  2. Los datos se convierten a formato CSV (por defecto) o XML;
  3. Los datos del archivo en un formato intermedio se convertirán y agregarán al archivo de texto de registro especificado en el parámetro LogPath (si no se especifica el parámetro en LogPath, WindowsUpdate.log se crea en el escritorio del usuario que ejecuta el comando)

Consejo. Otra forma de analizar archivos ETL, pero algo más complicada, es utilizando Tracefmt.exe utilidad para recibir datos de .etl.

Abra el archivo de registro con este comando de PowerShell:

Invoke-Item -Path C:PSLogsWindowsUpdate.log

En algunos casos, en el archivo WindowsUpdate.log puede ver tales cadenas:

Unknown(140): GUID=53212e4cc-4321-f43a-2123-9ada0090bc12b (No Format Information found).

WindowsUpdate.log Desconocido (10): GUID = (No se encontró información de formato).

Esto significa que no tiene instalado el servidor de símbolos de Windows (hoy no puede descargar un instalador de símbolos de Windows por separado, porque se descarga automáticamente desde la tienda de símbolos en Azure). Para entornos aislados, puede utilizar la versión sin conexión del servidor de símbolos de acuerdo con el artículo. Símbolos sin conexión para Windows Update.

Consejo. Tenga en cuenta que el archivo WindowsUpdate.log creado es estático y no se actualiza en tiempo real como en versiones anteriores de Windows. Para actualizar el archivo, debe ejecutar el cmdlet Get-WindowsUpdateLog una vez más o crear una secuencia de comandos que actualice automáticamente el archivo con cierta frecuencia (el archivo se sobrescribe).

Es bastante difícil analizar el archivo WindowsUpdate.log resultante, porque recopila datos de muchas fuentes de eventos:

  • AGENTE: eventos del agente de Windows Update;
  • AU – actualización automática;
  • AUCLNT – interacción del usuario;
  • HANDLER – actualización de la gestión del instalador;
  • MISC – información común de WU;
  • PT: sincronización de actualizaciones con el almacén de datos local;
  • INFORME – recopilación de informes;
  • SERVICIO – eventos de inicio / parada del servicio wuauserv;
  • CONFIGURACIÓN: instalación de nuevas versiones del cliente de Windows Update;
  • DownloadManager: descarga de actualizaciones al caché local mediante BITS;
  • Controlador, Configuración: encabezados del instalador (CBS, etc.);
  • y muchos otros.

Puede seleccionar los últimos 30 eventos del Agente de Windows Update (agente) con una simple expresión regular:

Select-String -Pattern 'sagents' -Path C:PSLogsWindowsUpdate.log | Select-Object -Last 30

analizar windowsupdate.log con powershell

Puede filtrar eventos en WindowsUpdate.log por varias fuentes:

Select-String -Pattern 'sagents|smiscs' -Path c:PSLogsWindowsUpdate.log | Select-Object -Last 50

De manera similar, puede analizar el archivo de texto en busca de eventos por número de KB, errores (FALLIDO, Código de salida, FATAL).

También puede generar el archivo WindowsUpdate.log para la computadora o servidor remoto:

Get-WindowsUpdateLog -ETLPath \ny-srf-1C$windowsLogsWindowsUpdate -LogPath C:PSLogswindowsupdate-ny-srf-1.log

También puede utilizar los registros del Visor de eventos para analizar el funcionamiento del servicio Windows Update. Expanda la siguiente sección Vista de eventos: Registros de aplicaciones y servicios -> Microsoft -> Windows -> WindowsUpdateClient -> Operational.

WindowsUpdateClient -> Registros operativos en el visor de eventos

Puede usar el módulo PSWindowsUpdate para administrar actualizaciones desde PowerShell.

Artículos Interesantes