Problema

En entornos mixtos es habitual que los servidores Windows Server en Azure y los que corren en data‑center propio compartan la misma política de actualizaciones mediante GPO y Azure Update Management. Sin embargo, muchos administradores observan que los equipos en Azure ejecutan la comprobación de actualizaciones solo unas cuantas veces al día, mientras que los servidores on‑prem lo hacen casi cada hora. Esta disparidad genera ventanas de exposición mayores en la nube y complica la planificación de parches coordinados entre sitios.

El patrón típico es:

  • GPO idénticas aplicadas a todos los nodos.
  • Azure Update Management configurado en modo “customer‑managed”.
  • Los servidores on‑prem aparecen en los logs de WSUS/Windows Update con intervalos de 1 h.
  • Los VMs de Azure aparecen con intervalos de 4‑6 h o más.

El síntoma se manifiesta en los reportes de Azure Automation o en la consola de Windows Update donde el “Last scan time” está desfasado.

Causa

Varias capas pueden limitar la frecuencia de escaneo:

  1. Configuración predeterminada del agente de Azure Update Management
    Cuando el agente se instala en una VM basada en una imagen de Azure Marketplace, se crea una tarea programada (MicrosoftMonitoringAgent) que ejecuta UpdateManagement.ps1 con una cadencia mínima de 4 h para evitar sobrecarga de la infraestructura de Azure. Esta configuración sobrescribe cualquier ajuste de GPO que intente reducir el intervalo.

  2. Política de “Automatic Update Detection Frequency” en el registro
    La clave HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\DetectionFrequency controla cuántas veces al día Windows busca actualizaciones. Las imágenes de Azure pueden establecer este valor a 4 (4 scans / día) mientras que las ISO de Microsoft para on‑prem lo dejan en 0 (uso de GPO). Si la GPO no fuerza explícitamente el valor, la VM respeta la configuración de la imagen.

  3. Limitaciones de red en Azure
    Algunas suscripciones aplican “Network Security Group” que bloquea el tráfico a los servidores de Windows Update fuera de horarios de mantenimiento, lo que fuerza a la VM a reintentar menos frecuentemente.

  4. Modo “Managed Instance” de Azure Automation
    Cuando se habilita la opción “Schedule update scans” dentro del workspace, Azure crea una programación centralizada que puede anular la política local. Si la frecuencia está establecida en 6 h, todas las máquinas bajo ese workspace adoptarán ese intervalo.

En la práctica, la causa más frecuente es la combinación de la tarea programada del agente y la clave de registro que viene predefinida en la imagen de Azure.

Solución

1. Verificar y ajustar la tarea programada del agente

  1. Conéctate a la VM de Azure.
  2. Abre el Programador de tareas (taskschd.msc) y localiza la carpeta Microsoft → Azure Automation.
  3. Revisa la tarea UpdateManagement; su disparador suele estar configurado como “Daily” con una repetición cada 4 h.
  4. Cambia el disparador a “At startup” y “Repeat task every 1 hour for a duration of Indefinite”, o elimina la tarea si prefieres que el GPO sea el único controlador.

2. Forzar la frecuencia mediante GPO o registro

Si prefieres seguir usando GPO, asegúrate de que la política “Automatic Update detection frequency” esté habilitada y establecida en 1 hora (valor 1). En caso de que la GPO no se aplique correctamente, sobrescribe el registro manualmente:

reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionFrequency /t REG_DWORD /d 1 /f

Este comando escribe el valor 1 (una comprobación cada hora). Después de aplicar, reinicia el servicio de Windows Update:

net stop wuauserv && net start wuauserv

3. Ajustar la configuración de Azure Update Management

En el portal de Azure:

  1. Navega a Automation Accounts → Update Management → Settings.
  2. En Schedule scan, cambia la frecuencia a “Every hour”.
  3. Guarda los cambios. La próxima ejecución del agente respetará la nueva cadencia.

4. Validar la coherencia de la política de red

Revisa los NSG asociados a la subred de los servidores:

  • Asegúrate de que los puertos 80 y 443 hacia windowsupdate.microsoft.com y *.update.microsoft.com estén permitidos todo el día.
  • Si existen reglas de “time‑based” que bloquean el tráfico fuera de horarios, elimínalas o amplía el rango.

5. Reiniciar el agente y forzar una comprobación

# Reiniciar el agente de Azure Automation
Invoke-WebRequest -Uri "https://aka.ms/azureautomationagentrestart" -OutFile "$env:TEMP\restart.ps1"
powershell -ExecutionPolicy Bypass -File "$env:TEMP\restart.ps1"

# Forzar escaneo inmediato
Invoke-Command -ScriptBlock { usoclient StartScan }

Con estos pasos, la VM de Azure adoptará la misma cadencia que los servidores on‑prem.

Cuándo aplicar esta solución

  • Síntomas: los logs de Windows Update muestran intervalos de 4 h o más; Azure Automation reporta “Last scan” con gran desfase; GPO de actualización está configurada para “Every hour” pero no se refleja en la VM.
  • Entorno: VMs creadas a partir de imágenes de Azure Marketplace, Azure Update Management habilitado, GPO idénticas en on‑prem y Azure.
  • No aplica: si la VM está bajo un Update Management gestionado por Azure Update Center (modo “Automatic”), ya que la frecuencia está controlada por la plataforma y no puede modificarse localmente.

Código

# Forzar la frecuencia de detección a 1 hora y reiniciar el servicio
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionFrequency /t REG_DWORD /d 1 /f
net stop wuauserv && net start wuauserv

# Verificar la configuración actual
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionFrequency

Verificación

  1. Ejecuta Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" -Name DetectionFrequency en PowerShell; el valor debe ser 1.
  2. Abre el Visor de eventos → Microsoft → Windows → WindowsUpdateClient → Operational y busca eventos AU\_StartScan. La marca de tiempo debe aparecer cada hora.
  3. En Azure Portal, revisa Automation Account → Update Management → Machines; la columna Last scan debe actualizarse aproximadamente cada 60 min.
  4. Confirma que la tarea programada de Azure Automation ahora tiene el disparador correcto (repetir cada hora).

Notas adicionales

  • Cambiar la frecuencia de escaneo puede incrementar el tráfico hacia los servidores de Microsoft; verifica que la banda disponible en la suscripción lo soporte.
  • Si la política de GPO incluye “No auto-restart with logged on users”, los escaneos frecuentes pueden generar más notificaciones. Ajusta la política de notificación según el modelo de mantenimiento de tu organización.
  • En entornos con cientos de VMs, considera usar Update Management baselines para agrupar máquinas y aplicar la misma frecuencia sin tocar cada VM individualmente.
  • Algunas imágenes de Azure (por ejemplo, “Windows Server 2022 Datacenter – Gen2”) incluyen un script de inicialización que vuelve a establecer DetectionFrequency a 4 después de cada reinicio. Busca en C:\ProgramData\Microsoft\Windows\Start\ y elimina o modifica el script si persiste el problema.