Como me recupero do erro "reparo pendente" no SFC?

10

Estou tentando corrigir um problema com o registro e os serviços do Windows. Tentei executar o comando sfc, mas esta é a mensagem de erro que recebo?

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>

Mas eu reiniciei várias vezes desde que essa mensagem apareceu pela primeira vez e até tentei executar o comando no modo de segurança e no modo de console, mas ainda recebo a mesma mensagem. Como faço para me livrar dele?

Existe este arquivo na pasta winsxs: C: \ Windows \ winsxs \ cleanup.xml

Este é o seu conteúdo:

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

Isso poderia ser alguma coisa? Essa é a causa? É seguro excluir este arquivo?

Atualizar

Tentei renomeá-lo, mas a operação falhou.

Eu executei o explorer.exe com privilégios elevados e naveguei para o local. Recebi o prompt de confirmação do UAC e o erro abaixo.

Destination Folder Access Denied
You need permission to perform this action

Como renomear ou excluir este arquivo? Preciso usar o cmd ou estar no modo de segurança para fazer isso?

Atualização 2

Iniciei o modo de segurança com o prompt de comando e tentei me apropriar do arquivo e renomeá-lo. Renomear falhou.

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>

Eu também emiti o seguinte 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>

Ainda não me permitirá renomeá-lo. Emiti esses dois últimos comandos no modo normal do Windows. Isso importa? ... Vou tentar uma reinicialização.

Samir
fonte
Problema resolvido, executando uma instalação de reparo .
Samir
Estou com o mesmo problema, mas não tenho um cleanup.xmlarquivo, então não acho que essa seja a causa.
BlueRaja - Danny Pflughoeft
@BlueRaja Pelo que me lembro, ele tinha algo a ver com a limpeza, mas talvez você não precise desse arquivo para saber que tem esse problema. Dê uma olhada na segunda resposta. O truque do registro pode funcionar para você. Acabei fazendo uma instalação de reparo, se bem me lembro. Então eu não tentei isso.
Samir

Respostas:

12

Tenho o mesmo problema no Windows 7. Finalmente, executei sfcos seguintes comandos no console de reparo (por algum motivo, ele foi atribuído D:ao meu disco principal C:)

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

(No entanto, sfcagora me diz

A Proteção de Recursos do Windows encontrou arquivos corrompidos, mas não conseguiu consertar alguns deles.

isso não corrigiu meus problemas de inicialização )

BlueRaja - Danny Pflughoeft
fonte
Isso realmente não responde à pergunta. Se você tiver uma pergunta diferente, faça-a clicando em Fazer pergunta . Você também pode adicionar uma recompensa para chamar mais atenção para esta pergunta.
10269 CharlieRB
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem.
Ramhound 10/07/2015
1
@CharlieRB e Ramhound: hein? Sim, absolutamente responde à pergunta. A pergunta é "Como você força o SFC a executar quando este erro ocorre ?" Forneci a solução que usei para forçar o SFC a executar quando a mesma coisa aconteceu comigo. Na verdade, ele não resolveu meu problema subjacente, mas isso é tangencial à questão, e é por isso que eu a mencionei apenas no final (e forneci um link para outro segmento, para ajudar outras pessoas como eu)
BlueRaja - Danny Pflughoeft
@BlueRaja - Você está tendo problemas é irrelevante para a pergunta do autor. Em outras palavras, a segunda parte da resposta é meio irrelevante para o problema de sammyg. Como o vínculo com sua própria pergunta é relevante para como você exclui pending.xml(não é).
Ramhound 10/07/2015
1
@ Ramhound: Sim, eu já disse isso. No entanto, como existem outras pessoas na Internet com o mesmo problema, que encontrarão essa página no Google como eu, adicionei informações relacionadas adicionais para apontá-las na direção certa (que é uma cortesia extremamente comum neste site) . Eu não entendo como você pode ter culpa disso. Independentemente disso, eu já o coloquei entre parênteses, então não há como alguém confundi-lo como parte necessária da resposta.
BlueRaja - Danny Pflughoeft
4

Este comando deve fazê-lo.

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

Mas isso só funciona no Windows 7 ou mais recente. Não tenho a ferramenta dism.exe no Windows Vista. Eu apenas pensei em compartilhá-lo com aqueles que encontrarem essa pergunta e com o Windows 7. É claro que não consegui testar isso sozinho, mas esse cara diz que conseguiu remover essa mensagem de erro irritante do mundo. Portanto, pode valer a pena tentar.

Samir
fonte
Quando executo esse comando no prompt de reparo, recebo Error 0x80029c4a - The request is not supported:(
BlueRaja - Danny Pflughoeft
Qual é a versão do Windows?
Samir
Windows 7 Professional Edition (obtido legalmente através do MSDN)
BlueRaja - Danny Pflughoeft
Não tenho muita certeza de que esse seja o mesmo problema. Eu estava usando o Windows Vista. Pelo que me lembro, meu problema original era com o serviço de áudio do Windows. Não estava começando por razões que não me lembro agora. Então eu não tinha som. Eu estava tentando consertá-lo, mas isso me deu um novo problema. Esta pergunta descreve esse novo problema. Então, eu não sei o que o levou a esse problema. Todas as soluções encontradas neste site são "como estão". Não siga todas as etapas sem adaptá-las ao seu problema específico.
Samir
@sammyg - Este comando específico requer uma atualização específica do Windows 7. Pode ser útil especificar qual é, pois a falta dessas informações levou a confusão dois anos depois.
Ramhound 10/07/2015
0

procure no registro em SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicingse vir uma chave chamada RebootPending. É o local em que o Windows também verifica se há uma reinicialização pendente.

magicandre1981
fonte
Em HKLM (máquina local) ...?
Samir
Sim, eu tenho HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPendinge ele contém apenas o valor padrão da string, e não está definido para nada. Devo defini-lo como 0 ou algo assim? Ou talvez remova a chave?
Samir,
"Não foi possível excluir o RebootPending: Erro ao excluir a chave."
Samir
1
aproprie-se da chave: winaero.com/comment.php?comment.news.210 e exclua-a agora.
magicandre1981
Obrigado! Vou baixar essa ferramenta de registro, tenho certeza que será útil em algum momento. Portanto, provavelmente é bom tê-lo na caixa de ferramentas.
Samir