При некоторых обстоятельствах 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 ответ1

3

Я понял, что я пытаюсь сделать. Я хотел изменить файлы так, как это делает Центр обновления Windows. После экспериментов я нашел это.

Сделайте файл 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 обрабатывать "Очередь примитивных операций" перед загрузкой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .