17 лет назад 31 октября 2006 в 13:35 785
В Windows 9x существовал файл wininit.ini, предназначенный для замены системных файлов при загрузке Windows, если в обычном режиме эти файлы использовались системой, но она не давала их обновить. В Windows XP тоже существует подобный механизм. Но я такого файла и программы wininit.exe, которая его обрабатывала, не нахожу. Где можно задать такие команды в Windows XP?

ручную файлы, используемые системой, заменить достаточно просто: надо загрузить другую ОС (DOS, вторую копию Windows, консоль восстановления или ERD Commander, например) и выполнить все необходимые операции из-под нее. Существуют и специальные утилиты для замены заблокированных файлов — например, консольная mv.exe support.microsoft.com/default.aspx?kbid=184408. В Windows XP же заложен специальный механизм замены файлов с помощью предназначенного для этого раздела реестра (то есть нужные инструкции прописываются теперь не wininit.ini, а в реестре).
Например, если необходимо заменить файл file.sys, расположенный в папке SystemRoot%System32, на более свежую его версию из директории C:
Temp, внесите в раздел реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
ControlSession Manager параметр типа REG_MULTI_SZ с именем PendingFileRenameOperations и значением:
??c: empfile.sys
!??c:winntsystem32file.sys.

Обратите внимание, что здесь должны быть две отдельные строки — во второй указан файл, который надо заменить, а в первой — его новая версия. После перезагрузки данные команды будут выполнены и новая версия файла скопирована в папку system32. Впрочем, проще использовать утилиту inuse.exesupport.microsoft.com/default.aspx?scid=
kb;EN-US;228930
, которая сама корректно внесет изменения в реестр.

Никто не прокомментировал материал. Есть мысли?