Windows 8以降に標準搭載されている「Windows Defender」は、ウイルス対策も可能なマルウェア対策ソフトです。今回と次回は、Windows 8以降のWindows Defenderの“二つの謎”に迫りたいと思います。今回は「スケジュールスキャンの謎」を解き明かします。
Windows 8以降に標準搭載されている「Windows Defender」は、マルウェア対策ソフトです。Windows 7以前のWindows Defenderはスパイウェア対策機能しか持ちませんでしたが、Windows 8以降のWindows Defenderは次の三つの対策エンジンを搭載しています。
Windows 8以降のPCにサードパーティ製のマルウェア対策ソフトウェアがプリンストールされている場合、あるいは自分で購入したマルウェア対策ソフトをインストールした場合、Windows Defenderは自動的に無効になります。マルウェア対策ソフトをアンインストールすれば、再びWindows Defenderが有効になります。
Windows Defenderについては、マルウェア検出率がどうだの、セキュリティ機能が不足しているといった指摘もありますが、PCやインターネットのセキュリティ向上に一役買っていることは確かです。PCに詳しくないユーザーが、セキュリティについて何も対策していないとしても、Windows Defenderがあるおかげで、ある程度のセキュリティレベルを確保できるからです。
Windows Defenderは、他の一般的なマルウェア対策ソフトとは異なり、タスクバーに常駐せず、GUIでは見つけにくい場所にあります(コントロールパネル → すべてのコントロールパネル項目 → Windows Defender)。マルウェアが検出されない限り、自ら表に出てくることはありません。他のマルウェア対策ソフトの邪魔をしない、ユーザーの仕事の邪魔をしない、とても控えめなソフトです。
Windows 8以降のPCを保護するのに、OS標準のWindows Defenderで十分なのか、一般的なマルウェア対策ソフトは不要なのかと問われれば、十分もいえることもあれば、そうでない場合もあります。
PCでオンラインゲームやSNS、ネットバンキングなどを使うことがなく、不審なメールを開かず、怪しいURLリンクをクリックしないなど、自らマルウェアに近付く行為をしない慎重なPCユーザーにとっては、Windows Defenderで十分かもしれません。
メモリの監視、電子メールの送受信の監視、迷惑メール対策、フィッシング対策、個人情報漏えいのブロック、ペアレンタルコントロール、パーソナルファイアウォール、不正侵入対策など、より高度で多重的なセキュリティ機能を望むなら、サードパーティ製のセキュリティ対策製品を購入すべきでしょう。ちなみに、筆者はWindows Defenderユーザーではありません。仕事用、家庭用のPC用には他社のセキュリティ対策製品を購入し、毎年更新しています。
マイクロソフトはWindows 7以前のPCを利用する個人および小規模企業(PCが10台以下)のユーザー向けに、「Microsoft Security Essentials」(以下、MSE)を無償提供しています。企業向けには「System Center Endpoint Protection」(旧称、Forefront Client Security)や「Windows Intune Endpoint Protection」を製品として提供しています。これらのセキュリティ対策製品は、全て対策エンジンと定義ファイルが共通しており、GUIやセキュリティ機能も基本的には同一です。
しかし、Windows DefenderのGUIを開いてみると、何か物足りなさを感じるはずです。ウイルス対策ソフトやスパイウェア対策ソフトにあるべき、「スケジュールスキャン」の設定が存在しないのです(画面1、画面2)。また、一般的なウイルス対策ソフトでは当然のようにできる、エクスプローラーのコンテキストメニュー(右クリックメニュー)からの「手動スキャン」の機能もありません。
Windows DefenderのGUIにはスケジュールスキャンの設定は存在しませんが、スケジュールスキャン機能自体が削除されているわけではありません。Windows 8以降のWindows Defenderは、既定で自動実行される「OSのメンテナンス作業の一部」としてスケジュールスキャン(既定はクイックスキャン)が実行されるようになっています(画面3)。
既定では、自動メンテナンスは「午前2時(AM2:00)」または「午前3時(AM3:00)」にアイドル状態の場合に開始されるようにスケジュールされており、この時間にタスクを開始できない場合は、PCが次にアイドル状態になったときに開始されます。
もう少し詳しく説明すると、自動メンテナンスの開始は「タスクスケジューラ」の「\Microsoft\Windows\TaskScheduler\Regular Maintenance」で行われ、このタスクが「タスクスケジューラライブラリ\Microsoft\Windows\Windows Defender\Windows Defender Scheduled Scan」をはじめとするWindows Defenderのタスクを開始します(画面4)。
アクションセンターからメンテナンスを手動で開始した場合は、「\Microsoft\Windows\TaskScheduler\Manual Maintenance」タスクがWindows Defenderのタスクを開始します。
Windows Defenderのスケジュールスキャンを実行する「Windows Defender Scheduled Scan」タスクは、PCがアイドル状態でなくなると停止するように設定されています。そのため、PCの環境によってはWindows DefenderのGUIを開いただけでアイドル状態ではなくなり、スキャンがキャンセルされてしまうかもしれません。Windows Defenderは、控えめなだけでなく、とても恥ずかしがり屋さんなんです。
なお、自動メンテナンスの時間にアイドル状態であっても、Windows Defenderのスキャンがその時刻ぴったりに開始することはありません。Windows Defenderのスキャンは、スケジュールの前後30分の範囲でランダムに実行されるようになっています。この点については後で説明します。
Windows 8以降のProまたはEnterpriseエディションの場合は、Windows DefenderはOSの自動メンテナンスとは別のタイミングで、クイックまたはフルスキャンを実行するように構成することができます。スケジュールの構成に使うのは、「ローカルグループポリシーエディター」(Gpedit.msc)です(画面5)。
例えば、「コンピューターの構成\管理用テンプレート\Windows コンポーネント\Windows Defender\スキャン」にある、スケジュールスキャンの開始時刻、曜日、スキャンの種類(クイックまたはフル)、スキャン前の定義の更新をカスタマイズできます。
これらのポリシーでクイックスキャンまたはフルスキャンをスケジュールしてもよいですし、以下のいずれかのポリシーと組み合わせて、例えば毎日1回クイックスキャンを実行し、毎週1回フルスキャンを実行するという構成も可能です。
スキャンの開始時刻は深夜0時からの分数で指定します。例えば、昼の12時に開始するには「720」と指定します。なお、前述したように、実際の開始時刻は、スケジュールされた時刻の前後30分の範囲でランダム化されます。これは、「コンピューターの構成\管理用テンプレート\Windows コンポーネント\Windows Defender」にある「スケジュールされたタスクの時間をランダム化する」ポリシーが関係しています。このポリシーの既定(未構成または有効の場合)が、開始時刻をランダム化しているのです。
ランダム化が既定で有効なのは、仮想デスクトップインフラストラクチャ(VDI)環境を想定したもののようです(画面6)。同じ仮想化サーバー上で稼働する複数のWindows 8/8.1仮想マシンが、同じ時刻にスケジュールスキャンを開始してしまうとサーバーの負荷が一気に跳ね上がるでしょう。そのため、既定でランダム化されるようになっているというわけです。次回説明する「定義ファイルの更新」についても、スケジュールされた開始時刻が同じようにランダム化されるようになっています。
ProまたはEnterpriseではない、ホームユーザー向けのWindows 8およびWindows 8.1(無印)は、残念ながらローカルコンピューターポリシーによるシステム構成に対応していません。
Windows Defenderは、コマンドライン版のユーティリティ「C:\Profram Files\Windows Defender\MpCmdRun.exe」を使用してスキャンを開始することができます。例えば、クイックスキャンを実行するには、以下のコマンドラインを実行します。
MpCmdRun.exe -Scan -ScanType 1
フルスキャンの場合は、以下のコマンドラインを実行します。
MpCmdRun.exe -Scan -ScanType 2
これらのコマンドラインを設定したタスクを「タスクスケジューラ」に登録することで、希望の間隔(毎日、毎週)の指定した時刻にスキャンを自動開始させることができます(画面7)。
「基本タスクの作成ウィザード」でスケジュールとコマンドラインを設定したら、詳細設定を開き、タスクをシステムアカウント(SYSTEM)が最上位特権で実行するように変更してください。「-Scan -ScanType 1」または「-Scan -ScanType 2」は、プログラム「C:\Profram Files\Windows Defender\MpCmdRun.exe」の引数として設定します。
コマンドラインをタスクで自動実行させた場合、自動メンテナンスによるスキャンとは異なり、PCがアイドル時間になってもスキャンを停止しないようにタスクを構成できるので、定期的なスキャンを確実に実行できます。
一般的なウイルス対策ソフトを導入すると、エクスプローラーのコンテキストメニュー(右クリックメニュー)に、手動スキャンのためのメニューが登録され、特定のファイルやフォルダーを選択してワンクリックでスキャンすることができます。例えば、Microsoft Security Essentialsの場合は、「Microsoft Security Essentialsでスキャンする」という項目がコンテキストメニューに追加されます。
Windows 8/8.1のWindows Defenderにはこの機能がありません。手動スキャンを開始するには、Windows DefenderのGUIを起動して、カスタムスキャンを実行する必要があり、操作が面倒です。
そこで、手動スキャンを簡単に実行したい場合も、コマンドライン版のユーティリティ「C:\Profram Files\Windows Defender\MpCmdRun.exe」を使用するとよいでしょう。次のコマンドラインを実行することで、手動スキャンを開始することができます。
MpCmdRun.exe -Scan -ScanType 3 -File <ファイルやフォルダーのパス>
エクスプローラーのコンテキストメニューから上記コマンドを実行できるようにするには、ローカルディスク上の任意の場所に次のテキストを記述したバッチファイルを作成し、「scanfile.cmd」などのファイル名で保存します。
@echo off echo ファイル %1 のスキャンを開始します。 "C:\Program Files\Windows Defender\MpCmdRun.exe" -Scan -ScanType 3 -File %1
作成したバッチファイルのショートカットをデスクトップなどに作成し、「%AppData%\Microsoft\Windows\SendTo」フォルダー(エクスプローラーで「shell:sendto」を開いた場所)に「Windows Defenderで検査」などのような名前で保存します(画面8)。ショートカットのアイコンは適宜、"C:\Program Files\Windows Defender\MpCmdRun.exe"などから取得して設定してください。
以上の設定で、エクスプローラーのコンテキストメニューの「送る」に「Windows Defenderで検査」が追加されます(画面9)。スキャン対象のファイルやフォルダーを選択して右クリックし、「送る」から「Windows Defenderで検査」を選択すると、選択したファイルやフォルダーを対象にフルスキャンを開始できます。
なお、スキャン中、コマンドプロンプトが一時的に開きます。マルウェアが検出された場合は、Windows 8/8.1のトースト通知やアクションセンターからのタスクバーへの通知が行われ、マルウェアの駆除が行われます。
さて、次回は「定義ファイルの更新に関する謎」に迫ります。
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2014)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手がける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.