他社製品の買収から10年以上が経過し、すっかりMicrosoft自社製品の体を見せているセキュリティソフトの「Windows Defender」。Windows Vista時代はスパイウェア以外にも、ウイルスなどのマルウェア対策が可能になった「Microsoft Security Essentials」がリリースされた。現在のWindows 8.1は、マルウェア対策を統合したWindows Defenderを標準搭載している。今回はWindows Defenderの「スキャン」について解説しよう。

「Windows 8.1ミニTips 第17回」より、2014年4月9日にリリースされたWindows 8.1 Updateを適用した環境を対象としています。

自動実行するクイックスキャン

Windows Defenderは、マルウェアが侵入していないかを、任意のタイミングでシステムファイルを検査する機能を備えている。具体的には、感染の可能性があるシステムファイルや実行中のアプリケーションを検査対象とする"クイックスキャン"、すべてのファイルを対象とする"フルスキャン"、任意のフォルダーやファイルを対象とする"カスタムスキャン"の3つだ。

だが、Microsoft Security Essentialsとは異なり、Windows Defenderはスキャンを実行するスケジュール設定を用意していない。

Windows Defenderの「設定」タブ。スキャンに関する設定項目は存在しない

Microsoft Security Essentialsの「設定」タブ。「スケジュールされたスキャン」で実行タイミングや内容を選択可能だ

Windows Defenderのメイン画面を見ると、そこには「最後に実行したスキャン~」というメッセージとともに、クイックスキャンを実行した旨を確認できる。Windows 8.1のWindows Defenderは、(少し言い方は悪いが)ユーザーが意図しないところで、マルウェアが侵入していないか調査しているのだ。

画面の例では、執筆時の朝6時頃にクイックスキャンを実行したことを確認できる

タスクで処理を自動実行

では、Windows Defenderはいつ、どのようにスキャンを実行しているのだろうか。ヘルプなどでは「自動スキャンが定期的に実行されます」と述べるにとどまっているが、トリガーとなるのは「アクションセンター」の「自動メンテナンス」だ。説明にある「ソフトウェア更新」はWindows Update、「システム診断」はトラブルシューティングの1部、そして「セキュリティスキャン」がWindows Defenderのクイックスキャンにあたる。

「アクションセンター」の「自動メンテナンス」から参照する「メンテナンス設定の変更」の内容。ここで自動メンテナンスの概要を把握できる

さらに具体的なアクションとして注目したいのが、「タスクスケジューラ」の「タスクスケジューラライブラリ\Microsoft\Windows\Windows Defender」に並ぶ「Windows Defender Scheduled Scan」だ。具体的なスキャン処理はこのタスクが担っている。

今回、履歴機能を有効にしてタスク処理を確認したところ、Windows Defenderが示していたスキャン実行タイミングにタスクが起動し、約15分後にクイックスキャンを終了。これが自動クイックスキャンの正体だ。

「Windows Defender Scheduled Scan」の実行履歴。「MpCmdRun.exe」を実行していることを確認できる

コマンドラインからスキャンを実行

このように、Windows Defenderのクイックスキャンは自動的に毎日実行されていることを確認できたが、逆にフルスキャンは手動実行のみとなる。フルスキャンは1カ月に1回程度は実行すべきだが、さまざまなアプリケーションやユーザーファイルを格納するPCだと、かなりの時間を要してしまう(半日くらいかかることも)。

さらに、フルスキャンの実行中はI/O負荷も発生するため、バッチファイルやタスクによるフルスキャンの自動実行はおすすめしない。PCの動作が重いなど違和感を覚えるようになったら、合間を見てフルスキャンを手動実行するのがベストだろう。

Windows 8.1におけるWindows Defenderのフルスキャン実行は、GUIから選択する方法と、以前の連載で紹介した「MpCmdRun.exe」をコマンドラインから使用する方法の2つがある(レジストリを使えばコンテキストメニューなどから呼び出すことも可能だが、本連載では割愛する)。

GUIから操作する場合は、ラジオボタンの「フル」→「今すぐスキャン」ボタンと順にクリック/タップする

「MpCmdRun.exe」のヘルプメッセージ。スキャンに関するオプションが用意されている

「MpCmdRun.exe」のヘルプメッセージのとおり、コマンドラインからスキャンを実行するには「-Scan」オプションを使用すればよい。また、スキャンタイプも個別に選択可能で、「-ScanType 3」とすれば、特定のフォルダーやファイルのスキャンも可能だ。例えば「C:\Data」フォルダーをスキャンする場合「ScanType 3 -File C:\Data」となる。

クイックスキャンは「1」、フルスキャンは「2」が割り当てられているため、前者であれば「MpCmdRun -Scan -ScanType 1」を実行すればよい。結果は定義ファイルの更新と同じく、「%LOCALAPPDATA%\Temp\MpCmdRun.log」に記録される。

例えばコマンドラインからクイックスキャンを実行するには、「MpCmdRun -Scan -ScanType 1」と入力して「Enter」キーを押す

「Win」+「R」キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「%LOCALAPPDATA%\Temp\MpCmdRun.log」と入力して「OK」ボタンをクリック/タップする

こちらはWindows Defender(MpCmdRun.exe)の実行結果を記録するログファイル。先ほど実行したコマンドラインのクイックスキャンも記録されている

Windows Defenderを活用しても万全とはいえないが、日頃からマルウェアの侵入に意識することで、全般的なセキュリティレベルは向上するはずだ。

阿久津良和(Cactus)