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.
Síntomas que confirman el problema
- El Visor de eventos registra advertencias
Windows Update Client
con el código0x8007000E – 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
- Comprobar espacio libre con
Get-PSDrive -PSProvider FileSystem
. - Inspeccionar
%SystemRoot%\Logs\CBS\CBS.log
en busca de “Failed to create store file”. - Verificar que wuauserv y TrustedInstaller estén en estado Running o puedan iniciarse.
- Test de conectividad:
Test-NetConnection update.microsoft.com -Port 443
. - Ejecutar Server Manager > Roles and Features > Add roles > Windows Server Backup (opcional) para respaldo antes de la intervención.
Solución rápida
Paso | Acción | Objetivo |
---|---|---|
1 | Comprobar espacio en disco | Verificar que la partición con SoftwareDistribution y WinSxS disponga de margen para nuevos parches |
2 | Ejecutar el solucionador de problemas de Windows Update | Detectar y reparar configuraciones o servicios dañados |
3 | Restablecer los componentes de Windows Update (detener servicios, borrar SoftwareDistribution, reiniciar servicios) | Forzar la reconstrucción del repositorio y eliminar archivos obsoletos |
4 | Instalar manualmente parches críticos desde el Catálogo de Microsoft Update | Evitar tiempos de inactividad mientras se resuelve la causa raíz |
5 | Evitar modificar la clave de registro indicada | Prevenir 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
- Detener servicios:
net stop wuauserv net stop bits net stop cryptsvc net stop trustedinstaller
- Renombrar o borrar carpetas:
ren %SystemRoot%\SoftwareDistribution SoftwareDistribution.old ren %SystemRoot%\System32\catroot2 catroot2.old
- 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.