Windows 10: Error 0x800700b7 al instalar KB5034122 — solución paso a paso

Si Windows Update devuelve el error 0x800700b7 al instalar la actualización acumulativa KB5034122 en Windows 10 tras una interrupción, esta guía explica por qué ocurre y cómo resolverlo con un procedimiento probado y seguro, sin reinstalar el sistema.

Índice

Síntomas y contexto

Después de interrumpir accidentalmente la instalación de KB5034122 en un equipo Windows 10 x64 (compilación 19041.3570), cada nuevo intento termina con el código 0x800700b7. Se han probado sin éxito sfc /scannow, DISM /Online /Cleanup-Image, Restaurar sistema, reinstalación manual del paquete, desinstalación de acumulativas relacionadas y la limpieza de SoftwareDistribution. En CBS.log aparecen entradas del tipo “HRESULT 0x800700b7 – Already Exists” al intentar registrar catálogos de seguridad. También se detectan catálogos dañados dentro de C:\Windows\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}, por ejemplo:

  • Microsoft-Windows-Portable-Devices-merged-Package~...~10.0.19041.3636.cat
  • Microsoft-Windows-Printer-Drivers-Package~...~10.0.19041.3636.cat

Causa técnica

El código 0x800700b7 corresponde a ERRORALREADYEXISTS: Windows Update y el servicio de criptografía (CryptSvc) no pueden volver a registrar un catálogo porque ya existe una entrada inconsistente o duplicada. Esto suele ocurrir cuando:

  • La base de datos CatRoot2 (archivo catdb de ESENT) se corrompe tras un corte o reinicio durante el proceso de instalación.
  • Uno o varios archivos .cat del repositorio CatRoot están dañados o con hash erróneo.
ComponenteUbicaciónFunciónCuándo intervenir
CatRoot%windir%\System32\catroot\{F750E6C3-...}Almacén de catálogos .cat firmados usados por el sistema.Cuando hay .cat específicos corruptos (reemplazo selectivo).
CatRoot2%windir%\System32\catroot2Base de datos catdb y metadatos que registran catálogos.Cuando hay errores de registro o duplicados (regeneración).
SoftwareDistribution%windir%\SoftwareDistributionCaché de descargas y estado de Windows Update.Cuando hay descargas incompletas o colas corruptas (reset).

Ruta rápida de solución

El enfoque eficaz y de bajo riesgo se basa en tres acciones:

  1. Regenerar CatRoot2 y, si es necesario, reparar su catdb con esentutl.
  2. Reemplazar los .cat dañados en CatRoot por copias sanas.
  3. Restablecer componentes de Windows Update y relanzar la instalación.

Procedimiento detallado paso a paso

Ejecuta todo con privilegios de administrador en Símbolo del sistema o PowerShell. Si puedes, crea un punto de restauración o una copia de seguridad antes de empezar.

Detener servicios relacionados

En CMD:

net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver

En PowerShell (alternativa):

Stop-Service -Name wuauserv,bits,cryptsvc,msiserver -Force

Revisar y, si procede, reparar la base de datos de CatRoot2

Primero una comprobación. Si reporta errores, usar reparación forzada con /p (implica riesgos; intenta copia previa del archivo):

esentutl /g %windir%\System32\catroot2\catdb
rem Si hay errores:
esentutl /p %windir%\System32\catroot2\catdb

Nota: /p repara sin verificar integridad lógica completa; úsalo solo si la comprobación lo indica.

Restablecer carpetas de actualización

Renombrar para forzar su recreación en el próximo arranque de servicios:

ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old

Reemplazar catálogos dañados en CatRoot

Ubicación objetivo:

C:\Windows\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}

Necesitarás copias limpias de los .cat afectados. Dos vías seguras:

  • Otra máquina con la misma edición y compilación de Windows 10.
  • Extracción desde los paquetes oficiales de la actualización acumulativa.

Si no te deja sobrescribir, toma posesión y otorga permisos a Administradores:

takeown /f "C:\Windows\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\NOMBRE.cat"
icacls "C:\Windows\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\NOMBRE.cat" /grant Administradores:F

Para verificar que la copia no está dañada, puedes calcular el hash:

certutil -hashfile "RUTA\al\catalogo.cat" SHA256

Arrancar de nuevo los servicios

En CMD:

net start cryptsvc
net start msiserver
net start bits
net start wuauserv

En PowerShell:

Start-Service -Name cryptsvc,msiserver,bits,wuauserv

Relanzar la instalación

Opción a través de Windows Update (recomendado), o instalación manual con DISM o WUSA si ya descargaste el paquete:

wusa "C:\Ruta\al\paquete\windows10.0-kb5034122-x64.msu" /quiet /norestart

Si dispones del .cab:

Dism /Online /Add-Package /PackagePath:"C:\Ruta\al\paquete\windows10.0-kb5034122-x64.cab" /Quiet /NoRestart

Verificación posterior

Comprueba que la actualización quedó registrada y que no hay errores pendientes.

