Puntos clave
- Identifica los parches fallidos: usa PowerShell (PSWindowsUpdate o los registros de eventos) para detectar intentos de actualización fallidos o incompletos antes de reintentarlos.
- Reintenta la instalación con PowerShell: vuelve a intentar las actualizaciones fallidas mediante scripts con gestión de errores para evitar fallos silenciosos.
- Haz seguimiento de los reintentos: guarda el número de reintentos, las marcas de tiempo y los KB fallidos en el Registro para evitar bucles infinitos y mantener la visibilidad.
- Automatiza con tareas programadas o con un RMM: programa scripts de reintento recurrentes o despliégalos a gran escala con NinjaOne, GPO o herramientas similares.
- Valida las condiciones de actualización: comprueba que las fuentes de actualización sean accesibles y reinicia el servicio Windows Update antes de reintentar para mejorar la tasa de éxito.
Las actualizaciones fallidas son un problema recurrente en la gestión de parches, y suelen deberse a problemas de red, bloqueos del sistema o conflictos entre servicios. Si no se resuelven, pueden provocar un rendimiento inestable y dejar los endpoints expuestos a amenazas.
Automatizar el reintento de parches ayuda a reducir riesgos, bajar el tiempo medio de reparación (MTTR) y mejorar la tasa de éxito de las actualizaciones sin saturar a los técnicos con un gran volumen de tickets.
Estandariza los flujos de trabajo de parcheo para mejorar el MTTR y la documentación.
→ Prueba gratis NinjaOne Autonomous Patch Management
Pasos para automatizar el reintento de parches y mitigar los fallos de actualización
La corrección automática de los fallos de parcheo elimina los diagnósticos manuales a contrarreloj y garantiza el cumplimiento de parches en todos los endpoints. Así se reduce la carga de trabajo de los técnicos y, además, los registros aportan visibilidad sobre los patrones de fallo recurrentes.
📌 Casos de uso: aprovecha los scripts de PowerShell para listar los intentos de actualización anteriores y extraer los códigos de error, de modo que los scripts puedan reintentar, esperar o detenerse. Mediante tareas programadas, plataformas RMM y despliegue por GPO, los técnicos pueden automatizar el reintento de parches fallidos o ausentes.
📌 Requisitos previos:
- SO compatible: Windows 11 o Windows Server 2016 o posterior
- Permisos: privilegios de administrador o SYSTEM
- Fuente de actualización: WSUS, Intune o Windows Update
- Opcional: plataformas RMM como NinjaOne
💡 Nota: algunos pasos pueden variar según los valores predeterminados del sistema o la configuración activa de cada entorno. Además, Microsoft ha anunciado que WSUS está en proceso de retirada. Aunque todavía se incluye con Windows en el momento de escribir este artículo, recomendamos migrar a herramientas en el cloud como Windows Autopatch e Intune, o Azure Update Manager.
Paso 1: identifica los parches fallidos con scripts de PowerShell
Una corrección automatizada eficaz de los fallos de parcheo empieza por una detección proactiva. Los siguientes scripts consultan el historial y los resultados de actualización de un endpoint y devuelven las entradas problemáticas para tener una visión más clara.
Filtra los parches fallidos con el módulo PSWindowsUpdate
Este script lee las últimas 200 entradas del historial de actualizaciones, descarta las instalaciones correctas y muestra solo las entradas fallidas.
| Import-Module PSWindowsUpdate # Retrieve failed updates $failedUpdates = Get-WindowsUpdate -IsHidden:$false -ErrorAction SilentlyContinue | Where-Object { $_.ResultCode -ne 2 } # 2 = Succeeded |
⚠️ Importante: si te saltas la instalación de PSWindowsUpdate, se producirán errores, ya que este módulo de PowerShell no viene incluido en Windows de forma predeterminada. (Consulta ⚠️ Aspectos a tener en cuenta)
Método alternativo para filtrar parches fallidos desde el registro de eventos de Windows
Este script consulta los registros del cliente de Windows Update y busca entradas con señales de fallo habituales, como los ID 20, 25 y 31.
Get-WinEvent -LogName "System" | Where-Object {$_.ProviderName -eq «Microsoft-Windows-WindowsUpdateClient» -and $_.Id -in 20, 25, 31 # Common failure event IDs } |
Paso 2: reintenta los parches fallidos con lógica de PowerShell
Una vez que aparecen las actualizaciones fallidas de un endpoint, puedes usar scripts de PowerShell para volver a intentar los parches automáticamente. Así se eliminan las tareas de parcheo manual y se consigue una corrección desatendida a gran escala en cuanto se detecta un fallo.
Script de PowerShell de ejemplo para reintentar la instalación de actualizaciones fallidas
Este script parte de $failedUpdates, tal como se vio en el paso 1, y recorre las actualizaciones fallidas enumeradas para reinstalarlas.
| foreach ($update in $failedUpdates) { Write-Output «Retrying: $($update.Title)» Install-WindowsUpdate -KBArticleID $update.KBArticleID -AcceptAll -AutoReboot -IgnoreReboot -ErrorAction Continue } |
Script de ejemplo con gestión de errores
| try { Install-WindowsUpdate -KBArticleID $update.KBArticleID -AcceptAll -ErrorAction Stop } catch { Write-Output «Retry failed for: $($update.KBArticleID) – $_» } |
⚠️ Importante: usa la gestión de errores para evitar que los scripts fallen de forma silenciosa. (Consulta ⚠️ Aspectos a tener en cuenta).
Paso 3: registra los reintentos en el Registro para su seguimiento
Aprovecha el Registro para guardar el número de reintentos y los KB fallidos y poder hacer consultas locales rápidas. Esto permite una identificación persistente incluso cuando un endpoint está desconectado durante caídas de WSUS o del RMM.
Script de PowerShell de ejemplo para registrar los reintentos y las marcas de tiempo de los resultados en el Registro:
New-Item -Path "HKLM:\SOFTWARE\Org\PatchRetry" -ForceSet-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry" -Name "LastRetry" -Value (Get-Date).ToString(«u»)Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry" -Name "FailedKBs" -Value ($failedUpdates.KBArticleID -join «, «) |
Script de PowerShell de ejemplo para comprobar el estado de los parches en el Registro:
| Get-ItemProperty -Path ‘HKLM:\SOFTWARE\Org\PatchRetry’ |
Paso 4: automatiza los reintentos con tareas programadas o con NinjaOne RMM
Programa scripts en todos los endpoints para comprobar el cumplimiento de forma periódica y reinstalar automáticamente los parches en los dispositivos que no lo cumplan. Con NinjaOne, los técnicos pueden crear condiciones compuestas para que los reintentos de parches se vuelvan a aplicar después de una ejecución fallida.
Crea una tarea programada recurrente con un script .ps1 ya existente desde CMD:
schtasks /create /tn «RetryFailedPatches» /tr "powershell.exe -File C:\Scripts\PatchRetry.ps1" /sc daily /st 02:00 /ru SYSTEM |
💡 Consejo: guarda el script de reintento del paso 2 como archivo .ps1 y apunta tu comando a su ruta.
Actualiza automáticamente los valores del Registro y controla el éxito o el límite de reintentos con un script de PowerShell
$retryCount = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry").RetryCountif ($retryCount -gt 3) { # escalate or log for technician } |
Paso 5: usa GPO para garantizar una configuración de actualización compatible con los reintentos
Los reintentos automáticos de parches funcionan mejor cuando Windows Update se comporta de forma predecible. Los técnicos pueden desplegar GPO para descargar previamente el contenido de las actualizaciones, programar las instalaciones y posponer los reinicios dentro de configuraciones base.
⚠️ Advertencia: es recomendable probar las GPO en local antes de desplegarlas. (Consulta ⚠️ Aspectos a tener en cuenta).
- Abre la Consola de administración de directivas de grupo (gpmc.msc) y ve a:
Configuración del equipo > Plantillas administrativas > Componentes de Windows > Windows Update
- Configura las siguientes directivas:
| Ajustes | Configuración recomendada | Definición |
| Configurar Actualizaciones automáticas | Marca la casilla Descargar automáticamente y programar la instalación. | Descarga previamente las actualizaciones de forma automática y las instala según una programación definida. |
| Especificar la ubicación del servicio de actualización de Microsoft en la intranet | Selecciona Habilitada e introduce la URL HTTP(S) del servidor WSUS que prefieras en estos campos:
|
Especifica el servidor WSUS al que Actualizaciones automáticas consultará las actualizaciones. |
| No reiniciar automáticamente con las instalaciones programadas de actualizaciones automáticas | Configura la directiva como Habilitada. | Desactiva los reinicios automáticos cuando hay una sesión iniciada, para evitar interrupciones a mitad de sesión. |
| Volver a preguntar para reiniciar con las instalaciones programadas | Configura la directiva como Deshabilitada. | Deja de pedir a los usuarios que reinicien a mitad de sesión después de una actualización programada. |
- Después de vincular la GPO a una OU, ejecuta el siguiente comando de PowerShell en un endpoint de destino: gpupdate /force
⚠️ Aspectos a tener en cuenta
| Riesgos | Posibles consecuencias | Cómo revertirlo |
| Saltarse la instalación del módulo PSWindowsUpdate | Usar los cmdlets de Windows Update sin el módulo de PowerShell necesario provocará errores. | Carga el módulo PSWindowsUpdate ejecutando Import-Module PSWindowsUpdate en una consola de PowerShell. |
| No incluir gestión de errores en los scripts | Sin una gestión de errores adecuada, los scripts fallan de forma silenciosa y los técnicos tienen que adivinar qué ha ido mal. | Aprovecha la gestión de errores de PowerShell en los scripts para documentar mejor los errores cuando se producen. |
| Desplegar GPO sin probarlas | Las GPO sin probar pueden contener configuraciones incorrectas que afecten gravemente a los endpoints una vez desplegadas. | Prueba las GPO en local, en un entorno controlado, antes de desplegarlas en todo el entorno. |
Qué tener en cuenta al automatizar el reintento de parches fallidos
Al automatizar los reintentos de parches, es fundamental garantizar una transición fluida entre pasos, ya que un solo contratiempo puede provocar errores. Estas consideraciones ayudan a que los scripts decidan correctamente el siguiente paso y mejoren la tasa de éxito de los reintentos.
Aplicar límites de reintentos
Los límites de reintentos almacenados en el Registro ayudan a evitar bucles infinitos y avalanchas de tickets. Define incrementos en cada ejecución para aumentar el tiempo de espera con cada fallo. Cuando se alcanza el número máximo de intentos, los límites impiden que los scripts se ejecuten y escalan el problema una sola vez.
Reiniciar el servicio Windows Update
Los fallos de parcheo pueden producirse cuando Windows Update (wuauserv) no está accesible, y un reinicio rápido del servicio suele resolverlo. Por eso conviene reiniciar Windows Update antes de iniciar otro reintento.
- Script de PowerShell de ejemplo para reiniciar wuauserv: Restart-Service -Name wuauserv
Solución para dispositivos sin conexión
Los dispositivos sin conexión pueden agotar rápidamente los límites de reintentos y hacer que los scripts los omitan por completo. Con plataformas RMM como NinjaOne, los técnicos pueden definir una condición basada en el resultado del script para reintentar o reiniciar en horas de menor actividad.
Validar las fuentes de parches
Antes de reintentar, los scripts deberían comprobar si la fuente de parches es accesible, ya que las fuentes no disponibles suelen provocar fallos. Si tras la validación la fuente sigue caída, aplica una espera breve, pero no la cuentes como reintento fallido. Si falla un solo KB, déjalo en pausa y continúa con el resto de parches para reintentarlo más tarde.
Guía de inicio rápido
NinjaOne ofrece varias funciones para automatizar la gestión de parches y reducir la intervención manual:
1. Patch Intelligence AI
Evalúa automáticamente los riesgos de los parches cada seis horas
- Puede mover los parches entre los estados aprobado, manual y rechazado según los comentarios de la comunidad
- Ayuda a reducir los riesgos de parches potencialmente problemáticos
2. Estrategias de aprobación y reintento
Varios niveles de aprobación de parches:
- Excepciones a nivel de dispositivo
- Excepciones a nivel de política
- Aprobaciones o rechazos globales anticipados
- Puede aprobar parches automáticamente tras un número determinado de días (hasta 30 días para actualizaciones y 365 días para actualizaciones de funciones)
- Permite aprobar o rechazar parches manualmente por número de KB o por ID de parche
3. Despliegue por anillos
Despliegue escalonado de parches para minimizar riesgos
- Crea grupos de dispositivos para los distintos anillos de despliegue
- Prueba los parches en un pequeño subconjunto de dispositivos antes de desplegarlos a mayor escala
4. Programación y reintento de parches
Se recomienda separar los ciclos de análisis y de actualización al menos una hora
- Los ciclos de análisis se ejecutan antes que los ciclos de aplicación
- Opciones de reinicio y notificaciones configurables
Resolución de problemas en la automatización de scripts de reintento de parches
Problema n.º 1: no hay actividad de reintento
Sin la elevación adecuada, la lógica de reintento no se ejecuta y no se registra ninguna actividad. Como solución, comprueba si el script se ejecuta como SYSTEM o con los privilegios más altos. Además, valida la sintaxis del script y verifica que existan todas las rutas a las que hace referencia.
Problema n.º 2: no se encuentra la actualización
Comprueba si la actualización que falta está disponible en la fuente que has especificado. Valora fuentes alternativas como Windows Update en lugar de Windows Server Update Services (WSUS) para no agotar los reintentos con consultas inútiles.
Problema n.º 3: las actualizaciones fallan de forma constante
Combina los reintentos con la información de los registros de Windows Update para localizar con precisión los errores de los parches fallidos.
- Script de PowerShell de ejemplo para consultar los registros de Windows Update:
Import-Module PSWindowsUpdate
Get-WindowsUpdateLog
Problema n.º 4: bucle de reinicios
A veces las actualizaciones piden reiniciar el dispositivo antes de aplicarse, y un apagado no tiene el mismo efecto. Si se pasa por alto, es fácil caer en el ciclo de volver a aplicar parches sin ningún cambio perceptible. Para evitarlo, comprueba si el endpoint solicita un reinicio, confírmalo y vuelve a intentar la actualización.
Servicios de NinjaOne que simplifican la automatización del reintento de parches
NinjaOne ayuda a automatizar las consultas y la corrección de parches para garantizar el cumplimiento y reducir la necesidad de intervención manual. Estas son algunas de las funciones de NinjaOne que puedes aprovechar para simplificar la automatización de los reintentos de parches a gran escala.
- Tarea programada por política. Usa las capacidades de automatización programada de NinjaOne para definir reintentos en grupos de dispositivos dentro de los intervalos que indiques.
- Panel de gestión de parches. El panel de NinjaOne clasifica los dispositivos según los parches fallidos, correctos y pendientes para mejorar la visibilidad. Los técnicos también pueden generar fácilmente informes de parches personalizados desde el panel.
- Condiciones compuestas. Crea disparadores de automatización personalizados, como generar notificaciones, ejecutar scripts o escalar casos, en función del resultado de los scripts.
- Despliegue remoto de scripts. Ejecuta scripts de forma remota y a gran escala para mantener una automatización de reintentos coherente ante parches fallidos en todo el entorno.
Automatiza la documentación de parches para gestionar los errores con eficacia.
Automatiza la corrección de fallos de parcheo para maximizar el tiempo de actividad
Desde la consulta del historial de actualizaciones hasta la aplicación de políticas base, esta guía ofrece a los técnicos estrategias sólidas para empezar a automatizar. Con NinjaOne encargándose de la monitorización, el despliegue de scripts y la programación, la lógica de reintento de parches se puede automatizar desde un único panel de control.
Consolidar las estrategias de automatización en una plataforma centralizada hace que todo el marco de automatización sea proactivo y permite corregir rápidamente los problemas en cuanto se detectan. Así se reduce el tiempo de inactividad, baja el volumen de tickets y se garantiza un cumplimiento de parches coherente en todos los endpoints.
Temas relacionados:
- Cómo usar PowerShell para automatizar las actualizaciones de funciones de Windows 11
- ¿Qué es la gestión de parches de Windows? Visión general y cómo aplicarla
- ¿Qué es el cumplimiento de parches?
- Claves para parchear a gran escala sin complicaciones
- Buenas prácticas de gestión de parches para mejorar el cumplimiento y la seguridad