Как мне восстановиться после ошибки «ожидание ремонта» в SFC?

10

Я пытаюсь решить проблему с реестром и службами Windows. Я попытался запустить команду SFC, но это сообщение об ошибке я получаю?

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>

Но с момента появления этого сообщения я несколько раз перезагружался, и я даже пытался запустить команду в безопасном режиме и в режиме консоли, но все равно получаю одно и то же сообщение. Как мне от этого избавиться?

Этот файл находится в папке winsxs: C: \ Windows \ winsxs \ cleanup.xml

Это его содержание:

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

Может ли это быть что-то? Это причина? Безопасно ли удалять этот файл?

Обновить

Я попытался переименовать его, но операция не удалась.

Я запустил файл explorer.exe с повышенными правами и перешел к месту. Я получил приглашение подтверждения UAC и затем ошибку ниже.

Destination Folder Access Denied
You need permission to perform this action

Как мне переименовать или удалить этот файл? Нужно ли использовать cmd или быть в безопасном режиме, чтобы сделать это?

Обновление 2

Я запустил безопасный режим с командной строкой и попытался завладеть файлом, а затем переименовать его. Переименовать не удалось.

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>

Я также дал следующую команду.

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>

Это все еще не позволит мне переименовать его. Я дал эти две последние команды в обычном режиме Windows. Имеет ли это значение? ... Попробую перезагрузку.

Samir
источник
Проблема решена путем выполнения ремонтной установки .
Самир
У меня та же проблема, но у меня нет cleanup.xmlфайла, поэтому я не думаю, что это причина.
BlueRaja - Дэнни Пфлугхофт
@BlueRaja Насколько я помню, это как-то связано с очисткой, но вам может не понадобиться этот файл, чтобы знать, что у вас есть эта проблема. Посмотрите на второй ответ. Уловка реестра может работать для вас. Я сделал ремонтную установку, если я правильно помню. Так что я не смог попробовать это.
Самир

Ответы:

12

У меня та же проблема в Windows 7. Я наконец-то sfcзапустился, используя следующие команды из консоли восстановления (по какой-то причине он назначен D:моему основному диску, а не C:)

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

(Впрочем, sfcтеперь говорит мне

Служба защиты ресурсов Windows обнаружила поврежденные файлы, но не смогла исправить некоторые из них.

так что это не исправило мои проблемы с запуском )

BlueRaja - Дэнни Пфлугхофт
источник
Это на самом деле не отвечает на вопрос. Если у вас есть другой вопрос, вы можете задать его, нажав Задать вопрос . Вы также можете добавить вознаграждение, чтобы привлечь больше внимания к этому вопросу.
CharlieRB
Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий под своим постом.
Ramhound
1
@CharlieRB и Ramhound: а? Да, это действительно отвечает на вопрос. Вопрос в том, как заставить SFC работать, когда он выдает эту ошибку? Я предоставил решение, которое использовал для запуска SFC, когда то же самое произошло со мной. На самом деле это не решило мою основную проблему, но это касательно вопроса, поэтому я упомянул об этом только в конце (и дал ссылку на другую
ветку
@BlueRaja - у вас проблемы не имеют отношения к вопросу автора, хотя. Другими словами, вторая часть ответа не имеет отношения к проблеме Саммыга. Как ссылка на ваш собственный вопрос имеет отношение к тому, как вы удаляете pending.xml(это не так).
Ramhound
1
@Ramhound: Да, я уже это сказал. Однако, поскольку в Интернете, вероятно, есть другие люди с моей той же проблемой, которые найдут эту страницу через Google, как и я, я добавил дополнительную связанную информацию, чтобы указать им правильное направление (что является чрезвычайно распространенной любезностью на этом сайте) . Я не понимаю, как ты мог ошибиться с этим. Несмотря на это, я заключил это в скобки сейчас, так что никто не мог спутать это с необходимой частью ответа.
BlueRaja - Дэнни Пфлюгофт
4

Эта команда должна сделать это.

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

Но это работает только в Windows 7 или новее. У меня нет инструмента dism.exe в Windows Vista. Я просто подумал, что поделюсь этим с теми, кто находит этот вопрос и у кого есть Windows 7. Я, конечно, не смог проверить это сам, но этот парень говорит, что ему удалось удалить это надоедливое сообщение об ошибке из мира. Так что стоит попробовать.

Samir
источник
Когда я запускаю эту команду из приглашения на ремонт, я просто получаю Error 0x80029c4a - The request is not supported:(
BlueRaja - Danny Pflughoeft
Какая версия Windows это?
Самир
Windows 7 Professional Edition (получено на законных основаниях через MSDN)
BlueRaja - Дэнни Пфлугхофт
Я не слишком уверен, что это та же самая проблема тогда. Я использовал Windows Vista. Насколько я помню, моей первоначальной проблемой была служба Windows Audio. Это не началось по причинам, которые я не могу вспомнить сейчас. Так что у меня не было звука. Я пытался отремонтировать его, но это дало мне новую проблему. Этот вопрос описывает эту новую проблему. Поэтому я не знаю, что привело вас к этой проблеме. Все решения, найденные на этом сайте, принимаются «как есть». Не следуйте всем шагам, не приспосабливая их к вашей конкретной проблеме.
Самир
@sammyg - эта конкретная команда требует определенного обновления Windows 7. Возможно, было бы полезно указать, какой именно, поскольку отсутствие этой информации привело к путанице через 2 года.
Ramhound
0

загляните в реестр, SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicingесли вы видите ключ с именем RebootPending. Это место, где Windows также проверяет, есть ли ожидающая перезагрузка.

magicandre1981
источник
В HKLM (локальная машина)? ...
Самир
Да, у меня есть, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPendingи он содержит только строковое значение по умолчанию, и ничего не установлено. Должен ли я установить его на 0 или что-то? Или, может быть, удалить ключ?
Самир
«Невозможно удалить RebootPending: Ошибка при удалении ключа.»
Самир
1
вступить во владение ключом: winaero.com/comment.php?comment.news.210 и теперь удалите его.
magicandre1981
Спасибо! Я скачаю этот инструмент reg, я уверен, что он пригодится когда-нибудь. Так что, наверное, хорошо иметь его в наборе инструментов.
Самир