System32フォルダ内のDLLファイルを置き換える方法
DLL(ダイナミックリンクライブラリ)ファイルが破損すると、オペレーティングシステムやアプリケーションの動作が不安定になることがあります。System32ディレクトリ内でこうしたファイルを置き換えるには、事前にバックアップを作成し、アクセス権限エラーを防ぐためにファイルマネージャーを管理者権限で起動することが重要です。
方法1: 手動でのアクセス権限変更
この方法は、特定のDLLファイルに対してプロパティからアクセス許可を設定する手順です。1つまたは少数のファイルを置き換える場合に適しており、どのユーザーアカウントにフルコントロールを付与するかを正確に制御できます。
- 置き換え予定のDLLファイルのバックアップコピーを作成します。System32フォルダから対象ファイルをコピーし、デスクトップなど別の場所に一時的に貼り付けます。
- Windows 10の場合、「保護者による制限」機能が無効になっていることを確認します。
- エクスプローラーを管理者権限で起動します。タスクバーを右クリックして「タスクマネージャー」を開きます。
- タスクマネージャーで「新しいタスクを実行する」をクリックします。
- テキスト入力欄に
explorer.exeと入力し、「このタスクを管理者特権で作成する」にチェックを入れて「OK」をクリックします。 - System32ディレクトリに移動し、対象のDLLファイルを右クリックして「プロパティ」を選択します。
- 「セキュリティ」タブに切り替え、「詳細設定」ボタンをクリックします。
- 開いた詳細セキュリティ設定ウィンドウで、「所有者」の横にある「変更」をクリックします。
- 「選択するオブジェクト名を入力してください」フィールドに自分のユーザーアカウント名を入力し、「名前の確認」をクリックします。名前に下線が付いたらシステムが認識したことを意味します。「OK」をクリックします。
- 詳細セキュリティ設定ウィンドウで「OK」をクリックして変更を確定します。
- プロパティの「セキュリティ」タブに戻り、「グループ名またはユーザー名」一覧の下にある「編集」をクリックします。
- 一覧から追加したアカウントを選択し、「アクセス許可」欄の「フルコントロール」の「許可」にチェックを入れます。「適用」と「OK」をクリックして設定を保存します。
- プロパティウィンドウを「OK」で閉じます。これでアクセス権限が付与されました。
方法2: REGファイルを使用したコンテキストメニューへの項目追加
この方法は所有権の取得とフルアクセス権付与を自動化します。適用後、ファイルやフォルダーの右クリックメニューに「オブジェクトの所有権を取得しフルアクセスを設定する」コマンドが追加されます。大量のDLLを置き換える際に便利ですが、システムレジストリを変更するため、実行前にシステムの復元ポイントを作成することを強く推奨します。
- 標準アプリ「メモ帳」を開きます。
- 空白の文書に次のコードを貼り付けます:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\runas] @="オブジェクトの所有権を取得しフルアクセスを設定する" "NoWorkingDirectory"="" [HKEY_CLASSES_ROOT\*\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant 管理者:F" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant 管理者:F" [HKEY_CLASSES_ROOT\Directory\shell\runas] @="オブジェクトの所有権を取得しフルアクセスを設定する" "NoWorkingDirectory"="" [HKEY_CLASSES_ROOT\Directory\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant 管理者:F /t" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant 管理者:F /t"
- 「ファイル」→「名前を付けて保存」をクリックします。
- 保存場所を選択し、「ファイルの種類」を「すべてのファイル」に設定し、ファイル名の末尾に拡張子
.regを付けて(例:access_rights.reg)保存します。 - メモ帳を閉じ、保存したREGファイルをダブルクリックしてレジストリへの変更を許可します。
- コンピューターを再起動します。新しい項目がファイルとフォルダーのコンテキストメニューに表示されます。
- 置き換えたいDLLファイルを右クリックし、「オブジェクトの所有権を取得しフルアクセスを設定する」を選択します。
最終段階: ファイルの置き換え
- 必要なアクセス権限を付与した後、以下の手順を実行します:
- 元のDLLファイルの名前を変更します。ファイルを右クリックして「名前の変更」を選び、末尾に拡張子
.oldを追加します(例:file.dll.old)。これにより競合を防ぎ、復元の可能性を残します。 - 新しいDLLファイルをSystem32フォルダに移動します。ドラッグ&ドロップ、または「コピー」/「貼り付け」コマンドを使用します。確認を求められたら「続行」をクリックします。
- コンピューターを再起動して、システムに新しいファイルを登録させます。
- 再起動後に問題がなければ、名前変更した古いファイル(拡張子
.old)をSystem32ディレクトリから削除できます。
発生しうる問題
DLLファイルの名前を変更できず、別のプロセスが使用中であると表示される場合は、そのファイルを使用しているアプリケーションを特定します。タスクマネージャーを起動し、一覧から該当プロセスを見つけて選択し、「タスクの終了」をクリックします。プロセスを強制終了した後、名前変更または置き換えを再試行します。
別の方法として、セーフモードでの置き換え実行があります。コンピューターを再起動し、起動段階でセーフモードに入ります(最小限のドライバーとサービスのみが読み込まれます)。その後、管理者権限でのエクスプローラー起動から始めて、アクセス権限の変更とファイル置き換えの手順を繰り返します。