Error 0x800f0922 al instalar KB5046540 en Windows Server 2019 – Guía definitiva de solución

¿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.

Índice

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 y catroot2 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

PasoAcciónPropósito
1Comprobación de la integridad del sistema
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
Repara archivos de sistema y corrige daños en el almacén de componentes.
2Ejecutar el Solucionador de problemas de Windows UpdateReinicializa servicios, repara rutas de descarga y restablece cachés de WU.
3Revisar dispositivos con errores y actualizar o desinstalar controladoresEvita que drivers defectuosos bloqueen la fase de reinicio de la actualización.
4Verificar 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.
5Comprobar conectividad (desactivar VPN/Proxy, abrir puertos 80 y 443)Soluciona fallos de contacto con los servidores de actualización.
6Instalar primero la última SSU disponibleActualiza el motor de mantenimiento; sin él algunas CU fallan.
7Restablecer manualmente los componentes de Windows UpdateDescarta caché corrupta y fuerza la redescarga del paquete.
8Instalación sin conexión con wusa.exeEvita problemas de descarga y muestra códigos de error más específicos.
9Revisar CBS.log y el visor de eventosIdentifica 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:

  1. Respalda completo con imagen de sistema.
  2. Arranca con PowerShell o WinPE y ejecuta diskpart.
  3. 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”.

Índice