我如何告诉 Windows 在下次重启时覆盖系统文件?

我如何告诉 Windows 在下次重启时覆盖系统文件?

在某些情况下,Windows 必须覆盖重要的文件,例如 csrss.exe 和 lsass.exe。例如当更新影响这些文件时。或者当文件损坏并使用 SFC 工具修复时。它如何在不结束进程并触发蓝屏的情况下完成此操作?

我尝试添加注册表值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations并赋予它此值

\??\C:\csrss.exe
\??\C:\Windows\System32\csrss.exe

但是当我重新启动时,注册表值被删除了,但没有文件被更改。

我的目标是能够用我自己修改的版本覆盖这些文件,而无需使用像 Linux Live CD 这样的外部工具。

是的,我知道这很愚蠢。我对由此造成的任何损害负全部责任。尽管如此,我仍然想知道怎么做。感谢您的帮助。

答案1

我搞清楚了自己想要做什么。我想像 Windows Update 那样修改文件。经过尝试,我发现了这一点。

创建一个包含该内容的 XML 文件。

<?xml version='1.0' encoding='utf-8'?>
<PendingTransaction Version="3.1">
    <POQ postAction="reboot">
        <MoveFile source="\??\C:\csrss.exe" destination="\??\C:\Windows\System32\csrss.exe"/>
    </POQ>
</PendingTransaction>

SetupExecute然后修改键中的值HKLM\SYSTEM\CurrentControlSet\Control\Session Manager以包含C:\Windows\System32\poqexec.exe /displayprogress \??\[PATH TO XML]

这使得 Windows 在启动之前处理“原始操作队列”。

相关内容