El historial de Windows Update que se ve en la interfaz gráfica puede quedarse corto justo cuando más lo necesitas. Esta guía explica cómo recuperar un año completo de parches en un servidor de pruebas, presentar evidencias sólidas a tu auditor y, de paso, dejar automatizado el proceso para las próximas revisiones.
Problema planteado
En un entorno de pruebas basado en Windows Server, el panel Configuración → Windows Update → Historial empezó a mostrar datos únicamente desde junio 2024. El auditor solicita capturas aleatorias que avalen que todos los parches aplicados en producción se instalaron primero en pruebas durante los últimos doce meses. La ausencia de registros gráficos amenaza con retrasar el cierre de la auditoría.
Por qué desaparece el historial gráfico
- Actualizaciones de características (feature updates) migran o purgan la base de datos de Windows Update.
- Etapas de limpieza tras un cleanup de Windows Server Update Services (WSUS) pueden truncar el historial local.
- Herramientas de optimización que eliminan archivos en
%windir%\SoftwareDistribution
sin conservar copias. - Políticas de retención internas más agresivas que las recomendadas por Microsoft.
Reunión rápida de evidencias
La buena noticia es que el sistema operativo mantiene la mayoría de los datos en WMI, en el registro de eventos y en los trazados ETW aún cuando el panel gráfico no los muestre. A continuación se contrastan los métodos más eficaces.
Soluciones propuestas y recomendaciones complementarias
Objetivo | Método | Pasos clave / Ventajas |
---|---|---|
Consultar actualizaciones instaladas | PowerShellGet-HotFix (alias Get-WmiObject -Class Win32_QuickFixEngineering ) | Abrir PowerShell como administrador. Ejecutar:Get-HotFix | Sort-Object InstalledOn Exportar a CSV si se requieren reportes:Get-HotFix | Export-Csv C:\Informes\Hotfixes.csv -NoTypeInformation Incluye fecha de instalación, KB y descripción; suele abarcar varios años. |
Revisión gráfica ampliada | Panel de control → Programas → «Ver actualizaciones instaladas» | Conserva un listado más extenso que la vista de Configuración. Permite ordenar por fecha o KB y realizar capturas de pantalla con la granularidad que exija el auditor. |
Visor de eventos (Event Viewer) | Lanzar eventvwr.msc . Navegar a Applications and Services Logs → Microsoft → Windows → WindowsUpdateClient → Operational . Filtrar por los ID de evento: 19 = Instalación correcta 20 = Fallo 31 = Desinstalación Exportar a .evtx para conservación inmutable. Ideal para trazar una línea temporal precisa. | |
Reconstruir registro completo | Get-WindowsUpdateLog | En PowerShell, ejecutar Get-WindowsUpdateLog . El cmdlet combina los trazados ETW y genera un archivo de texto legible. Útil cuando el Visor de eventos ha sido depurado o truncado. |
Comparar pruebas vs. producción | Etiquetar y guardar reportes | Exportar .csv o .evtx de ambos entornos el mismo día. Filtrar por KB y fecha para demostrar que las instalaciones en pruebas preceden a producción. Consolidar los resultados en una hoja de cálculo firmada digitalmente. |
Automatización futura | Scripting / WSUS / Intune / SCCM | Programar tareas “Scheduled Tasks” con PowerShell que: Ejecuten Get-HotFix o Get-WindowsUpdateLog cada semana. Archiven los resultados en un repositorio con control de versiones. En WSUS, usar Get-WsusUpdate para generar informes de cumplimiento. Si el parque se gestiona con Microsoft Intune o ConfigMgr (SCCM), habilitar reportes nativos y marcar la opción “Retain update history” durante 400 días o más. |
Guías paso a paso ampliadas
PowerShell Get‑HotFix en profundidad
Get-HotFix
consulta la clase WMI Win32_QuickFixEngineering y devuelve los parches instalados, independientemente de que sean de seguridad, acumulativos o gacetas internas. Si se requieren columnas adicionales (Description, InstalledBy) basta con proyectarlas:
Get-HotFix | Select-Object Source,Description,HotFixID,InstalledBy,InstalledOn
Para un rango anual exacto:
$year = (Get-Date).AddYears(-1)
Get-HotFix | Where-Object {$_.InstalledOn -ge $year} |
Export-Csv C:\Informes\Hotfixes_UltimoAnio.csv -NoTypeInformation
Visor de eventos con filtros personalizados
Dentro del Visor de eventos, en Crear vista personalizada puedes combinar múltiples ID en un solo filtro usando una coma como separador (19, 20, 31). Marca la casilla “También mostrar subniveles” para capturar eventos derivados. La vista resultante se puede guardar como archivo XML para reutilizarla más adelante.
Reconstrucción de WindowsUpdate.log
En versiones modernas de Windows Server, el log clásico desapareció y fue reemplazado por trazas ETW guardadas en %ProgramData%\USOShared
. El cmdlet Get-WindowsUpdateLog
recompila esas trazas en un texto legible con marcas de tiempo que admiten búsquedas por KB, código de error o fase de descarga. Para agilizar:
Get-WindowsUpdateLog -LogPath C:\Informes\WU-$(Get-Date -f yyyyMMdd).log
Comparación cronológica entre entornos
- En ambos servidores (pruebas y producción) genera un CSV con
Get-HotFix
. - En Excel o Power BI, relaciona los archivos por HotFixID.
- Crea una columna calculada DiferenciaDías (
=Producción[InstalledOn]-Pruebas[InstalledOn]
). - Filtra valores negativos o cero; estos prueban que la instalación se hizo primero en pruebas.
- Exporta la visualización y adjunta al informe de auditoría.
Estrategia de evidencia a prueba de auditorías
- Inmutabilidad: almacena los archivos EVTX y CSV en un recurso WORM (Write Once Read Many) o un repositorio Git con control de firmas.
- Metadatos sólidos: nombra los archivos con prefijos coherentes (
SRVPRUEBASWU20250630.csv
). - Procedimientos operativos estándar (SOP): documenta los comandos, la fecha, la cuenta que los ejecutó y el hash SHA‑256 del fichero resultante.
- Revisión por pares: un segundo administrador valida la integridad de cada captura.
Automatización sostenible
Ejemplo de tarea programada con PowerShell
# Archivo: Export-WUHistory.ps1
$destino = "D:\AuditoriaWU\$(hostname)WU$(Get-Date -f yyyyMMdd).csv"
Get-HotFix | Export-Csv $destino -NoTypeInformation
Get-FileHash $destino | Out-File ($destino + ".sha256")
Crea la tarea programada:
schtasks /Create /TN "Export WU History" /TR "powershell -File D:\Scripts\Export-WUHistory.ps1" ^
/SC MONTHLY /D 1 /RU "NT AUTHORITY\SYSTEM" /RL HIGHEST
Centralización con WSUS
- Habilita el rol WSUS con la base de datos en SQL Express si la cantidad de equipos supera los 50 hosts.
- Configura una target group “Pruebas” y otra “Producción”.
- Aplica reglas de aprobación automática como “Aprobar para Pruebas” y “Aprobar para Producción después de 14 días y 0 errores”.
- Utiliza el informe Update Status Summary para demostrar la cadencia.
Integración con Intune o ConfigMgr
Si tu organización usa Microsoft Intune, el reporte Windows Updates → Update Compliance incluye un historial de 18 meses. En ConfigMgr, el informe SU1 ‑ Compliance 7 ‑ States alcanza datos de hasta dos años. Exporta los resultados en CSV y vincúlalos a Power BI para generar dashboards automáticos.
Observaciones prácticas
- El panel de Configuración solo es confiable para supervisión diaria, no para auditorías de largo alcance.
Get-HotFix
es inmune a la mayoría de las actualizaciones de características porque la información se aloja en WMI.- Conservar los EVTX sin ediciones refuerza la credibilidad; considera firmarlos con
signtool.exe
o cert-manager. - Documentar el proceso con capturas de línea de comandos es tan importante como el propio CSV.
Buenas prácticas adicionales
- Control de cambios: registra en un sistema ITSM cada excepción o parche manual.
- Métricas de adherencia: mide el intervalo promedio entre parche publicado y parche instalado en pruebas.
- Pruebas automatizadas: ejecuta suites de smoke‑tests tras cada ciclo de parches para evitar regresiones.
- Contingencias: conserva medios de reinstalación en caso de que un parche crítico obligue a deshacer cambios.
Conclusión
Recuperar un año completo de historial de Windows Update no requiere herramientas de terceros. Entre Get-HotFix
, el Visor de eventos y la reconstrucción de WindowsUpdate.log
, cuentas con varias rutas fiables para generar evidencia a prueba de auditoría. Si además automatizas la exportación y firmas los archivos, convertirás un dolor de cabeza puntual en un proceso rutinario y transparente, ganando tiempo y confianza para futuras revisiones.