Reparar que Windows Update no pueda instalar actualizaciones mientras sfc y dism no se pueden utilizar

Reparar que Windows Update no pueda instalar actualizaciones mientras sfc y dism no se pueden utilizar

En algún momento de la vida útil del sistema de escritorio de mi PC, tuve dos pantallazos azules seguidos mientras jugaba videojuegos. Después de eso, logré evitar que el sistema fallara al volver a cablear todo el hardware, pero por alguna razón, cualquier actualización de Windows que afectó al sistema, como la actualización anual de 1803 a 1903 y una actualización aleatoria del marco .NET a 4.8 para la versión 1803 de Windows. seguía sin poder instalarse. Como no eran obligatorios, no les presté atención, ya que las actualizaciones de seguridad periódicas de Windows Defender aún funcionaban. En algún momento ejecuté el solucionador de problemas de Windows Update que decía que habían encontrado algunos errores pero que al reiniciar se ejecutaría una rutina de reparación.

En algún momento decidí que las actualizaciones volvieran a funcionar. Los errores de actualización fueron 0x8000ffff para la actualización de .NET y 0x800700C12 para la actualización de Windows.

Al buscarlos, encontrará un montón de basura en línea, ya que todos sabemos que todos y cada uno de los errores de Windows son el lugar perfecto para que las personas vulnerables instalen malware.

Descargar MediaCreationTool y decirle que hiciera una actualización manual a 1903 también falló con un "error crítico", aunque parecía que nada afectaba al sistema y simplemente no aplicó ningún cambio. Sin embargo, no hay registros (GRACIAS MICROSOFT POR ESTOS MENSAJES DE ERROR ÚTILES)

Al volcar el registro de actualización de Windows mediante el comando de PowerShell GetWindowsUpdateLog, descubrí... no mucho. Leer estos registros de errores es tedioso y complicado, y la diferenciación entre errores y fallas, así como el simple hecho de que hay sistemas involucrados de los que nunca habrás oído hablar durante el funcionamiento normal (al menos en Linux, sabes qué sistemas usas e instalas al configurar el sistema) no ayudó.

Luego intenté realizar una instalación manual de .NET 4.8 Framework. También falló desde el instalador normal, pero al menos descargó un archivo .xml con capacidad de búsqueda en alguna ubicación aleatoria de mis unidades (por alguna razón descargó los archivos de instalación en mi lento disco duro de almacenamiento de 2 TB en lugar de en algún lugar del SSD en el que estaba instalado el sistema). ejemplo. ¡Pero bueno! Windows y archivos temporales. ¿Qué podría salir mal si los archivos temporales nunca se limpian?). Al investigar eso, me llamó la atención que algún programa de línea de comando ejecutado durante los pasos finales de la instalación falló y devolvió el mismo código de error 0x8000ffff: wusa.exe

Comparar mensajes de error al menos es un error común durante la instalación: la parte de finalización falla.

Al buscar formas de arreglar la actualización de Windows, encontré consejos al intentar usar:

sfc /scannow

y

dism.exe /online /cleanup-image /restorehealth 

sfc falló con la información de que todavía hay cambios pendientes en el sistema y que debo reiniciar la PC. Lo hice todos los días durante los últimos 6 meses, por lo que esa no puede ser la solución.

dism.exe falló en alrededor del 82,6% y al menos me dio la pista de que hay registros que buscar para examinar. Aunque tampoco fueron muy útiles en su formato, también fallaron en algún paso de finalización.

Al investigar cómo hacer que sfc vuelva a funcionar, encontré una publicación aleatoria en el foro que le decía al usuario que eliminara el archivo pendiente.xml en el directorio WinSxS. Al buscar en ese directorio (para lo que sea que se use), encontré el archivo pendiente.xml, que tiene un tamaño de casi 300 MB. Algo no parece estar bien.

Eliminar el archivo como administrador no funciona. Sigo recibiendo errores de acceso denegado. Incluso descargar PSTools y abrir Power Shell ya que el usuario del SISTEMA me niega el derecho a eliminarlo. No hay procesos que tengan un identificador del archivo.

¿Cómo soluciono este problema y cómo se vinculan todos estos errores?

Respuesta1

Resultó que todo parece ser una maraña de errores.

La pantalla azul (la primera que obtuve en unos 10 años) que obtuve mientras jugaba videojuegos parecía haber ocurrido mientras la actualización de Windows estaba instalando algo en segundo plano. No sé si la actualización en sí fue la responsable, pero tuve que pasar por algunos obstáculos para que mi sistema volviera a funcionar, ya que informaba que el script de arranque estaba dañado. En aquel entonces, supongo que ejecuté alguna herramienta básica de línea de comandos desde el menú de inicio avanzado de solución de problemas para solucionar el problema de inicio. Luego volví a cablear todo porque los registros de errores me dijeron que algo extraño sucedió mientras escribía cosas en el disco, así que pensé que por alguna razón la conexión del cable al SSD del sistema se cortó mientras el sistema estaba funcionando. Después de que eso se solucionó, el sistema volvió a funcionar sin problemas, pero las actualizaciones ya no funcionaron.

Resulta que la "corrupción de archivos" fue más profunda. Parece que dentro del archivo pendiente.xml existe una lista de actualizaciones que deben aplicarse cuando se reinicia la PC. Sin embargo, ese archivo .xml estaba roto de alguna manera, lo que no le permitió a Windows LEER su contenido correctamente, pero aún así le permitió AGREGAR al archivo roto todas las actualizaciones que pensó que debería aplicar, leyendo así una cantidad arbitraria de datos del archivo y luego agregando todo eso. datos en la parte posterior durante cada reinicio, inflándolos cada vez más y hasta proporciones de casi GB de metadatos sobre actualizaciones pendientes.

Como la actualización de Windows y el instalador de .NET también quieren decirle al sistema "Es necesario hacer algo en el próximo reinicio del dispositivo" durante el paso de finalización, incluso los instaladores independientes y la actualización manual con la herramienta de creación de medios, Tampoco pudieron analizar y agregar correctamente el archivo pendiente.xml. Como todo esto estaba roto, ComponentBasedServicing parecía ser responsable de algunos programas, por lo que fue el CBS el que apareció aquí y allá en los archivos de registro de errores.

Ahora a la solución:

Primero tuve que iniciar el modo de resolución de problemas desde una memoria USB que configuré con la herramienta de creación de medios.

Allí lancé una línea de comando y eliminé manualmente el archivo pendiente.xml en el directorio WinSxS.

Después de eso, pude ejecutar un informe y sfc /scannowfinalmente obtuve un informe de que algunos archivos estaban dañados y algunas cosas se arreglaron, pero no todas.

Después de eso, pude ejecutar un dism /online /cleanup-image /restorehealtherror que falló al no poder encontrar una fuente para limpiar.

Después de eso pude ejecutar un dism /online /cleanup-image /startcomponentcleanupservicio para limpiar el componente.

Después de eso pude ejecutar otro /restorehalthcon éxito.

Después de eso, pude restablecer la caché de actualizaciones de Windows y volver a descargar todas las actualizaciones y mejoras pendientes.

Después de eso pude instalar la actualización 1903 y la actualización de .NET Framework.

Ahora todo PARECE estar bien.

Me encantaría que Windows le diera al usuario, no sólo a un superusuario, información más clara sobre lo que está o no roto en el sistema cuando ALGO falla.

Esta búsqueda fue un infierno. Y salí de ahí.

información relacionada