ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Windows Server

Cómo gestionar Windows Update en Windows Server: sin reinicios automáticos y con PowerShell

6 pasos 15 min de lectura 5 vistas 0
Contenido

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.

Paso 1: Configurar el modo de Windows Update con sconfig

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.

sconfig

Paso 2: Desactivar los reinicios automáticos mediante directivas de grupo o el registro

En 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 /force
"No auto-restart with logged on users" solo funciona mientras exista una sesión. Si cierra la ventana de RDP sin cerrar sesión, la sesión permanece y le protege; si todos los usuarios han cerrado sesión, el servidor aún puede reiniciarse. Por eso lo combinamos con AUOptions=3.

Paso 3: Configurar las horas activas para evitar reinicios en horas punta

Windows 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,ActiveHoursEnd

Paso 4: Instalar actualizaciones de Windows con PowerShell PSWindowsUpdate

PSWindowsUpdate 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 -IgnoreReboot

Paso 5: Revisar el historial de Windows Update y los reinicios pendientes

Cuando 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"

Paso 6: Programar el reinicio en una ventana de mantenimiento

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 /a
Haga una copia de seguridad de los datos importantes antes de reiniciar y asegúrese de que sus servicios se inician automáticamente. Si el Escritorio remoto no está disponible durante un rato después del reinicio, es posible que Windows siga configurando las actualizaciones; espere de 10 a 20 minutos antes de contactar con soporte.

Preguntas frecuentes

¿Puedo desactivar Windows Update por completo?

Té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.

Los números de opción de sconfig no coinciden con esta guía.

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.

Las actualizaciones fallan constantemente o se quedan atascadas en la descarga.

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.

¿Fue útil la respuesta?

Tutoriales relacionados