¿Cómo me recupero del error de "reparación pendiente" en SFC?

10

Estoy tratando de solucionar un problema con el registro y los servicios de Windows. Intenté ejecutar el comando sfc pero este es el mensaje de error que recibo.

C:\Windows>sfc /scannow

Beginning system scan.  This process will take some time.    

There is a system repair pending which requires reboot to complete.  Restart
Windows and run sfc again.

C:\Windows>

Pero he reiniciado varias veces desde que apareció este mensaje por primera vez, e incluso intenté ejecutar el comando en modo seguro y en modo consola, pero sigo recibiendo el mismo mensaje. ¿Como me deshago de esto?

Hay este archivo en la carpeta winsxs: C: \ Windows \ winsxs \ cleanup.xml

Este es su contenido:

<?xml version='1.0' encoding='utf-16'?>
<PendingTransaction >
    <POQ postAction="NoReboot">
        <DeleteFile path="\??\D:\$$DeleteMe.CbsMsg.dll.01c85bd2f5893b40.0000"/>
    </POQ>
</PendingTransaction>

¿Podría ser esto algo? ¿Es esta la causa? ¿Es seguro eliminar este archivo?

Actualizar

Intenté renombrarlo pero la operación falló.

Ejecuté el explorer.exe con privilegios elevados y navegué a la ubicación. Recibí el mensaje de confirmación de UAC y luego el error a continuación.

Destination Folder Access Denied
You need permission to perform this action

¿Cómo cambio el nombre o elimino este archivo? ¿Necesito usar cmd o estar en modo seguro para hacerlo?

Actualización 2

Comencé el modo seguro con el símbolo del sistema e intenté tomar posesión del archivo y luego renombrarlo. Rename falló.

C:\Windows\winsxs>ren cleanup.xml cleanup.xml.old
Access is denied.

C:\Windows\winsxs>takeown /f "cleanup.xml"

SUCCESS: The file (or folder): "C:\Windows\winsxs\cleanup.xml" now owned by user
 "mycomputername\username".

C:\Windows\winsxs>ren cleanup.xml cleanup.xml.old
Access is denied.

C:\Windows\winsxs>

También emití el siguiente comando.

C:\Windows\system32>icacls "C:\Windows\winsxs\cleanup.xml" /grant username:F
processed file: C:\Windows\winsxs\cleanup.xml
Successfully processed 1 files; Failed processing 0 files

C:\Windows\system32>cd ..\winsxs

C:\Windows\winsxs>ren cleanup.xml cleanup.xml.old
Access is denied.

C:\Windows\winsxs>

Todavía no me permitirá cambiarle el nombre. Emití estos dos últimos comandos en modo normal de Windows. ¿Importa? Intentaré reiniciar.

Samir
fuente
Problema resuelto, realizando una instalación de reparación .
Samir
Tengo el mismo problema, pero no tengo un cleanup.xmlarchivo, así que no creo que esa sea la causa.
BlueRaja - Danny Pflughoeft
@BlueRaja Como recuerdo, tenía algo que ver con la limpieza, pero es posible que no necesite tener este archivo para saber que tiene este problema. Echa un vistazo a la segunda respuesta. El truco del registro puede funcionar para usted. Terminé haciendo una instalación de reparación si no recuerdo mal. Así que no pude probar eso.
Samir

Respuestas:

12

Tengo el mismo problema en Windows 7. Finalmente pude sfcejecutar usando los siguientes comandos de la consola de reparación (por alguna razón, se asignó D:a mi disco principal, en lugar de C:)

del d: \ windows \ winsxs \ pendiente.xml
del x: \ windows \ winsxs \ pendiente.xml
sfc / scannow / offbootdir = D: \ offwindir = D: \ Windows

(Sin embargo, sfcahora me dice

Protección de recursos de Windows encontró archivos corruptos pero no pudo reparar algunos de ellos.

así que esto no solucionó mis problemas de inicio )

