Bagaimana cara saya pulih dari kesalahan "perbaikan menunggu" di SFC?

10

Saya mencoba untuk memperbaiki masalah dengan registri dan layanan Windows. Saya mencoba menjalankan perintah sfc tapi ini pesan kesalahan yang saya dapatkan?

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>

Tetapi saya telah reboot beberapa kali sejak pesan ini pertama kali muncul, dan saya bahkan mencoba menjalankan perintah dalam mode aman dan dalam mode konsol tetapi saya masih mendapatkan pesan yang sama. Bagaimana saya menyingkirkannya?

Ada file ini di folder winsxs: C: \ Windows \ winsxs \ cleanup.xml

Ini kontennya:

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

Mungkinkah ini sesuatu? Apakah ini penyebabnya? Apakah aman menghapus file ini?

Memperbarui

Saya mencoba mengganti nama tetapi operasinya gagal.

Saya menjalankan explorer.exe dengan hak yang lebih tinggi dan menavigasi ke lokasi. Saya mendapat konfirmasi konfirmasi UAC dan kemudian kesalahan di bawah ini.

Destination Folder Access Denied
You need permission to perform this action

Bagaimana cara saya mengganti nama atau menghapus file ini? Apakah saya perlu menggunakan cmd atau dalam mode aman untuk melakukannya?

Perbarui 2

Saya mulai safe mode dengan command prompt dan mencoba mengambil kepemilikan file dan kemudian mengubah nama itu. Ganti nama gagal.

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>

Saya juga mengeluarkan perintah berikut.

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>

Itu masih tidak memungkinkan saya untuk mengganti nama. Saya mengeluarkan dua perintah terakhir ini dalam mode Windows normal. Apakah itu penting? ... Saya akan mencoba reboot.

Samir
sumber
Masalah terpecahkan, dengan melakukan instalasi perbaikan .
Samir
Saya memiliki masalah yang sama, tetapi saya tidak memiliki cleanup.xmlfile, jadi saya tidak berpikir itu penyebabnya.
BlueRaja - Danny Pflughoeft
@ BlueRaja Seingat saya, memang ada hubungannya dengan pembersihan, tetapi Anda mungkin tidak perlu memiliki file ini untuk mengetahui bahwa Anda memiliki masalah ini. Lihatlah jawaban kedua. Trik registri dapat bekerja untuk Anda. Saya akhirnya melakukan instalasi perbaikan jika saya ingat dengan benar. Jadi saya tidak bisa mencobanya.
Samir

Jawaban:

12

Saya memiliki masalah yang sama di Windows 7. Saya akhirnya harus sfcmenjalankan menggunakan perintah berikut dari konsol perbaikan (untuk beberapa alasan, itu ditugaskan D:ke disk utama saya, daripada C:)

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

(Namun, sfcsekarang katakan padaku

Perlindungan Sumber Daya Windows menemukan file yang rusak tetapi tidak dapat memperbaikinya.

jadi ini tidak memperbaiki masalah startup saya )

