2013年10月17日木曜日

SFC.exe でシステムファイルを修復する - システム・ファイル・チェック

1. SFC コマンドでシステムを修復

最近、PC を起動すると、以下のエラーメッセージが表示されるようになった。

C:\Windows\system32\newdev.dll を開始中にエラーが発生しました。

アクセスが拒否されました。

何が原因で、どのようなタイミングで表示されるのか分からない。

これを修復するには、SFC.exe を実行する必要があるようだ。

Error loading c:\windows\system32\newdev.dll - Am I infected? What do I do? によると、

You would be better off getting the file of a Windows CD or out of you i386 folder
Run SFC.exe

SFC.exe の役割については、詳しくは以下を参照。

SFCコマンドでシステム・ファイルの不整合や破損を修復する - @IT によると、

Windows 2000以降のWindows OSには、Windowsファイル保護(WFP:Windows File Protection)」と呼ばれる、保護対象のシステム・ファイルに不整合や破損が起きた場合、自動的に修復する機能が実装されている。

WFPでは、2種類のメカニズムによって、システム・ファイルの保護が実現されている。

1つ目は、バックグランドで動作しているもので、保護されたディレクトリ内のファイルに対して、ファイルの変更が通知されると実行される。

2つ目のメカニズムは、Windows OS(Windows 2000以降)の標準コマンドであるシステム・ファイル・チェッカー・ツール(SFC.EXE)だ。SFC.EXEを実行することで、システム・ファイルのバージョンやカタログ・ファイルとキャッシュ・フォルダの整合性などがチェックされる。

システム・ファイルのバージョンが正しくない(存在しない)場合は、自動的にキャッシュ・フォルダから正しいバージョンのファイルがコピーされる。またカタログ・ファイルとキャッシュ・フォルダに不整合があった場合は、Windows OSのインストールCDからカタログ・ファイルに該当するファイルを取得するように、CD-ROMを要求する。

通常は、「SFC.EXE /SCANNOW」または「SFC.EXE /SCANONCE」を実行すればよい。

 

2. SFC.exe を実行

試しに、スタートメニューより cmd.exe 検索して右クリック > 管理者として実行…

C:\Windows\system32>sfc /scannow

システム スキャンを開始しています。これにはしばらく時間がかかります。

システム スキャンの検証フェーズを開始しています。
検証 100% が完了しました。

Windows リソース保護は、整合性違反を検出しませんでした。

どうやら特にシステムに問題はなかったようだ。

しかし、再起動したら、直後に以下のウィンドウが表示がされた。

SnapCrab_No-0519

その後、なぜか最初のエラーメッセージは表示されなくなった。一体何だったんだろう???