BlueRaja - Danny Pflughoeft
fuente
Esto realmente no responde la pregunta. Si tiene una pregunta diferente, puede hacerla haciendo clic en Hacer pregunta . También puede agregar una recompensa para llamar más la atención sobre esta pregunta.
CharlieRB
Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar una aclaración de un autor, deje un comentario debajo de su publicación.
Ramhound
1
@CharlieRB y Ramhound: ¿eh? Sí, absolutamente responde la pregunta. La pregunta es "¿Cómo fuerza a SFC a ejecutarse cuando da este error?" Proporcioné la solución que usé para obligar a SFC a ejecutarse cuando me sucedió lo mismo. De hecho, no resolvió mi problema subyacente, pero eso es tangencial a la pregunta, por eso solo lo mencioné al final (y proporcioné un enlace a otro hilo, para ayudar a otros como yo)
BlueRaja - Danny Pflughoeft
@BlueRaja - Sin embargo, tener problemas es irrelevante para la pregunta del autor. En otras palabras, la segunda parte de la respuesta es irrelevante para el problema de sammyg. ¿Cómo se relaciona el enlace con su propia pregunta con respecto a cómo se elimina pending.xml(no lo es)?
Ramhound
1
@Ramhound: Sí, ya dije eso. Sin embargo, dado que es probable que haya otros en Internet con mi mismo problema, que encontrarán esta página a través de Google como yo, agregué información adicional relacionada para orientarlos en la dirección correcta (que es una cortesía extremadamente común en este sitio) . No entiendo cómo podrías culparte de eso. De todos modos, lo he paréntesis ahora, por lo que no hay forma de que alguien pueda confundirlo como parte necesaria de la respuesta.
BlueRaja - Danny Pflughoeft
4

Se supone que este comando lo haga.

dism.exe /image:C:\ /cleanup-image /revertpendingactions

Pero esto solo funciona en Windows 7 o más reciente. No tengo la herramienta dism.exe en Windows Vista. Solo pensé en compartirlo con aquellos que encuentran esta pregunta y que tienen Windows 7. Por supuesto, no pude probar esto yo mismo, pero este tipo dice que pudo eliminar este molesto mensaje de error del mundo. Por lo tanto, podría valer la pena intentarlo.

Samir
fuente
Cuando ejecuto este comando desde el indicador de reparación, solo obtengo Error 0x80029c4a - The request is not supported:(
BlueRaja - Danny Pflughoeft
¿Qué versión de Windows es?
Samir
Windows 7 Professional Edition (obtenido legalmente a través de MSDN)
BlueRaja - Danny Pflughoeft
No estoy muy seguro de que este sea el mismo problema entonces. Estaba usando Windows Vista. Según recuerdo, mi problema original era con el servicio de audio de Windows. No estaba comenzando por razones que no puedo recordar ahora. Entonces no tenía sonido. Intentaba repararlo, pero esto me dio un nuevo problema. Esta pregunta describe ese nuevo problema. Así que no sé qué te llevó a este problema. Todas las soluciones que se encuentran en este sitio son "tal cual". No siga cada paso alegremente sin adaptarlos a su problema específico.
Samir
@sammyg: este comando en particular requiere una actualización específica de Windows 7. Puede ser útil especificar cuál es, ya que la falta de esa información ha generado confusión 2 años después.
Ramhound
0

mira en el registro debajo SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicingsi ves una clave llamada RebootPending. Este es el lugar donde Windows también comprueba si hay un reinicio pendiente.

magicandre1981
fuente
En HKLM (máquina local)? ...
Samir
Sí, tengo HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPendingy contiene solo el valor de cadena predeterminado, y no está configurado en nada. ¿Debo establecerlo en 0 o algo así? ¿O tal vez quitar la llave?
Samir
"No se puede eliminar RebootPending: error al eliminar clave".
Samir
1
tome posesión de la clave: winaero.com/comment.php?comment.news.210 y ahora elimínela.
magicandre1981
¡Gracias! Descargaré esa herramienta de registro, estoy seguro de que será útil en algún momento. Por lo tanto, probablemente sea bueno tenerlo en la caja de herramientas.
Samir