¿La actualización KB5046540 se atasca con el código 0x800f0922 en tu servidor 2019? En esta guía aprenderás por qué ocurre, cómo solucionarlo paso a paso y cómo prevenir que vuelva a suceder.
Síntomas del error
El administrador inicia Windows Update o WSUS para instalar “Cumulative Update for .NET Framework 3.5 / 4.7.2 / 4.8 for Windows Server 2019 for x64 (KB5046540)”. El agente descarga el paquete, solicita el reinicio y — al volver a arrancar — muestra “Undoing changes made to your computer” y registra el identificador 0x800f0922. En Event Viewer (Canal Setup
) se observa un evento Installation Failure: Windows failed to install the following update...
y en %windir%\Logs\CBS\CBS.log
la fase SafeOS devuelve el mismo código. El resultado final: la compilación permanece en 17763, .NET Framework no se actualiza y Windows Update vuelve a ofrecer la misma CU.
Causas habituales
- Espacio insuficiente en la partición reservada del sistema. El instalador debe colocar archivos de arranque firmados; menos de ~500 MB suele provocar el error.
- Desconexión temporal de la red en el reinicio; el mecanismo UUP intenta validar la firma en línea.
- Component Store dañado (
DISM
encuentra corrupción de manifiestos). - Servicios de Windows Update detenidos o carpetas
SoftwareDistribution
ycatroot2
corruptas. - .NET Framework deshabilitado en “Agregar roles y características”; el paquete no encuentra los binarios base.
- Controladores defectuosos bloquean la fase de carga mínima del kernel.
- Servicing Stack Update desfasado; la CU requiere un motor de mantenimiento más reciente.
Requisitos previos y comprobaciones básicas
Antes de ejecutar cualquier script verifica lo siguiente:
- Último SSU instalado. La rama build 17763 utiliza actualmente KB5034322 o posterior.
- .NET Framework 3.5 y 4.8 habilitados. Consolida en Server Manager ▸ Manage ▸ Add roles and features ▸ Features ▸ .NET Framework.
- Copias de seguridad recientes. Siempre prueba en un entorno de laboratorio o crea un snapshot.
- Acceso a Internet sin filtros HTTPS. Los dominios de Microsoft deben resolverse y los puertos 80/443 permanecer abiertos.
- Espacio libre en la partición reservada. Comprueba con
diskpart
o “Administración de discos”. Si es menor a 500 MB extiéndela desde almacenamiento redundante sin asignar.
Guía paso a paso para resolver el error
Paso | Acción | Propósito |
---|---|---|
1 | Comprobación de la integridad del sistemasfc /scannow DISM /Online /Cleanup-Image /RestoreHealth | Repara archivos de sistema y corrige daños en el almacén de componentes. |
2 | Ejecutar el Solucionador de problemas de Windows Update | Reinicializa servicios, repara rutas de descarga y restablece cachés de WU. |
3 | Revisar dispositivos con errores y actualizar o desinstalar controladores | Evita que drivers defectuosos bloqueen la fase de reinicio de la actualización. |
4 | Verificar espacio en la partición “System Reserved” (≥ 500 MB) | El código 0x800f0922 se genera cuando el gestor de arranque no dispone de espacio para los módulos. |
5 | Comprobar conectividad (desactivar VPN/Proxy, abrir puertos 80 y 443) | Soluciona fallos de contacto con los servidores de actualización. |
6 | Instalar primero la última SSU disponible | Actualiza el motor de mantenimiento; sin él algunas CU fallan. |
7 | Restablecer manualmente los componentes de Windows Update | Descarta caché corrupta y fuerza la redescarga del paquete. |
8 | Instalación sin conexión con wusa.exe | Evita problemas de descarga y muestra códigos de error más específicos. |
9 | Revisar CBS.log y el visor de eventos | Identifica archivos o dependencias que bloquean la instalación. |
Integridad del sistema con SFC y DISM
Ejecuta la línea de comandos con privilegios de administrador:
sfc /scannow
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /RestoreHealth
Si DISM
responde “repairable” descarga los archivos de origen desde la misma ISO Server 2019 montada:
DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:D:\sources\install.wim:1 /LimitAccess
Solucionador de problemas de Windows Update
Accede a Settings ▸ Update & Security ▸ Troubleshoot ▸ Windows Update y sigue el asistente. Este reinicia los servicios wuauserv
, bits
y limpia rutas de descarga. Tras finalizar, reinicia manualmente.
Inspección y gestión de controladores
Abre devmgmt.msc. Controladores con icono amarillo indican conflictos. Para minimizar riesgos:
- Actualiza a la última versión firmada compatible con Server 2019.
- Si no existe versión actual, desinstala temporalmente y marca la casilla “Delete the driver software”.
Espacio en la partición reservada
En “Administración de discos” comprueba la partición System Reserved. Si es menor a 500 MB:
- Respalda completo con imagen de sistema.
- Arranca con PowerShell o WinPE y ejecuta
diskpart
. - Extiende la partición tomando espacio libre de la unidad siguiente:
select volume 1
extend size=250
Al reiniciar, Windows Update podrá copiar los archivos de arranque actualizados.
Conectividad de red
Durante el reinicio, la fase SafeOS establece conexiones a hosts de Microsoft para validar catálogos. Desactiva VPNs, proxy explícito o filtrado HTTPS. Verifica con:
Test-NetConnection windowsupdate.microsoft.com -Port 443
Instalación de la SSU más reciente
Comprueba en “Ver historial de actualizaciones” que la SSU más reciente se haya aplicado. Si falta, descarga el archivo .msu
correspondiente a la build 17763 e instálalo primero.
Restablecer manualmente los componentes de Windows Update
net stop wuauserv
net stop bits
ren %windir%\SoftwareDistribution SoftwareDistribution.old
ren %windir%\System32\catroot2 catroot2.old
net start bits
net start wuauserv
Vuelve a ejecutar la búsqueda de actualizaciones.
Instalación sin conexión
Descarga Windows10.0-KB5046540-x64.msu
desde el Catálogo y aplica:
wusa.exe Windows10.0-KB5046540-x64.msu /quiet /norestart
Consulta %windir%\WindowsUpdate.log
para ver códigos detallados si falla de nuevo.
Métodos avanzados de reparación
Uso de DISM con parámetros ResetBase y ScratchDir
Para servidores con recursos limitados ejecuta:
DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase /ScratchDir:E:\Scratch
Esto compacta versiones y libera espacio antes de la instalación.
Reparación de características .NET
Abre PowerShell:
Get-WindowsFeature NET
Si NET-Framework-45-Core
o NET-Framework-Core
muestran estado “Removed”, vuelve a habilitarlas:
Install-WindowsFeature NET-Framework-Core -Source D:\sources\sxs
Install-WindowsFeature NET-Framework-45-Core
In‑Place Upgrade sobre la misma edición
Como última opción, monta el ISO de Server 2019 y lanza setup.exe
seleccionando conservar datos. El asistente reemplaza archivos del sistema sin afectar roles ni datos, y actualiza todos los componentes de mantenimiento.
Prevención de errores futuros
- Programa limpiezas mensuales con
dism /online /cleanup-image /startcomponentcleanup
. - Supervisa tamaños de particiones con scripts PowerShell y alertas vía correo o event log.
- Implementa WSUS o Windows Update for Business para validar CU en un anillo piloto antes del despliegue general.
- Deshabilita “Automatically detect settings” en servidores que usen proxy autenticado solo por política.
- Actualiza habitualmente el SSU; suele publicarse cada trimestre.
Preguntas frecuentes
¿Puedo eliminar directamente la partición reservada y recrearla más grande?
No se recomienda; borrarla altera BCD y firmas de arranque. Extiende la existente o crea un disco de arranque nuevo en coordinación con soporte.
¿El comando /ResetBase
elimina la posibilidad de desinstalar actualizaciones?
Sí. Solo ejecútalo cuando el servidor esté estable y documentado; reduce espacio pero hace permanentes las CU instaladas.
¿Por qué KB5046540 requiere Internet durante el reinicio si uso un .msu sin conexión?
El instalador todavía valida certificados raíz. Asegúrate de que la lista CTL de Microsoft esté actualizada o instala el paquete root certificates más reciente.
¿Existe riesgo de incompatibilidad de aplicaciones tras actualizar .NET?
Las CU de .NET Framework en Server 2019 son acumulativas y respetan compatibilidad. Aun así, prueba aplicaciones internas en un entorno de ensayo.
Conclusión
El código 0x800f0922 indica normalmente un obstáculo en la fase SafeOS: falta de espacio de arranque, corrupción de componentes o problemas de conectividad. Siguiendo la secuencia de verificación presentada — integridad de sistema, SSU, partición reservada, restablecimiento de Windows Update y reinstalación sin conexión — la gran mayoría de servidores consigue aplicar KB5046540 sin realizar reinstalaciones completas. Mantener un plan de mantenimiento proactivo reduce drásticamente la probabilidad de que el error reaparezca en futuros “Patch Tuesday”.