BlueRaja - Danny Pflughoeft
sumber
Ini tidak benar-benar menjawab pertanyaan itu. Jika Anda memiliki pertanyaan yang berbeda, Anda dapat menanyakannya dengan mengeklik Ajukan Pertanyaan . Anda juga dapat menambahkan hadiah untuk menarik lebih banyak perhatian pada pertanyaan ini.
CharlieRB
Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka.
Ramhound
1
@CharlieRB dan Ramhound: ya? Ya, itu benar-benar menjawab pertanyaan itu. Pertanyaannya adalah "Bagaimana Anda memaksa SFC untuk menjalankan ketika memberikan kesalahan ini?" Saya memberikan solusi yang saya gunakan untuk memaksa SFC untuk menjalankan ketika hal yang sama terjadi pada saya. Sebenarnya tidak menyelesaikan masalah mendasar saya, tetapi itu tangensial untuk pertanyaan, itulah sebabnya saya hanya menyebutkannya di akhir (dan memberikan tautan ke utas lain, untuk membantu orang lain seperti saya)
BlueRaja - Danny Pflughoeft
@BlueRaja - Anda mengalami masalah tidak relevan dengan pertanyaan penulis. Dengan kata lain, bagian kedua dari jawabannya agak tidak relevan dengan masalah sammyg. Bagaimana menautkan ke pertanyaan Anda sendiri relevan dengan cara Anda menghapus pending.xml(bukan).
Ramhound
1
@ Ramhound: Ya, saya sudah mengatakan itu. Namun, karena ada kemungkinan orang lain di Internet dengan masalah yang sama dengan saya, yang akan menemukan halaman ini melalui Googling seperti yang saya lakukan, saya menambahkan informasi terkait tambahan untuk mengarahkan mereka ke arah yang benar (yang merupakan kesopanan yang sangat umum di situs ini) . Saya tidak mengerti bagaimana Anda bisa mengambil kesalahan dengan itu. Bagaimanapun juga, saya sudah mengurungnya sekarang, jadi tidak mungkin seseorang dapat mengacaukannya sebagai bagian penting dari jawaban.
BlueRaja - Danny Pflughoeft
4

Perintah ini seharusnya melakukannya.

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

Tetapi ini hanya bekerja di Windows 7 atau lebih baru. Saya tidak memiliki alat dism.exe di Windows Vista. Saya hanya berpikir saya akan membaginya dengan mereka yang menemukan pertanyaan ini dan yang memiliki Windows 7. Saya tentu saja tidak dapat menguji ini sendiri, tetapi orang ini mengatakan ia dapat menghapus pesan kesalahan yang menjengkelkan ini dari dunia. Jadi mungkin patut dicoba.

Samir
sumber
Ketika saya menjalankan perintah ini dari prompt perbaikan, saya hanya mendapatkan Error 0x80029c4a - The request is not supported:(
BlueRaja - Danny Pflughoeft
Versi Windows apa itu?
Samir
Windows 7 Professional Edition (diperoleh secara resmi melalui MSDN)
BlueRaja - Danny Pflughoeft
Saya tidak terlalu yakin ini adalah masalah yang sama. Saya menggunakan Windows Vista. Seingat saya, masalah asli saya adalah dengan layanan Audio Windows. Itu tidak dimulai karena alasan yang saya tidak ingat sekarang. Jadi saya tidak punya suara. Saya berusaha memperbaikinya, tetapi ini memberi saya masalah baru. Pertanyaan ini menjelaskan masalah baru itu. Jadi saya tidak tahu apa yang menyebabkan Anda mengalami masalah ini. Semua solusi yang ditemukan di situs ini adalah "sebagaimana adanya". Jangan ikuti setiap langkah secara blak-blakan tanpa menyesuaikannya dengan masalah spesifik Anda.
Samir
@sammyg - Perintah khusus ini membutuhkan pembaruan Windows 7 tertentu. Mungkin berguna untuk menentukan yang mana, karena kurangnya informasi tersebut telah menyebabkan kebingungan 2 tahun kemudian.
Ramhound
0

lihat di registri di bawah SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicingjika Anda melihat kunci yang disebut RebootPending. Ini adalah tempat di mana Windows juga memeriksa apakah ada reboot yang tertunda.

magicandre1981
sumber
Di HKLM (mesin lokal)? ...
Samir
Ya, saya miliki HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPendingdan hanya berisi nilai string default, dan tidak disetel ke apa pun. Haruskah saya mengaturnya ke 0 atau sesuatu? Atau mungkin menghapus kunci?
Samir
"Tidak dapat menghapus RebootPending: Kesalahan saat menghapus kunci."
Samir
1
ambil kepemilikan kunci: winaero.com/comment.php?comment.news.210 dan sekarang hapus.
magicandre1981
Terima kasih! Saya akan mengunduh alat reg itu, saya yakin itu akan berguna kapan-kapan. Jadi mungkin baik untuk memilikinya di kotak alat.
Samir