如何从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模式下发出了这最后两个命令。这有关系吗?...我将尝试重新启动。


通过执行修复安装解决了问题。
萨米尔

我遇到了同样的问题,但是我没有cleanup.xml文件,所以我认为这不是原因。
BlueRaja-Danny Pflughoeft 2015年

@BlueRaja正如我记得,它确实与清理有关,但是您可能不需要此文件来知道您有此问题。看看第二个答案。注册表技巧可能对您有用。如果我没记错的话,我最终进行了维修安装。所以我没有尝试。
萨米尔

Answers:


12

我在Windows 7中也遇到了同样的问题。我终于sfc从修复控制台使用以下命令运行了(由于某种原因,它分配D:给了我的主磁盘,而不是C:

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

(但是,sfc现在告诉我

Windows资源保护发现损坏的文件,但无法修复其中的一些文件。

所以这不能解决我的启动问题


这并不能真正回答问题。如果您有其他问题,可以点击提问进行提问。您也可以添加赏金,以吸引更多对此问题的关注。
CharlieRB

这不能为问题提供答案。要批评或要求作者澄清,请在其帖子下方发表评论。
Ramhound 2015年

1
@CharlieRB和Ramhound:是吗?是的,它确实可以回答问题。问题是“当出现此错误时,如何强制SFC运行?” 我提供了用于迫使SFC在发生同一件事时运行的解决方案。它实际上并不能解决我的根本问题,但这与问题是相切的,这就是为什么我只在最后提到它(并提供了另一个线程的链接,以帮助像我这样的人)
BlueRaja-Danny Pflughoeft

@BlueRaja-您遇到的问题与作者的问题无关。换句话说,答案的第二部分与萨米格问题无关。链接到您自己的问题的方式与您如何删除pending.xml(不是)有关。
Ramhound 2015年

1
@Ramhound:是的,我已经说过了。但是,由于Internet上可能有其他人遇到同样的问题,他们会像我一样通过Googling找到此页面,因此我添加了额外的相关信息以将其指向正确的方向(这在该站点上是非常普遍的礼貌)。我不明白您怎么可能对此表示错误。无论如何,我现在已经将其括起来,因此没有人会混淆它作为答案的必要部分。
BlueRaja-Danny Pflughoeft 2015年

4

该命令应该可以做到。

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

但这仅适用于Windows 7或更高版本。我在Windows Vista中没有dism.exe工具。我只是想与那些发现此问题并且拥有Windows 7的人分享它。我当然无法自己对此进行测试,但是这个人说他能够将这个令人讨厌的错误消息排除在外。因此,可能值得尝试。


当我从修复提示符运行此命令时,我只会得到Error 0x80029c4a - The request is not supported:(
BlueRaja-Danny Pflughoeft 2015年

它是什么版本的Windows?
萨米尔

Windows 7专业版(通过MSDN合法获得)
BlueRaja-Danny Pflughoeft 2015年

我不太确定这是同样的问题。我正在使用Windows Vista。我记得,我最初的问题是Windows Audio服务。由于我现在不记得的原因而没有开始。所以我没有声音。我正在尝试修复它,但这给我带来了一个新问题。这个问题描述了这个新问题。因此,我不知道是什么导致了这个问题。在此站点上找到的所有解决方案均按“原样”提供。在没有适应您特定问题的情况下,不要盲目地遵循每个步骤。
萨米尔

@sammyg-此特定命令需要特定的Windows 7更新。可能需要指定它是哪个,因为两年后缺少该信息导致混乱。
Ramhound 2015年

0

在注册表下SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing查看是否看到名为的项RebootPending。Windows还在此处检查是否有挂起的重启。


在HKLM(本地计算机)中吗?...
Samir

是的,我有HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending,它仅包含默认字符串值,并且未设置任何值。我应该将其设置为0还是什么?或删除钥匙?
萨米尔

“无法删除RebootPending:删除密钥时出错。”
萨米尔2013年

1
取得密钥的所有权:winaero.com/comment.php?comment.news.210并立即将其删除。
magicandre1981

谢谢!我将下载该reg工具,我相信它会在某个时候派上用场。因此,将其放在工具箱中可能会很好。
萨米尔

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.