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.

Actualizado hoy

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


Cómo Level consulta Windows Updates

Level consulta la API WUA de Microsoft 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 compare los dos directamente — extraen de diferentes almacenes de datos.

Para ver exactamente lo que 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 devuelven estos comandos, Level funciona correctamente. Cualquier discrepancia existe en la capa WUA en sí.


Diagnóstico de problemas relacionados con WSUS

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

Verificar configuración de WSUS

Ejecute esto en PowerShell para inspeccionar la clave del registro de Windows Update:

Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"

Si la salida incluye referencias a una dirección del servidor WSUS, el dispositivo no ha sido reconfigurado.

Eliminar configuración de WSUS

La solución correcta es invertir el Objeto de Política de Grupo que originalmente empujó WSUS a los dispositivos. Si eso no es posible, el siguiente script elimina manualmente la configuración del cliente WSUS:

⚠️ ADVERTENCIA: Pruebe en un único dispositivo antes de implementar en producción. Si el GPO que configuró WSUS aún está activo, la configuración reaparecerá en la próxima actualización de política. Eliminar el GPO es el único arreglo permanente.

PowerShell

# Detener los servicios BITS y Windows Update
Stop-Service -Name BITS, wuauserv -Force

# Eliminar propiedades de configuración del cliente WSUS
$wsusProperties = @("AccountDomainSid", "PingID", "SusClientId", "SusClientIDValidation")
foreach ($property in $wsusProperties) {
Remove-ItemProperty -Name $property -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\" -ErrorAction SilentlyContinue
}

# Eliminar la carpeta SoftwareDistribution
Remove-Item "$env:SystemRoot\SoftwareDistribution\" -Recurse -Force -ErrorAction SilentlyContinue

# Iniciar los servicios BITS y Windows Update
Start-Service -Name BITS, wuauserv

# Opcionalmente, restablecer la configuración del cliente de Windows Update
# Este paso asegura que el cliente se reregistre y compruebe las actualizaciones desde la fuente correcta
$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 próxima 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 múltiples 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 directamente la API WUA; el Historial de Windows Update lee de un registro separado. Los comandos WUA de PowerShell anteriores son la verdad absoluta para lo que Level ve. Si esos comandos devuelven los mismos parches que Level está mostrando, Level se comporta correctamente.

  • El script de limpieza de WSUS se ejecutó pero los dispositivos aún apuntan a WSUS. El GPO que configuró WSUS probablemente sigue activo. El script elimina los valores del registro actual, pero la política los reaplicará en la próxima actualización. Invierta o deshabilite el GPO primero.

  • Después de eliminar la configuración de WSUS, ¿cuánto tiempo hasta que Level muestre actualizaciones? Level vuelve a consultar WUA en el próximo ciclo de check-in del dispositivo. En la mayoría de los casos, los datos de parches actualizados aparecen en pocos 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 ejecutelo a través de una automatización dirigida a los dispositivos relevantes o mediante una ejecución ad-hoc desde el listado de dispositivos.

¿Ha quedado contestada tu pregunta?