このファイルの別のバージョンに置き換えるには、Windows 7 マシン上の特定の dll (正確には comctl32.dll) の名前を変更する必要があります。
私は試した:
- [以下: 右クリック、プロパティ、セキュリティ、権限、詳細設定、所有者] で所有者を現在のユーザーに変更し、[以下: 右クリック、セキュリティ] で現在のユーザーに可能なすべての権限を付与しました。[右クリック、名前の変更] を試しましたが、名前を変更できず、アクセスが拒否されました。
管理者コマンド(昇格された権限)を開始し、強制的に実行しました。
takeown /f comctl32.dll icacls "comctl32.dll" /grant (current user):F rename comctl32.dll comctl32.old
許可が拒否されました。
- 私は腹を立てたので、システムユーザーとしてシェルを起動し([1]で概説されている手順に従う)、
rename comctl32.dll comctl32.old
このシェルでファイルの名前を変更しようとしました。結果は再びアクセスが拒否されました。
システム シェルは基本的に神モードを提供すると思っていたので、これはかなり残念です。このファイルの名前を変更する方法や、アクセスが拒否される原因について、さらにアドバイスをいただける方はいらっしゃいますか? まったく困惑しています。
//編集:
これまでに、Unlocker ツールも試しました。ファイルの名前を変更することはできませんでしたが、再起動後に変更を試みると言われました。システムを再起動しましたが、古い友人はまだ名前を変更していません。
//編集2:
反対票とコメントに基づいて、同じ質問をしている他のユーザーへの警告を追加したいと思います。何を、なぜやっているのかわかっている場合にのみ、これを行ってください。そうでないと、システムがクラッシュする可能性があります。
実際、私は自分が何をしているのかわかっています。すでに破損しているファイルを置き換える必要があります。私が知らないのは、それをどのように行うかです。したがって、ここで危険性について言及したり、質問が危険であるという理由だけで反対票を投じたりする必要はありません。かもしれないシステムの整合性にとって危険です。実際、システムを使用するだけで、最終的にはシステムの整合性が危険にさらされます。同じプロパティに対して正当な質問を罰するのはなぜでしょうか?
答え1
Windows 自体が機能するためにそれを使用しているため、(権限に関係なく) アクセスすることはできません。
別の OS (Linux LiveCD や Windows インストール ディスクなど) から起動し、そこから名前を変更します。
警告: これは本当に悪い考えであり、Windows が起動しなくなる可能性があります。まず完全なバックアップを作成してください。
答え2
ファイルがカーネルによって使用されている場合は、まずメモリからアンロードせずに名前を変更することはできません。たとえば、Windows 回復コンソールを使用して名前を変更します。
プロセスによって使用されていない場合は、名前を変更できる可能性がありますが、Windows ファイル保護によって元の名前でコピーが作成されるか、名前が再度変更される可能性があります。
Windows ファイル保護を部分的に無効にする最も簡単な方法は、次のファイルを削除する必要があります。
C:/windows/system32/restore/filelist.xml
OS のテスト インストールでない限り、まず名前を変更するファイルをバックアップすることをお勧めしますが、Windows CD のバイナリ ファイルから展開することもできます。
expand -r filename.dl_ C:/windows/system32
これにより、system32 に filename.dll が作成されます。当然、filename を dll のファイル名に置き換える必要があります。
あるいは、debug.exeを使用してWindowsのファイル保護を無効にすることもできますが、これははるかにリスクが高く、約30分かかります。