Introducción
Level utiliza la API del Agente de Windows Update (WUA) de Microsoft para detectar y gestionar parches. Si observas recuentos de parches inesperados, actualizaciones faltantes o ninguna actualización, las dos causas más comunes son las diferencias en los conjuntos de resultados entre WUA y otras fuentes de actualización, y la configuración residual de WSUS que redirige los dispositivos fuera de los servidores de actualización de Microsoft.
Cómo consulta Level las actualizaciones de Windows
Level consulta la API de WUA de Microsoft tanto para los parches disponibles como para los instalados. La API de WUA es la misma que usa Windows internamente, pero sus resultados no coinciden con el Historial de Windows Update. No compares los dos directamente — extraen datos de almacenes de datos diferentes.
Para ver exactamente lo que devuelve la API de WUA para un dispositivo determinado, ejecuta estos comandos en PowerShell.
Parches instalados:
$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()
$Searcher.Search("IsInstalled=1").Updates | ft -a title
Parches pendientes:
$Session = New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher() $Searcher.Search("IsInstalled=0").Updates | ft -a title
Si la lista de parches de Level coincide con lo que devuelven estos comandos, Level está funcionando correctamente. Cualquier discrepancia reside en la propia capa de WUA.
Diagnóstico de problemas relacionados con WSUS
Si Level no muestra actualizaciones disponibles y los comandos de WUA anteriores tampoco devuelven nada, es probable que la causa sea una configuración residual de WSUS. Los dispositivos que aún apuntan a un servidor WSUS no consultarán los servidores de actualización de Microsoft, por lo que Level no tiene nada que reportar.
Verificar la configuración de WSUS
Ejecuta esto en PowerShell para inspeccionar la clave de registro de Windows Update:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
Si la salida incluye referencias a una dirección de servidor WSUS, el dispositivo no ha sido reconfigurado.
Eliminar la configuración de WSUS
La solución correcta es revertir el Objeto de Directiva de Grupo (GPO) que originalmente implementó WSUS en los dispositivos. Si eso no es posible, el siguiente script elimina manualmente la configuración del cliente WSUS:
⚠️ ADVERTENCIA: Prueba en un solo dispositivo antes de desplegarlo en producción. Si el GPO que configuró WSUS sigue activo, la configuración volverá en la siguiente actualización de directiva. Eliminar el GPO es la única solución permanente.
PowerShell
# Stop the BITS and Windows Update services
Stop-Service -Name BITS, wuauserv -Force
# Remove WSUS client configuration properties
$wsusProperties = @("AccountDomainSid", "PingID", "SusClientId", "SusClientIDValidation")
foreach ($property in $wsusProperties) {
Remove-ItemProperty -Name $property -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\" -ErrorAction SilentlyContinue
}
# Remove the SoftwareDistribution folder
Remove-Item "$env:SystemRoot\SoftwareDistribution\" -Recurse -Force -ErrorAction SilentlyContinue
# Start the BITS and Windows Update services
Start-Service -Name BITS, wuauserv
# Optionally, reset the Windows Update client settings
# This step ensures that the client re-registers and checks for updates from the correct source
$wuaucltPath = "$env:SystemRoot\System32\wuauclt.exe"
if (Test-Path -Path $wuaucltPath) {
Start-Process -FilePath $wuaucltPath -ArgumentList "/resetauthorization /detectnow" -NoNewWindow
} else {
Write-Output "wuauclt.exe not found. Ensure the Windows Update client is available."
}
Tras ejecutarlo, Level vuelve a consultar WUA en la siguiente sincronización. Las actualizaciones de los servidores de Microsoft deberían aparecer en ese momento.
💡 CONSEJO: Guarda esto como un script en la biblioteca de scripts de Level para desplegarlo mediante automatización en varios dispositivos a la vez, en lugar de ejecutarlo manualmente.
Preguntas frecuentes
Level muestra actualizaciones, pero el Historial de Windows Update dice que ya están instaladas. ¿Quién tiene razón? Ambos pueden ser correctos. Level consulta la API de WUA directamente; el Historial de Windows Update lee desde un registro separado. Los comandos de PowerShell de WUA anteriores son la fuente de verdad sobre lo que ve Level. Si esos comandos devuelven los mismos parches que Level muestra, Level está funcionando correctamente.
El script de limpieza de WSUS se ejecutó pero los dispositivos siguen apuntando a WSUS. Es probable que la Directiva de Grupo que configuró WSUS siga activa. El script elimina los valores actuales del registro, pero la directiva los vuelve a aplicar en la siguiente actualización. Primero revierte o deshabilita el GPO.
Después de eliminar la configuración de WSUS, ¿cuánto tiempo tarda Level en mostrar las actualizaciones? Level vuelve a consultar WUA en el siguiente ciclo de sincronización del dispositivo. En la mayoría de los casos, los datos de parches actualizados aparecen a los pocos minutos de que el dispositivo se reconecte o el agente realice una consulta.
¿Puedo ejecutar el script de limpieza de WSUS en todos los dispositivos afectados a la vez? Sí. Guárdalo como un script en Automations → Scripts, luego ejecútalo mediante una automatización dirigida a los dispositivos relevantes o mediante una ejecución ad hoc desde el listado de dispositivos.
