Переименовать dll в папке Windows

Переименовать dll в папке Windows

Мне нужно переименовать определенную dll на моем компьютере с Windows 7 (точнее, comctl32.dll), чтобы заменить ее другой версией этого файла.

Я пытался:

  1. [в разделе: Щелчок правой кнопкой мыши, свойства, безопасность, разрешения, дополнительно, владелец] изменил владельца на текущего пользователя и [в разделе: Щелчок правой кнопкой мыши, безопасность] дал все возможные разрешения текущему пользователю. Попробовал [Щелчок правой кнопкой мыши, переименовать] — не могу переименовать, доступ запрещен.
  2. Запустил cmd администратора (с повышенными правами) и применил силу:

    takeown /f comctl32.dll
    icacls "comctl32.dll" /grant (current user):F
    rename comctl32.dll comctl32.old 
    

    Получил отказ в разрешении.

  3. Это меня разозлило, поэтому я запустил оболочку как пользователь Systems (выполнив шаги, описанные в [1]) и попытался переименовать файл, используя rename comctl32.dll comctl32.oldэту оболочку. Результатом снова стало сообщение об отказе в доступе.

Я думал, что системная оболочка дает мне по сути режим бога, так что это довольно расстраивает! У кого-нибудь есть еще предложения, как переименовать этот файл или что лишает меня доступа? Я в полной растерянности!

[1]http://blogs.technet.com/b/askds/archive/2008/10/22/getting-a-cmd-prompt-as-system-in-windows-vista-and-windows-server-2008.aspx

//EDIT:
К настоящему моменту я также попробовал инструмент Unlocker. Он не смог переименовать файл, но обещал попробовать сделать это после перезагрузки. Я перезагрузил систему, но мой старый друг все еще не изменил имена.

//ПРАВКА 2:
На основании отрицательных голосов и комментариев я хотел бы добавить строку предупреждения для моих коллег-пользователей с таким же вопросом. Делайте это только если вы знаете, что и почему вы это делаете. В противном случае вы можете сломать свою систему.
Я на самом деле знаю, что я делаю: мне нужно заменить файл, который уже поврежден. Чего я не знаю, так это КАК это сделать. Так что нет необходимости упоминать здесь об опасностях или ставить отрицательный голос за вопрос только потому, что онмощьбыть опасным для целостности системы. Фактически, простое использование системы в конечном итоге представляет опасность для ее целостности - зачем наказывать за законный вопрос по тому же свойству?

решение1

Вы не можете получить к нему доступ (независимо от ваших разрешений), поскольку сама Windows использует его для своей работы.

Загрузитесь с другой ОС (например, с Linux LiveCD или установочного диска Windows) и переименуйте его оттуда.

Предупреждение: Это действительно плохая идея, и, возможно, она не даст вашему Windows загрузиться. Убедитесь, что вы сначала сделали полную резервную копию.

решение2

Если файл используется ядром, то вы не сможете переименовать его, не выгрузив его предварительно из памяти. Например, с помощью консоли восстановления Windows для его переименования.

Если он не используется процессом, вы можете переименовать его, однако защита файлов Windows может либо создать копию с исходным именем, либо переименовать его обратно.

Самый быстрый способ частично отключить защиту файлов Windows — удалить следующий файл:

C:/windows/system32/restore/filelist.xml

Я советую вам - если только вы не используете тестовую установку ОС, сначала сделать резервную копию файла, который вы хотите переименовать, но вы также можете просто извлечь его из двоичного файла на компакт-диске Windows:

expand -r filename.dl_ C:/windows/system32

Это создаст filename.dll в system32, очевидно, вам придется заменить filename на имя файла dll.

В качестве альтернативы вы можете использовать debug.exe для отключения защиты файлов Windows, но это гораздо более рискованно и займет около получаса.

Связанный контент