Ir al contenido principal

Solución de problemas de Windows Update

Diagnostique problemas de Windows Update en Level, incluyendo discrepancias de resultados WUA y configuración WSUS restante.

Introducción

Level usa la API del Agente de Windows Update de Microsoft (WUA) para detectar y administrar parches. Si ve números de parches inesperados, actualizaciones faltantes o ninguna actualización en absoluto, las dos causas más comunes son las diferencias de conjunto de resultados entre WUA y otras fuentes de actualización, y la configuración de WSUS restante que redirige dispositivos lejos de los servidores de actualización de Microsoft.


Cómo Level consulta las actualizaciones de Windows

Level consulta la API Microsoft WUA para parches disponibles e instalados. La API WUA es la que Windows usa internamente, pero sus resultados no coinciden con el Historial de Windows Update. No los compare directamente — extraen de diferentes almacenes de datos.

Para ver exactamente qué devuelve la API WUA para un dispositivo determinado, ejecute 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 estos comandos devuelven, Level funciona correctamente. Cualquier discrepancia reside en la capa WUA misma.


Diagnóstico de problemas relacionados con WSUS

Si Level no muestra actualizaciones disponibles y los comandos WUA anteriores también no devuelven nada, una configuración de WSUS restante es la causa probable. Los dispositivos aún señalados a un servidor WSUS no consultarán los servidores de actualización de Microsoft, por lo que Level no tiene nada que informar.

Verificar configuración de WSUS

Ejecute 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 configuraciones de WSUS

La solución correcta es invertir el Objeto de directiva de grupo que originalmente insertó WSUS en los dispositivos. Si eso no es posible, el siguiente script elimina manualmente la configuración del cliente WSUS:

⚠️ ADVERTENCIA: Pruebe en un solo dispositivo antes de implementar en producción. Si la Directiva de grupo que configuró WSUS aún está activa, la configuración reaparecerá en la próxima actualización de directiva. Eliminar la Directiva de grupo 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."
}

Después de ejecutar, Level vuelve a consultar WUA en la siguiente sincronización. Las actualizaciones de los servidores de Microsoft deberían aparecer en ese momento.

💡 CONSEJO: Guarde esto como un script en la biblioteca de scripts de Level para implementarlo a través de una automatización en varios dispositivos a la vez en lugar de ejecutarlo manualmente.


FAQ

  • Level muestra actualizaciones, pero el Historial de Windows Update dice que ya están instaladas. ¿Quién tiene razón? Ambos pueden tener razón. Level consulta directamente la API WUA; el Historial de Windows Update lee de un registro separado. Los comandos WUA de PowerShell anteriores son la verdad fundamental de lo que Level ve. Si esos comandos devuelven los mismos parches que Level está mostrando, Level se está comportando correctamente.

  • El script de limpieza de WSUS se ejecutó pero los dispositivos aún apuntan a WSUS. La Directiva de grupo que configuró WSUS probablemente aún está activa. El script elimina los valores de registro actuales, pero la política los vuelve a aplicar en la próxima actualización. Primero revierta o deshabilite la Directiva de grupo.

  • Después de eliminar la configuración de WSUS, ¿cuánto tiempo hasta que Level muestre las actualizaciones? Level vuelve a consultar WUA en el próximo ciclo de verificación del dispositivo. En la mayoría de los casos, los datos de parches actualizados aparecen dentro de unos minutos después de que el dispositivo se reconecte o el agente sondee.

  • ¿Puedo ejecutar el script de limpieza de WSUS en todos los dispositivos afectados a la vez? Sí. Guárdelo como un script en Automatizaciones → Scripts , luego ejecútelo a través de una automatización dirigida a los dispositivos relevantes o a través de una ejecución ad-hoc desde la lista de dispositivos.

¿Ha quedado contestada tu pregunta?