Jak odzyskać po błędzie „naprawa w toku” w SFC?

10

Usiłuję rozwiązać problem z rejestrem i usługami systemu Windows. Próbowałem uruchomić polecenie sfc, ale pojawia się komunikat o błędzie?

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>

Ale kilka razy uruchomiłem się ponownie od momentu pojawienia się tego komunikatu i nawet próbowałem uruchomić polecenie w trybie awaryjnym i w trybie konsoli, ale nadal otrzymuję ten sam komunikat. Jak się tego pozbyć?

Plik ten znajduje się w folderze winsxs: C: \ Windows \ winsxs \ cleanup.xml

To jest treść:

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

Czy to może być coś? Czy to jest przyczyna? Czy usunięcie tego pliku jest bezpieczne?

Aktualizacja

Próbowałem zmienić nazwę, ale operacja nie powiodła się.

Uruchomiłem explorer.exe z podwyższonymi uprawnieniami i nawigowałem do lokalizacji. Dostałem monit o potwierdzenie UAC, a następnie błąd poniżej.

Destination Folder Access Denied
You need permission to perform this action

Jak zmienić nazwę lub usunąć ten plik? Czy muszę używać cmd lub być w trybie awaryjnym, aby to zrobić?

Aktualizacja 2

Uruchomiłem tryb awaryjny z wierszem polecenia i próbowałem przejąć plik na własność, a następnie zmienić jego nazwę. Zmiana nazwy nie powiodła się.

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>

Wydałem także następujące polecenie.

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>

Nadal nie pozwoli mi to zmienić nazwy. Ostatnie dwa polecenia wydałem w normalnym trybie Windows. Czy to ważne? ... Spróbuję ponownie uruchomić komputer.

Samir
źródło
Problem rozwiązany, wykonując instalację naprawczą .
Samir
Mam ten sam problem, ale nie mam cleanup.xmlpliku, więc nie sądzę, że to jest przyczyna.
BlueRaja - Danny Pflughoeft
@BlueRaja Jak pamiętam, miało to coś wspólnego z czyszczeniem, ale może nie być potrzebny ten plik, aby wiedzieć, że masz ten problem. Spójrz na drugą odpowiedź. Sztuczka z rejestru może działać dla Ciebie. Skończyło się na instalacji naprawczej, jeśli dobrze pamiętam. Więc nie próbowałem tego.
Samir

Odpowiedzi:

12

Mam ten sam problem w systemie Windows 7. W końcu musiałem sfcuruchomić, używając następujących poleceń z konsoli naprawy (z jakiegoś powodu został on przypisany D:do mojego dysku głównego, a nie C:)

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

(Jednak sfcteraz mi to mówi

Ochrona zasobów systemu Windows znalazła uszkodzone pliki, ale nie była w stanie naprawić niektórych z nich.

więc to nie rozwiązało moich problemów z uruchamianiem )

BlueRaja - Danny Pflughoeft
źródło
To tak naprawdę nie odpowiada na pytanie. Jeśli masz inne pytanie, możesz je zadać, klikając Zadaj pytanie . Możesz także dodać nagrodę za zwrócenie większej uwagi na to pytanie.
CharlieRB,
To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienia, zostaw komentarz pod postem.
Ramhound,
1
@CharlieRB and Ramhound: huh? Tak, absolutnie odpowiada na pytanie. Pytanie brzmi: „Jak wymusić uruchomienie SFC, gdy pojawia się ten błąd?” Podałem rozwiązanie, którego użyłem, aby zmusić SFC do uruchomienia, gdy to samo mi się przydarzyło. W rzeczywistości nie rozwiązał mojego podstawowego problemu, ale jest to styczne do pytania, dlatego wspomniałem o tym tylko na końcu (i
podałem
@BlueRaja - Twoje problemy nie mają znaczenia dla pytania autora. Innymi słowy, druga część odpowiedzi jest w pewnym stopniu nieistotna dla problemu sammyga. W jaki sposób link do własnego pytania ma znaczenie dla sposobu jego usunięcia pending.xml(nie jest).
Ramhound,
1
@Ramhound: Tak, już to powiedziałem. Ponieważ jednak w Internecie są prawdopodobnie inne osoby z tym samym problemem, które znajdą tę stronę w Google, tak jak ja, dodałem dodatkowe powiązane informacje, aby skierować ich we właściwym kierunku (co jest niezwykle powszechną uprzejmością na tej stronie) . Nie rozumiem, w jaki sposób mógłbyś popełnić błąd. Niezależnie od tego, nawiasowałem to teraz, więc nie ma mowy, żeby ktoś pomylił to jako niezbędną część odpowiedzi.
BlueRaja - Danny Pflughoeft,
4

To polecenie powinno to zrobić.

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

Ale działa to tylko w systemie Windows 7 lub nowszym. Nie mam narzędzia Dys.exe w systemie Windows Vista. Pomyślałem, że podzielę się tym z tymi, którzy znajdą to pytanie i mają system Windows 7. Oczywiście nie byłem w stanie samodzielnie tego przetestować, ale ten facet mówi, że był w stanie usunąć ten irytujący komunikat o błędzie ze świata. Może warto spróbować.

Samir
źródło
Po uruchomieniu tego polecenia z monitu o naprawę otrzymuję Error 0x80029c4a - The request is not supported:(
BlueRaja - Danny Pflughoeft
Jaka to wersja systemu Windows?
Samir
Windows 7 Professional Edition (uzyskany legalnie przez MSDN)
BlueRaja - Danny Pflughoeft
Nie jestem więc pewien, czy to ten sam problem. Korzystałem z systemu Windows Vista. O ile pamiętam, mój pierwotny problem dotyczył usługi Windows Audio. To się nie zaczęło z powodów, których teraz nie pamiętam. Więc nie miałem dźwięku. Próbowałem go naprawić, ale dało mi to nowy problem. To pytanie opisuje ten nowy problem. Nie wiem więc, co doprowadziło cię do tego problemu. Wszystkie rozwiązania znalezione na tej stronie są na zasadzie „jak jest”. Nie podążaj blado za każdym krokiem, nie dostosowując go do konkretnego problemu.
Samir,
@sammyg - To konkretne polecenie wymaga określonej aktualizacji systemu Windows 7. Może być użyteczne określenie, która to jest, ponieważ brak tych informacji doprowadził do zamieszania 2 lata później.
Ramhound,
0

zajrzyj do rejestru, SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicingjeśli zobaczysz klucz o nazwie RebootPending. Jest to miejsce, w którym system Windows sprawdza również, czy istnieje oczekujące ponowne uruchomienie.

magicandre1981
źródło
W HKLM (maszyna lokalna)? ...
Samir
Tak, mam HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPendingi zawiera tylko domyślną wartość ciągu i nie jest ustawiona na nic. Czy powinienem ustawić na 0 czy coś takiego? A może usunąć klucz?
Samir
„Nie można usunąć RebootPending: Błąd podczas usuwania klucza.”
Samir
1
przejmij na własność klucz: winaero.com/comment.php?comment.news.210 i teraz go usuń.
magicandre1981
Dzięki! Pobiorę to narzędzie reg, jestem pewien, że kiedyś się przyda. Prawdopodobnie dobrze jest mieć to w przyborniku.
Samir