Comprobación con PowerShell

Get-HotFix -Id KB5034122

También puedes listar paquetes del mantenimiento:

Dism /Online /Get-Packages /Format:Table | findstr 5034122

Registro de eventos

Busca eventos de instalación correcta en el canal de Windows Update Client y en Setup:

Get-WinEvent -LogName "Microsoft-Windows-WindowsUpdateClient/Operational" | Where-Object {$_.Id -in 19,43} | Select-Object -First 20 TimeCreated,Id,Message
Get-WinEvent -LogName Setup | Where-Object {$_.Id -in 2,4} | Select-Object -First 20 TimeCreated,Id,Message

Regeneración correcta de CatRoot2

Tras iniciar cryptsvc, la carpeta catroot2 se recrea con un catdb nuevo. Si sigues viendo errores ESENT, repite la comprobación con esentutl /g.

Métodos seguros para obtener catálogos limpios

Extracción desde el paquete de la actualización

Los catálogos viajan dentro del .cab/.msu de la acumulativa. Puedes extraerlos así:

mkdir C:\Temp\KB5034122
expand -F:* "C:\Ruta\al\paquete\windows10.0-kb5034122-x64.cab" C:\Temp\KB5034122

Dentro verás subcarpetas con .mum y .cat. Localiza los que coincidan por nombre con los dañados (por ejemplo, los relacionados con Portable-Devices o Printer-Drivers) y cópialos sobre CatRoot:

copy /Y "C:\Temp\KB5034122\\Microsoft-Windows-Portable-Devices-merged-Package~.cat" "C:\Windows\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\"
copy /Y "C:\Temp\KB5034122\\Microsoft-Windows-Printer-Drivers-Package~.cat" "C:\Windows\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\"

Extracción desde otra instalación idéntica

En un equipo sano con la misma edición y compilación, copia los .cat equivalentes desde su CatRoot al tuyo. Verifica hashes si es posible.

Motivos por los que sfc y DISM no lo solucionan

  • sfc valida archivos del sistema en uso, pero no reindexa ni repara el repositorio de catálogos.
  • DISM /RestoreHealth corrige el almacén de componentes (WinSxS) y manifiestos, no el índice de catálogos de CatRoot2 ni los .cat dañados en CatRoot.

Errores habituales a evitar

  • Eliminar CatRoot por completo. No lo borres: contiene catálogos válidos. Limítate a sustituir los que están corruptos.
  • Pasar por alto la detención de servicios. Si no detienes cryptsvc, wuauserv y bits, los archivos quedarán bloqueados o se recrearán de forma inconsistente.
  • No hacer copia de catroot2 antes de esentutl /p. La reparación forzada es útil, pero agresiva.
  • Mezclar catálogos de compilaciones distintas. Usa catálogos de la misma versión.

Solución alternativa de último recurso

Si persiste el error tras todo lo anterior, una reparación in‑place con un medio de instalación de la misma versión de Windows 10 suele sanear el subsistema de actualización sin perder aplicaciones ni datos. Ejecuta el setup, elige Conservar archivos y aplicaciones y finaliza. Después vuelve a intentar Windows Update.

Guía de actuación rápida

SíntomaAcción recomendadaComando clave
Mensaje Already Exists en CBSRegenerar CatRoot2ren %windir%\System32\catroot2 catroot2.old
.cat concretos no validanReemplazo selectivo en CatRootcopy /Y *.cat %systemroot%\System32\catroot\{F750...}\
Servicios bloquean archivosDetener y reiniciar serviciosnet stop/start wuauserv bits cryptsvc msiserver
Descarga en bucleReset de cachéren %windir%\SoftwareDistribution SoftwareDistribution.old
Post‑instalaciónVerificar instalaciónGet-HotFix -Id KB5034122

Apéndice de comandos útiles

rem Comandos de diagnóstico
findstr /c:"0x800700b7" %windir%\Logs\CBS\CBS.log
Get-WindowsUpdateLog

rem Equivalentes con PowerShell para permisos
\$cat = "C:\Windows\System32\catroot{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\NOMBRE.cat"
icacls \$cat /grant Administradores\:F

rem Comprobación de integridad del sistema y del almacén (por si hubiera otros problemas colaterales)
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth 

Ejemplo práctico aplicado

En un caso real, los catálogos dañados eran Portable‑Devices‑merged y Printer‑Drivers con sufijos de la rama 10.0.19041.3636. Tras:

  1. Detener servicios,
  2. Renombrar catroot2 y SoftwareDistribution,
  3. Reemplazar ambos .cat por copias limpias,
  4. Reiniciar servicios y relanzar Windows Update,

la instalación de KB5034122 se completó correctamente y el sistema quedó actualizado.

Resumen esencial

En una línea: el fallo lo provocaban dos catálogos .cat corruptos; al reemplazarlos, regenerar CatRoot2 y restablecer Windows Update, la acumulativa KB5034122 se instaló sin errores.


Índice