Start typing to search across invoices, services, domains, tickets, and more...
Nada perjudica más a un servidor Windows de producción que un reinicio automático por actualizaciones en plena noche. Esta guía explica la gestión de Windows Update en Windows Server 2016/2019/2022: cómo controlar las actualizaciones y los reinicios automáticos con sconfig, directivas de grupo o el registro, configurar las horas activas, instalar actualizaciones con el módulo de PowerShell PSWindowsUpdate, revisar el historial de actualizaciones y programar usted mismo el reinicio.
Abra PowerShell o el Símbolo del sistema con privilegios de administrador y ejecute sconfig. Elija la opción de configuración de Windows Update (normalmente la opción 5) y seleccione Automatic, Download only o Manual. Para servidores de producción recomendamos Download only: los parches se descargan automáticamente, pero usted decide cuándo instalarlos y reiniciar.
sconfigEn gpedit.msc, vaya a Computer Configuration (Configuración del equipo) → Administrative Templates (Plantillas administrativas) → Windows Components (Componentes de Windows) → Windows Update. Habilite "Configure Automatic Updates" ("Configurar Actualizaciones automáticas") con la opción "3 - Auto download and notify for install" ("3 - Descargar automáticamente y notificar la instalación") y, a continuación, habilite "No auto-restart with logged on users for scheduled automatic updates installations" ("No reiniciar automáticamente con usuarios que hayan iniciado sesión para instalaciones de actualizaciones automáticas programadas"). En Server Core o en scripts, escriba los valores de registro equivalentes:
$au = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU"
New-Item -Path $au -Force | Out-Null
# 3 = descargar automáticamente, notificar antes de instalar
Set-ItemProperty -Path $au -Name NoAutoUpdate -Type DWord -Value 0
Set-ItemProperty -Path $au -Name AUOptions -Type DWord -Value 3
# Nunca reiniciar automáticamente mientras haya un usuario con sesión iniciada
Set-ItemProperty -Path $au -Name NoAutoRebootWithLoggedOnUsers -Type DWord -Value 1
gpupdate /forceWindows no se reinicia por actualizaciones durante las horas activas. Configúrelas en Settings (Configuración) → Update & Security (Actualización y seguridad) → Windows Update → Change active hours (Cambiar horas activas), o con los comandos de registro siguientes (máximo 18 horas).
$ux = "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings"
# Horas activas 08:00-23:00 (sin reinicio automático en esta franja)
Set-ItemProperty -Path $ux -Name ActiveHoursStart -Type DWord -Value 8
Set-ItemProperty -Path $ux -Name ActiveHoursEnd -Type DWord -Value 23
Get-ItemProperty -Path $ux | Select-Object ActiveHoursStart,ActiveHoursEndPSWindowsUpdate es un módulo muy utilizado para listar, instalar y ocultar parches desde la línea de comandos, perfecto para Server Core y la automatización. En Windows Server 2016, active primero TLS 1.2 para que funcionen las descargas desde PowerShell Gallery. El modificador -IgnoreReboot garantiza que nada se reinicie automáticamente.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -Force
Install-Module -Name PSWindowsUpdate -Force
Import-Module PSWindowsUpdate
# Listar las actualizaciones disponibles
Get-WindowsUpdate
# Instalar todo pero NO reiniciar automáticamente
Install-WindowsUpdate -AcceptAll -IgnoreReboot
# Instalar solo un KB concreto
Install-WindowsUpdate -KBArticleID KB5005112 -AcceptAll -IgnoreRebootCuando necesite saber por qué se reinició un servidor o si un KB concreto está instalado, revise el historial y compruebe si hay un indicador de reinicio pendiente.
Get-WUHistory -Last 20 | Format-Table Date,KB,Result,Title -AutoSize
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10
# ¿Hay un reinicio pendiente?
Get-WURebootStatus
Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"Después de instalar los parches, reinicie en la hora de menor actividad. El comando siguiente calcula los segundos que faltan hasta las 03:00 de mañana y programa un reinicio, que puede cancelar en cualquier momento.
# Reiniciar a las 03:00 esta noche (tiempo en segundos desde ahora)
$t = (Get-Date).Date.AddDays(1).AddHours(3)
shutdown /r /t ([int]($t - (Get-Date)).TotalSeconds) /c "Planned update reboot"
# Cancelar un reinicio programado
shutdown /aTécnicamente sí, pero un servidor sin parches deja RDP, SMB y otros servicios expuestos a vulnerabilidades conocidas. Use en su lugar Download only / notificar y aplique parches con un calendario mensual fijo.
El menú de sconfig cambia ligeramente entre versiones y actualizaciones acumulativas. Guíese por las etiquetas en pantalla de la configuración de Windows Update y de la instalación de actualizaciones.
Verifique el acceso a internet y a DNS, ejecute sfc /scannow y DISM /Online /Cleanup-Image /RestoreHealth para reparar los componentes del sistema y vuelva a intentar la instalación.
¿Sigue sin resolverlo después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico de IMIDC, disponible 24/7, le ayudará. Incluya la IP del servidor, la versión del sistema operativo, los comandos que ejecutó y una captura de pantalla del error para que podamos localizar el problema más rápido.