Windows Server 2016: cómo reparar Windows Update cuando no descarga parches por repositorio lleno

Los administradores de Windows Server 2016 se topan con un fallo especialmente frustrante: de un día para otro, Windows Update deja de descargar e instalar parches. El síntoma primario es que la carpeta SoftwareDistribution y, por extensión, la base de componentes WinSxS crecen hasta llenar la partición del sistema. Cuando el “repositorio” interno está saturado, el servicio wuauserv muestra errores de tiempo de espera o códigos 0x80240020/0x8007000E, aun cuando la conectividad a Internet es perfecta y el servidor está correctamente configurado en WSUS o en Microsoft Update.

Índice

Síntomas que confirman el problema

  • El Visor de eventos registra advertencias Windows Update Client con el código 0x8007000E – Not enough storage is available.
  • Se observa que la carpeta %SystemRoot%\SoftwareDistribution\Download supera varios GB sin disminuir tras los ciclos de actualización.
  • La tarea de mantenimiento “StartComponentCleanup” (programada por el sistema) tarda horas o no se ejecuta.
  • Al lanzar dism /Online /Cleanup-Image /AnalyzeComponentStore se devuelven valores de tamaño “Actualización recomendada”.

Por qué ocurre la saturación del repositorio

Windows Update descarga los paquetes de revisión en SoftwareDistribution y luego integra los binarios definitivos en WinSxS. Cuando el disco llega al umbral del 10 % libre, Windows Update deja de purgar artefactos antiguos. Esto se agrava si el servidor:

  • Oficia de punto de distribución (cache) para otros equipos.
  • Tiene la partición del sistema dimensionada para workloads ligeros (40–60 GB).
  • Arrastra historial de actualizaciones interrumpidas o un apagado inesperado.

En algunos foros se menciona la clave de registro HKEYLOCALMACHINE\COMPONENTS\DerivedData\VersionedIndex. Esta clave almacena metadatos de la base WinSxS. Alterarla manualmente puede provocar corrupción en la Component Store y forzar reinstalaciones completas. Por tanto, no se aconseja modificarla; la limpieza debe hacerse desde herramientas soportadas (Disk Cleanup, DISM, etc.).

Diagnóstico paso a paso

  1. Comprobar espacio libre con Get-PSDrive -PSProvider FileSystem.
  2. Inspeccionar %SystemRoot%\Logs\CBS\CBS.log en busca de “Failed to create store file”.
  3. Verificar que wuauserv y TrustedInstaller estén en estado Running o puedan iniciarse.
  4. Test de conectividad: Test-NetConnection update.microsoft.com -Port 443.
  5. Ejecutar Server Manager > Roles and Features > Add roles > Windows Server Backup (opcional) para respaldo antes de la intervención.

Solución rápida

PasoAcciónObjetivo
1Comprobar espacio en discoVerificar que la partición con SoftwareDistribution y WinSxS disponga de margen para nuevos parches
2Ejecutar el solucionador de problemas de Windows UpdateDetectar y reparar configuraciones o servicios dañados
3Restablecer los componentes de Windows Update (detener servicios, borrar SoftwareDistribution, reiniciar servicios)Forzar la reconstrucción del repositorio y eliminar archivos obsoletos
4Instalar manualmente parches críticos desde el Catálogo de Microsoft UpdateEvitar tiempos de inactividad mientras se resuelve la causa raíz
5Evitar modificar la clave de registro indicadaPrevenir corrupción en la Component Store

Guía detallada de acciones correctivas

Comprobar y ampliar espacio en disco

La forma más segura es anexar espacio al VHD o al arreglo RAID y expandir la partición con diskpart o Server Manager. Si no es viable:

cleanmgr /sageset:1
cleanmgr /sagerun:1

Marca la casilla “Limpieza de Windows Update” para liberar gigabytes ocupados por revisiones reemplazadas.

Solucionador de problemas incorporado

Desde Settings > Update & Security > Troubleshoot > Windows Update o ejecutando:

msdt.exe /id WindowsUpdateDiagnostic

Corrige permisos en la carpeta de catálogos, reinicia BITS y renueva firmas de los archivos .cat.

Restablecimiento manual de Windows Update

  1. Detener servicios: net stop wuauserv net stop bits net stop cryptsvc net stop trustedinstaller
  2. Renombrar o borrar carpetas: ren %SystemRoot%\SoftwareDistribution SoftwareDistribution.old ren %SystemRoot%\System32\catroot2 catroot2.old
  3. Reiniciar servicios: net start cryptsvc net start bits net start wuauserv net start trustedinstaller

Instalación manual de parches críticos

Mientras se repara el sistema, descarga los últimos Cumulative Updates (CU) y Servicing Stack Updates (SSU) desde el Catálogo de Microsoft Update. Instala primero el SSU (KB5001402 o superior) y después el CU con:

wusa.exe windows10.0-kb5008207-x64.msu /quiet /norestart

DISM para limpiar WinSxS

Una vez recuperado Windows Update ejecuta:

DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase

Con /ResetBase se consolidan revisiones y se impide revertirlas, generando la mayor reducción de espacio posible.

Automatización y prevención

Programar limpieza mensual

Crea una tarea con Task Scheduler que ejecute:

Powershell.exe -ExecutionPolicy Bypass -Command "& {Start-Process dism -ArgumentList '/Online','/Cleanup-Image','/StartComponentCleanup' -Wait}"

Monitor de crecimiento con PowerShell

# Variables
$ThresholdGB = 5
$SDPath = "$env:SystemRoot\SoftwareDistribution"
$SizeGB = (Get-ChildItem -Path $SDPath -Recurse -Force | Measure-Object -Property Length -Sum).Sum / 1GB
if ($SizeGB -gt $ThresholdGB) {
    Write-EventLog -LogName Application -Source 'WSUS-Sentinel' -EventID 1001 -EntryType Warning -Message "SoftwareDistribution ocupa $([math]::Round($SizeGB,2)) GB"
}

Integra este script en un runbook de Azure Automation o en tu sistema de monitorización favorito (PRTG, Zabbix, Nagios).

Reglas de oro para servidores críticos

  • Mantén un backup del estado del sistema antes de grandes ciclos de parcheo.
  • Aísla la carpeta pagefile.sys en un disco distinto cuando el sistema acoge roles RAM intensivos como Hyper‑V.
  • Evita snapshots prolongados: el crecimiento diferencial duplica las necesidades de espacio en discos dinámicos.
  • No modifiques manualmente claves de registro que comiencen por HKEYLOCALMACHINE\COMPONENTS salvo indicación de Microsoft Support.

Más detalles sobre DerivedData\VersionedIndex

Esta subclave contiene un índice binario que enumera las versiones de cada manifiesto almacenado en WinSxS. Microsoft la usa para calcular dependencias durante la fase Deep Clean. Al borrarla, Windows pierde la referencia de “qué archivo reemplaza a cuál” y obliga a reconstruir todo el repositorio, ejercicio que en muchos casos termina en error 0xC000021A al reiniciar. Por ello, la mejor práctica es nunca intervenirla; cualquier guía que sugiera lo contrario es obsoleta o aplica solo a versiones previas como Windows Server 2008 R2.

Conclusiones

El fallo de descargas en Windows Update sobre Windows Server 2016 casi siempre se origina por disco lleno o caché corrupta. Limpiar SoftwareDistribution, ejecutar StartComponentCleanup y automatizar la tarea cada mes restablece el ciclo de parches sin tocar el registro. Con espacio planificado y monitorización proactiva, la incidencia no debería volver a presentarse.

Índice