Qué vas a conseguir
Un método para el equipo que no consigue instalar una actualización: saber qué actualización falla y con qué código, leer los dos registros que lo explican, reparar el almacén de componentes con DISM y SFC, reiniciar Windows Update sin borrar lo que no toca y resolver el caso más molesto: la actualización se instala, reinicia, llega al 100 % y dice No se pudieron completar las actualizaciones. Deshaciendo cambios.
Antes de empezar
- Windows 11 23H2, 24H2 o 25H2 y una sesión de administrador local (en remoto, por PowerShell o con la herramienta de control remoto).
- Saber cómo recibe las actualizaciones el equipo: Windows Update directamente, anillos de Intune, WSUS o MECM. Cambia dónde busca los archivos de reparación.
- Una ISO de Windows 11 de la misma versión que el equipo, guardada en un recurso compartido (
\\srv-ficheros\Software$\ISO), para reparar sin conexión. C:\Tempcreado para dejar las copias de los registros.
1. Qué actualización falla y con qué código
En el equipo, Configuración › Windows Update › Historial de actualizaciones: cada actualización con su estado y, si falló, el código. Desde PowerShell, con el historial completo:
$s = (New-Object -ComObject Microsoft.Update.Session).CreateUpdateSearcher()$s.QueryHistory(0, $s.GetTotalHistoryCount()) | Select-Object -First 4 Date, ResultCode, @{n='HResult';e={'0x{0:X8}' -f $_.HResult}}, Title | Format-ListDate : 03/11/2026 21:14:52ResultCode : 4HResult : 0x800F081FTitle : 2026-10 Actualización acumulativa para Windows 11 Version 24H2 para sistemas basados en x64 (KBxxxxxxx)Date : 02/11/2026 21:12:07ResultCode : 4HResult : 0x800F081FTitle : 2026-10 Actualización acumulativa para Windows 11 Version 24H2 para sistemas basados en x64 (KBxxxxxxx)ResultCode: 2 correcta, 3 correcta con errores, 4 fallida, 5 cancelada. La fecha está en UTC.- El mismo error queda en el registro Sistema, origen WindowsUpdateClient, evento 20 (Error de instalación), y en Registros de Windows › Setup aparece el paquete del KB y su cambio de estado.
Los códigos que más se ven y por dónde empezar:
| Código | Qué significa | Primer paso |
|---|---|---|
0x800f081f | CBS_E_SOURCE_MISSING: no encuentra los archivos de origen de un componente | DISM /RestoreHealth, con origen si hace falta (punto 4) |
0x800f0831 | CBS_E_STORE_CORRUPTION: falta el manifiesto de un paquete anterior | DISM; si no basta, el paquete del Catálogo |
0x80073712 | ERROR_SXS_COMPONENT_STORE_CORRUPT: almacén de componentes incoherente | DISM /RestoreHealth |
0x80070002 | ERROR_FILE_NOT_FOUND: falta un archivo, a menudo de una descarga a medias | Reiniciar los componentes (punto 5) |
0x80070070 | ERROR_DISK_FULL: no hay espacio | Hacer sitio (punto 6) |
0x800f0922 | CBS_E_INSTALLERS_FAILED: falló un instalador durante la instalación | Conexión a los servidores de actualización (VPN, proxy) y espacio en la partición del sistema |
0x8024402c | WU_E_PT_WINHTTP_NAME_NOT_RESOLVED: no resuelve el servidor de actualizaciones | DNS y proxy del equipo |
2. WindowsUpdate.log: qué hizo el agente
Desde Windows 10, el agente escribe trazas ETW en C:\Windows\Logs\WindowsUpdate. Get-WindowsUpdateLog las convierte en un texto legible (por defecto, en el escritorio de quien lo ejecuta):
Get-WindowsUpdateLog -LogPath C:\Temp\WindowsUpdate.logSelect-String -Path C:\Temp\WindowsUpdate.log -Pattern 'FATAL|0x8' | Select-Object -Last 4 | ForEach-Object Line2026/11/03 21:13:40.5512031 5120 8344 Deployment Installing update KBxxxxxxx (Revision 1)2026/11/03 21:14:51.9028114 5120 8344 Handler FATAL: CBS called Error with 0x800f081f,2026/11/03 21:14:51.9031209 5120 8344 Handler FATAL: Completing with result 0x800f081f2026/11/03 21:14:52.0125977 5120 8344 Agent * END * Install ClientId = UpdateOrchestrator, Updates = 1, ScenarioId = 8, Result 0x800f081fSi el error es de búsqueda o descarga (proxy, WSUS que no responde, 0x8024...), la causa está aquí. Si dice CBS called Error, el agente descargó bien y quien falló fue el servicio de componentes: el siguiente registro.
3. CBS.log: qué falló al instalar
CBS (Component-Based Servicing) instala los paquetes y anota cada paso en C:\Windows\Logs\CBS\CBS.log. Es grande y se está escribiendo: se copia y se busca en la copia.
Copy-Item C:\Windows\Logs\CBS\CBS.log C:\Temp\CBS.logSelect-String -Path C:\Temp\CBS.log -Pattern 'HRESULT = 0x8|Payload Corrupt|Error' | Select-Object -Last 3 | ForEach-Object Line2026-11-03 21:14:40, Info CSI (p) CSI Payload Corrupt (n) amd64_microsoft-windows-shell32_31bf3856ad364e35_10.0.26100.xxxx_none_...\shell32.dll2026-11-03 21:14:51, Error CBS Failed to pin deployment while resolving Update: Package_for_RollupFix~31bf3856ad364e35~amd64~~26100.xxxx [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]2026-11-03 21:14:51, Info CBS Failed to execute execution chain. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]Payload Corrupt o SOURCE_MISSING con el nombre de un componente es almacén de componentes dañado: lo arregla DISM. Los registros antiguos se comprimen en CbsPersist_*.cab en la misma carpeta.
4. DISM y SFC, en este orden
DISM repara el almacén de componentes (C:\Windows\WinSxS), que es de donde SFC saca las copias buenas de los archivos del sistema. Por eso DISM va primero.
DISM /Online /Cleanup-Image /CheckHealthDISM /Online /Cleanup-Image /ScanHealthThe component store is repairable.DISM /Online /Cleanup-Image /RestoreHealthError: 0x800f081fThe source files could not be found.Use the "Source" option to specify the location of the files that are required to restore the feature./CheckHealth lee una marca y tarda segundos; /ScanHealth revisa todo (varios minutos); /RestoreHealth repara descargando de Windows Update lo que falte. En un equipo que se actualiza por WSUS o sin salida a internet, esa descarga no llega y aparece el mismo 0x800f081f. Dos salidas:
- Origen sin conexión: montar la ISO de la misma versión, ver qué índice es tu edición y usarlo con
/LimitAccess, que impide ir a Windows Update.
Mount-DiskImage -ImagePath \\srv-ficheros\Software$\ISO\Win11_24H2_es-ES_x64.isoDISM /Get-WimInfo /WimFile:E:\sources\install.wimIndex : 3Name : Windows 11 EnterpriseDISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:E:\sources\install.wim:3 /LimitAccessThe restore operation completed successfully.sfc /scannowWindows Resource Protection found corrupt files and successfully repaired them.Si la ISO trae install.esd en lugar de install.wim, el origen es /Source:ESD:E:\sources\install.esd:3. Cuanto más reciente sea la ISO, más componentes encuentra.
- Permitir la reparación desde Windows Update aunque haya WSUS: la directiva Configuración del equipo › Plantillas administrativas › Sistema › Especificar la configuración para la instalación de componentes opcionales y la reparación de componentes, con la casilla de descargar el contenido de reparación directamente de Windows Update.
Lo que reparó SFC queda en CBS.log con la etiqueta [SR]: Select-String -Path C:\Windows\Logs\CBS\CBS.log -SimpleMatch '[SR]' | Select-Object -Last 10.
5. Reiniciar los componentes de Windows Update
Cuando el error es de descarga (0x80070002, una actualización que se queda al 0 % o vuelve a descargarse cada día), la caché de descargas o la base de datos de catálogos está mal. Se renombran, no se borran:
net stop wuauservnet stop bitsnet stop cryptsvcren C:\Windows\SoftwareDistribution SoftwareDistribution.oldren C:\Windows\System32\catroot2 catroot2.oldnet start cryptsvcnet start bitsnet start wuauserv- Si
rendice que el archivo está en uso, un servicio ha vuelto a arrancar solo: se para otra vez y se repite. - Windows crea las dos carpetas de nuevo en la siguiente búsqueda. El historial que se ve en Configuración se queda casi vacío: es normal, el de PowerShell y el registro de eventos siguen ahí.
- Nunca se borra
catroot(sin el 2) ni nada deWinSxSa mano. - Cuando el equipo se haya actualizado bien, se borran las carpetas
.old.
6. Espacio en disco
Una acumulativa necesita varios GB libres para descomprimirse y una actualización de versión bastante más: por debajo de 20 GB libres en C: empiezan los fallos raros.
Get-PSDrive C | Select-Object @{n='LibreGB';e={[math]::Round($_.Free/1GB,1)}}LibreGB------- 6,2DISM /Online /Cleanup-Image /AnalyzeComponentStoreComponent Store Cleanup Recommended : YesDISM /Online /Cleanup-Image /StartComponentCleanupAdemás: Configuración › Sistema › Almacenamiento › Recomendaciones de limpieza, la papelera, C:\Windows\SoftwareDistribution.old si ya no hace falta y, sobre todo, las carpetas del usuario que OneDrive puede dejar solo en la nube.
No uses /StartComponentCleanup /ResetBase como rutina: libera más espacio, pero las actualizaciones instaladas dejan de poder desinstalarse.
7. El ticket: "se instala, reinicia y dice 'Deshaciendo cambios'"
Martes, 8:45. Desde hace una semana, PC-0418 se reinicia cada noche, llega al 100 %, dice No se pudieron completar las actualizaciones. Deshaciendo cambios. No apagues el equipo y tarda veinte minutos en arrancar. Cumplimiento lo marca sin el parche del mes.
- El código: el historial del punto 1 da
0x800F081Fen el mismo KB cuatro noches seguidas. No es un fallo puntual. - Reinicio pendiente y espacio:
Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'daFalsey hay 6,2 GB libres. Se limpia (punto 6) hasta 31 GB. - Los registros: WindowsUpdate.log dice CBS called Error; CBS.log, CSI Payload Corrupt en un componente y
CBS_E_SOURCE_MISSING. Almacén de componentes dañado. - La reparación:
RestoreHealthfalla con0x800f081fporque el equipo va por WSUS. Con la ISO de 24H2 como origen y/LimitAccesstermina bien; después,sfc /scannowy un reinicio. - La actualización: Buscar actualizaciones. Se instala, reinicia y arranca sin deshacer. Si volviera a fallar, el paquete del Catálogo de Microsoft Update: en 24H2 pueden ser varios
.msu(actualizaciones de punto de control); se dejan todos en la misma carpeta y se instala el del KB conDISM /Online /Add-Package /PackagePath:C:\Temp\KB\windows11.0-kbxxxxxxx-x64.msu, que encuentra solo los requisitos. - Si nada de lo anterior funciona: Configuración › Sistema › Recuperación › Solucionar problemas con Windows Update › Reinstalar ahora reinstala la versión actual de Windows conservando aplicaciones y archivos. El último paso es reinstalar el equipo con la imagen corporativa.
Otras causas del mismo síntoma: con 0x800f0922, una VPN o un proxy que corta la conexión durante el reinicio, o la partición del sistema EFI sin espacio; con fallos de controladores en CBS.log, el controlador o el antivirus de terceros que bloquea los archivos.
En el ticket: KB, código, líneas de los dos registros, qué se reparó y con qué origen, y la comprobación final (historial con ResultCode 2).
Siguientes pasos
- El diagnóstico básico de un equipo lento o con errores es la primera guía de este tema: versión, disco, eventos e integridad del sistema.
- Si el equipo lo gestiona Intune, la guía de anillos de Windows Update en Intune explica plazos, reinicios forzados y los informes de cumplimiento.
- En servidores, el mismo método con ventanas y clústeres está en actualizaciones planificadas de Windows Server.
¿Falta algo o en tu entorno es distinto? Escríbeme y lo corrijo.
What you'll get
A method for the device that cannot install an update: knowing which update fails and with which code, reading the two logs that explain it, repairing the component store with DISM and SFC, resetting Windows Update without deleting what you shouldn't, and solving the most annoying case: the update installs, restarts, reaches 100% and says We couldn't complete the updates. Undoing changes.
Before you start
- Windows 11 23H2, 24H2 or 25H2 and a local administrator session (remotely, through PowerShell or the remote control tool).
- Knowing how the device gets its updates: Windows Update directly, Intune rings, WSUS or MECM. It changes where the repair files are fetched from.
- A Windows 11 ISO of the same version as the device, kept on a share (
\\srv-ficheros\Software$\ISO), for offline repair. C:\Tempcreated to keep the copies of the logs.
1. Which update fails and with which code
On the device, Settings › Windows Update › Update history: each update with its status and, if it failed, the code. From PowerShell, with the full history:
$s = (New-Object -ComObject Microsoft.Update.Session).CreateUpdateSearcher()$s.QueryHistory(0, $s.GetTotalHistoryCount()) | Select-Object -First 4 Date, ResultCode, @{n='HResult';e={'0x{0:X8}' -f $_.HResult}}, Title | Format-ListDate : 11/3/2026 9:14:52 PMResultCode : 4HResult : 0x800F081FTitle : 2026-10 Cumulative Update for Windows 11 Version 24H2 for x64-based Systems (KBxxxxxxx)Date : 11/2/2026 9:12:07 PMResultCode : 4HResult : 0x800F081FTitle : 2026-10 Cumulative Update for Windows 11 Version 24H2 for x64-based Systems (KBxxxxxxx)ResultCode: 2 succeeded, 3 succeeded with errors, 4 failed, 5 aborted. The date is in UTC.- The same error lands in the System log, source WindowsUpdateClient, event 20 (Installation Failure), and Windows Logs › Setup shows the KB package and its state change.
The codes you see most and where to start:
| Code | What it means | First step |
|---|---|---|
0x800f081f | CBS_E_SOURCE_MISSING: the source files for a component cannot be found | DISM /RestoreHealth, with a source if needed (step 4) |
0x800f0831 | CBS_E_STORE_CORRUPTION: the manifest of an earlier package is missing | DISM; if that is not enough, the Catalog package |
0x80073712 | ERROR_SXS_COMPONENT_STORE_CORRUPT: the component store is inconsistent | DISM /RestoreHealth |
0x80070002 | ERROR_FILE_NOT_FOUND: a file is missing, often from a half-finished download | Reset the components (step 5) |
0x80070070 | ERROR_DISK_FULL: there is no space | Free up space (step 6) |
0x800f0922 | CBS_E_INSTALLERS_FAILED: an installer failed during installation | Connection to the update servers (VPN, proxy) and space on the system partition |
0x8024402c | WU_E_PT_WINHTTP_NAME_NOT_RESOLVED: the update server name does not resolve | The device's DNS and proxy |
2. WindowsUpdate.log: what the agent did
Since Windows 10, the agent writes ETW traces to C:\Windows\Logs\WindowsUpdate. Get-WindowsUpdateLog turns them into readable text (by default, on the desktop of whoever runs it):
Get-WindowsUpdateLog -LogPath C:\Temp\WindowsUpdate.logSelect-String -Path C:\Temp\WindowsUpdate.log -Pattern 'FATAL|0x8' | Select-Object -Last 4 | ForEach-Object Line2026/11/03 21:13:40.5512031 5120 8344 Deployment Installing update KBxxxxxxx (Revision 1)2026/11/03 21:14:51.9028114 5120 8344 Handler FATAL: CBS called Error with 0x800f081f,2026/11/03 21:14:51.9031209 5120 8344 Handler FATAL: Completing with result 0x800f081f2026/11/03 21:14:52.0125977 5120 8344 Agent * END * Install ClientId = UpdateOrchestrator, Updates = 1, ScenarioId = 8, Result 0x800f081fIf the error is in the scan or download (proxy, WSUS not answering, 0x8024...), the cause is here. If it says CBS called Error, the agent downloaded fine and the one that failed was the servicing stack: the next log.
3. CBS.log: what failed during installation
CBS (Component-Based Servicing) installs the packages and writes every step to C:\Windows\Logs\CBS\CBS.log. It is large and being written to: copy it and search the copy.
Copy-Item C:\Windows\Logs\CBS\CBS.log C:\Temp\CBS.logSelect-String -Path C:\Temp\CBS.log -Pattern 'HRESULT = 0x8|Payload Corrupt|Error' | Select-Object -Last 3 | ForEach-Object Line2026-11-03 21:14:40, Info CSI (p) CSI Payload Corrupt (n) amd64_microsoft-windows-shell32_31bf3856ad364e35_10.0.26100.xxxx_none_...\shell32.dll2026-11-03 21:14:51, Error CBS Failed to pin deployment while resolving Update: Package_for_RollupFix~31bf3856ad364e35~amd64~~26100.xxxx [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]2026-11-03 21:14:51, Info CBS Failed to execute execution chain. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]Payload Corrupt or SOURCE_MISSING with a component name means a damaged component store: DISM fixes it. Older logs are compressed into CbsPersist_*.cab in the same folder.
4. DISM and SFC, in this order
DISM repairs the component store (C:\Windows\WinSxS), which is where SFC takes the good copies of system files from. That is why DISM goes first.
DISM /Online /Cleanup-Image /CheckHealthDISM /Online /Cleanup-Image /ScanHealthThe component store is repairable.DISM /Online /Cleanup-Image /RestoreHealthError: 0x800f081fThe source files could not be found.Use the "Source" option to specify the location of the files that are required to restore the feature./CheckHealth reads a flag and takes seconds; /ScanHealth checks everything (several minutes); /RestoreHealth repairs by downloading whatever is missing from Windows Update. On a device that updates through WSUS or has no internet access, that download never arrives and you get the same 0x800f081f. Two ways out:
- Offline source: mount the ISO of the same version, find the index of your edition and use it with
/LimitAccess, which stops DISM going to Windows Update.
Mount-DiskImage -ImagePath \\srv-ficheros\Software$\ISO\Win11_24H2_en-US_x64.isoDISM /Get-WimInfo /WimFile:E:\sources\install.wimIndex : 3Name : Windows 11 EnterpriseDISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:E:\sources\install.wim:3 /LimitAccessThe restore operation completed successfully.sfc /scannowWindows Resource Protection found corrupt files and successfully repaired them.If the ISO has install.esd instead of install.wim, the source is /Source:ESD:E:\sources\install.esd:3. The more recent the ISO, the more components it finds.
- Allow repair from Windows Update even with WSUS: the policy Computer Configuration › Administrative Templates › System › Specify settings for optional component installation and component repair, with the box to download repair content directly from Windows Update.
What SFC repaired goes into CBS.log with the [SR] tag: Select-String -Path C:\Windows\Logs\CBS\CBS.log -SimpleMatch '[SR]' | Select-Object -Last 10.
5. Resetting the Windows Update components
When the error is in the download (0x80070002, an update stuck at 0% or downloading again every day), the download cache or the catalog database is broken. You rename them, you do not delete them:
net stop wuauservnet stop bitsnet stop cryptsvcren C:\Windows\SoftwareDistribution SoftwareDistribution.oldren C:\Windows\System32\catroot2 catroot2.oldnet start cryptsvcnet start bitsnet start wuauserv- If
rensays the file is in use, a service has started again on its own: stop it again and repeat. - Windows recreates both folders on the next scan. The history shown in Settings ends up almost empty: that is normal, the PowerShell history and the event log are still there.
- Never delete
catroot(without the 2) or anything inWinSxSby hand. - Once the device has updated correctly, delete the
.oldfolders.
6. Disk space
A cumulative update needs several GB free to unpack and a version upgrade quite a lot more: below 20 GB free on C: the odd failures start.
Get-PSDrive C | Select-Object @{n='FreeGB';e={[math]::Round($_.Free/1GB,1)}}FreeGB------ 6.2DISM /Online /Cleanup-Image /AnalyzeComponentStoreComponent Store Cleanup Recommended : YesDISM /Online /Cleanup-Image /StartComponentCleanupAlso: Settings › System › Storage › Cleanup recommendations, the recycle bin, C:\Windows\SoftwareDistribution.old if no longer needed and, above all, the user's folders that OneDrive can keep in the cloud only.
Do not use /StartComponentCleanup /ResetBase as routine: it frees more space, but installed updates can no longer be uninstalled.
7. The ticket: "it installs, restarts and says 'Undoing changes'"
Tuesday, 8:45. For a week, PC-0418 has restarted every night, reached 100%, said We couldn't complete the updates. Undoing changes. Don't turn off your computer and taken twenty minutes to boot. Compliance flags it without this month's patch.
- The code: the history from step 1 gives
0x800F081Fon the same KB four nights in a row. It is not a one-off. - Pending reboot and space:
Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'returnsFalseand there are 6.2 GB free. A cleanup (step 6) takes it to 31 GB. - The logs: WindowsUpdate.log says CBS called Error; CBS.log, CSI Payload Corrupt on a component and
CBS_E_SOURCE_MISSING. Damaged component store. - The repair:
RestoreHealthfails with0x800f081fbecause the device uses WSUS. With the 24H2 ISO as the source and/LimitAccessit completes; thensfc /scannowand a restart. - The update: Check for updates. It installs, restarts and boots without rolling back. If it failed again, the package from the Microsoft Update Catalog: on 24H2 it can be several
.msufiles (checkpoint cumulative updates); put them all in the same folder and install the KB's one withDISM /Online /Add-Package /PackagePath:C:\Temp\KB\windows11.0-kbxxxxxxx-x64.msu, which finds the prerequisites by itself. - If none of that works: Settings › System › Recovery › Fix problems using Windows Update › Reinstall now reinstalls the current version of Windows keeping apps and files. The last step is reimaging the device with the corporate image.
Other causes of the same symptom: with 0x800f0922, a VPN or proxy that cuts the connection during the restart, or an EFI system partition with no space; with driver failures in CBS.log, the driver or a third-party antivirus locking the files.
In the ticket: KB, code, the lines from both logs, what was repaired and with which source, and the final check (history with ResultCode 2).
Next steps
- Basic diagnosis of a slow device or one with errors is the first guide in this topic: version, disk, events and system integrity.
- If Intune manages the device, the guide on Windows Update rings in Intune explains deadlines, forced restarts and the compliance reports.
- For servers, the same method with maintenance windows and clusters is in planned Windows Server updates.
Is something missing, or different in your environment? Get in touch and I'll fix it.
Tech Career Lab · newsletter
¿Te ha servido? Cada dos semanas envío una idea práctica para perfiles IT: LinkedIn, proyectos, networking y procesos de selección.Found this useful? Every two weeks I send one practical idea for IT professionals: LinkedIn, projects, networking and hiring processes.
Apúntate y llévate las 33 ideasSign up and get the 33 ideas →