●ふだんは機嫌よくビュンビュンと動いていても、あるとき突然、思い通りにならなくなるのがパソコンだ。先日、Windows 11が(おそらくはWindows Updateを機に)、挙動がおかしくなった。現象としては、権利者権限が求められるツールやコマンドを受け付けてもらえなくなった。つまり、ふつうのアプリは動作する。だが、たとえばタスクマネージャーを起動しようとすると、
「ファイルシステムのエラーです -1073741792」
というエラーメッセージが表示される。システム関係のツールには軒並みこのエラーが出る。コマンドラインやパワーシェルは管理者権限なしなら起動するが、管理者権限ありだとやはり同様のエラーが出る。どうやら管理者権限が必要な機能はすべてエラーになるっぽい。これが事態を複雑にした。
●うーん、この状態でもひとまず仕事はできるから、このまま使い続けちゃおうかな~と一瞬思ったが、それで無事に済むはずがない。復元ポイントを使ってWindows Update前に戻そうと思っても、失敗してしまう。そこで、あれこれ検索して、システムファイルチェッカーを使うことに。システムファイルの整合性をチェックし、破損があった場合に修復してくれる。コマンドライン(cmd)から
sfc /scannow
を実行すればよい。しかし、そのコマンドラインを起動できないのだ。そこで、「設定 > システム > 回復 > PCの起動をカスタマイズする」を使って再起動する。回復環境からコマンドラインを起動すればよいと考えた。
ブルーの画面の回復環境が起動したら、そこから「トラブルシューティング > 詳細オプション > コマンドプロンプト」を選ぶと、コマンドラインが使えた。ここで sfc /scannow を使えばいいのだが、回復環境から起動すると起動ドライブ名はX:になるので、Windowsの存在するドライブ名を明示的に指定する必要がある。コマンドラインから dirコマンド等でWindowsのドライブ名を確認したところ、ウチの環境では D:だったので、こうする。
sfc /scannow /offbootdir=D:¥ /offwindir=D:¥windows
すると、
Windows リソース保護により、破損したファイルが見つかりましたが、それらの一部は修復できませんでした。
と言われてしまった。む、ダメであったか。実際、Windowsを起動すると直っていない。
●で、ここから思いっきり迷走して、よくわからないままに修復系のdismコマンドを試したり、chkdskを試したりするが直らない。回復ドライブからの復旧も失敗してしまう。Windows 11の再インストールまで考えたのだが、なにしろ管理者権限を必要とする機能が効かないので、OS上からはできないわけで、なかなか難儀なこと。もしかしてとUEFIのセキュリティ周りの設定を疑ったり、同じエラーメッセージが出て困っている人を海外サイトまで広げて検索したりしたのだが、解決への道筋が見えず、もう本当にクリーンインストールしかないのかもと困り果てたところで、ダメ元でもう一度、sfcコマンドを試してみた。とくに意味もなく、今回はWindowsをセーフモードで起動してみようと思い、回復環境から「トラブルシューティング > 詳細オプション > スタートアップ設定 > 再起動」から「セーフモードとコマンドプロンプトを有効にする」を選んで起動して、そこから
sfc /scannow
を実行した。このやり方ならドライブ名の指定は不要になるので、最初からこの方法でもよかったかも。しばらく待つと、
Windows リソース保護により、破損したファイルが見つかりましたが、それらは正常に修復されました。
と出た! お、さっきは修復できなかったのに、今回はできたのか。
●恐る恐る再起動すると、なんと、直っていた! タスクマネージャーを起動すると、最初だけUACが出て、ふつうに起動した。コマンドラインもデバイスマネージャーもディスクの管理も立ち上がる。どうやら本当に直ったようだ。sfcをセーフモードから実行したのがよかったのか、それとも2回やったことがよかったのか、あるいはdismをしてからでsfcをやったのがよかったのが、なにが効いたのか判然としないのだが、同じエラーで困っている人がいるかもしれないので、ここに顛末を記録しておく。以下、sfcおよびdismコマンドについて、参考にしたURLを貼り付けておこう。
https://support.hp.com/jp-ja/document/c03438733
https://jp.minitool.com/backup-tips/repair-windows-11-10-using-command-prompt.html
https://faq.tsukumo.co.jp/index.php?solution_id=1393