前回は「Windows Defender」の「スケジュールスキャンの謎」を解明しました。今回はもう一つの謎、「定義ファイルの更新」に関する疑問に迫ります。
Windows 8およびWindows 8.1に標準搭載されているマルウェア対策用の「Windows Defender」は、前回説明したように「Microsoft Security Essentials」や「System Center Endpoint Protection」(旧称、Forefront Client Security)、「Windows Intune Endpoint Protection」と共通の対策エンジンを持ち、定義ファイルも共通しています。
Windows Defenderの定義ファイルは、既定ではWindows Updateを通じて更新されます(画面1)。Windows Updateの「自動更新」を有効にしている場合は、自動メンテナンスの処理の一部としてWindows Updateによる更新のチェックとインストールが行われ、その中にWindows Defenderの定義ファイルが含まれます。
自動メンテナンスの開始時刻にPCが起動していなくても、次回起動後のアイドル時間に自動メンテナンスが行われるため、毎日PCを利用しているなら少なくとも1日1回は定義ファイルが更新されるはずです。
最近、度々発生するWindows Updateのトラブルを避けるため、自動更新をオフにしている人もいるでしょう。そうすると、当然のことながら、Windows Updateでの定義ファイルの自動更新はありません。
その場合、Windows DefenderのGUIから手動で更新するしかないのかというと、そうではありません。前回の「スケジュールスキャン」もそうでしたが、Windows Defenderには定義ファイルを更新するためのオプションがいくつか用意されているのです。
Windows 8以降のProまたはEnterpriseエディションの場合は、「ローカルグループポリシーエディター」(Gpedit.msc)を使用して、定義の更新方法を細かく設定できます。具体的には、次の場所にあるポリシー(ローカルコンピューターポリシー)を設定します。
コンピューターの構成\管理用テンプレート\Windows コンポーネント\Windows Defender\スキャン
コンピューターの構成\管理用テンプレート\Windows コンポーネント\Windows Defender\署名の更新
これらのポリシーにより、Windows Updateや自動メンテナンスとは別のタイミングで定義ファイルのチェックを開始させ、自動更新させることができます(画面2)。1〜24時間の間隔で定期的にチェックさせることも可能です。
ProまたはEnterpriseエディションではない、ホームユーザー向けのWindows 8およびWindows 8.1(無印)は、残念ながらローカルコンピューターポリシーによるシステム構成に対応していません。
そこで、前回のスケジュールスキャンでも説明したコマンドライン版のユーティリティ「C:\Profram Files\Windows Defender\MpCmdRun.exe」を使用します。例えば、手動で定義ファイルの更新を開始するには、以下のコマンドラインを実行します。
MpCmdRun -SignatureUpdate
このコマンドラインを設定したタスクを「タスクスケジューラ」に登録することで、希望の間隔(毎日、毎週)の指定した時刻に、定義ファイルの更新を自動実行させることができます(画面3)。「基本タスクの作成ウィザード」でスケジュールとコマンドラインを設定したら、詳細設定を開き、タスクをシステムアカウント(SYSTEM)が最上位特権で実行するように変更してください。
筆者は1時間ごとに定義ファイルの更新をチェックするように構成し、しばらく様子を見てみました。すると、何時間も更新されない状態が続くことに気が付きました。比較のため、Windows 7のMicrosoft Security Essentialsで更新してみると、Windows Defenderが更新されない間も、Microsoft Security Essentialsの方はより短い間隔で更新されていました。
マイクロソフトのマルウェア対策製品の最新の定義ファイルは、「Malware Protection Center」(マルウェア対策センター)からダウンロードできます。ここからは、Windows Defenderも最新の定義ファイルを取得できます。
以下のサイトの変更履歴を見ると、筆者が確認した日については新しい定義ファイルがほぼ2時間おきにリリースされていました。Microsoft Security Essentialsの場合、手動で更新すると常に最新の定義ファイルを受け取れるようです。
一方、Windows Defenderの場合はどうかというと、丸1日かけて追跡してみたところ、数バージョンをスキップして、おおよそ8時間に1回ほど、1日に3回程度しか更新が提供されませんでした(画面4)。
どうやら、Microsoft UpdateサイトにはWindows Defender向けに全ての定義ファイルの更新がアップされるわけではないようです。「Windows Server Update Services」(WSUS)の同期結果や、WSUSの同期元である「Microsoft Update Catalog」で調べてみると、System Center Endpoint Protectionも同じようなリリース間隔になっていました。
Windows Defenderで定義ファイルを手動で更新した場合、既定ではMicrosoft Updateを優先的に参照し、失敗した場合にMalware Protection Centerから定義ファイルの取得を試みます。Microsoft Updateがダウンすることはほとんどないので、通常はMicrosoft Updateだけをチェックすることになります。
次のコマンドラインを実行すると、Microsoft Updateではなく、「Microsoft Malware Protection Center」(MMPC)から更新を取得させることができます。こちらの方法であれば、常に最新の定義ファイルに更新できました(画面5)。
MpCmdRun -SignatureUpdate -MMPC
定義ファイルの更新をタスクスケジューラで自動実行する場合は、前述のコマンドラインではなく、こちらのコマンドラインを登録しておくと、より短い間隔で定義ファイルを更新できるようになります。
Windows Defenderが定義ファイルの更新に使用する参照先は、既定の順序を変更することもできます。それには、以下のポリシーを構成します。
コンピューターの構成\管理用テンプレート\Windows コンポーネント\Windows Defender\署名の更新
このポリシーを有効にして、更新元の順序を「MMPC|MicrosoftUpdateServer」のように設定します(画面6)。これで、Microsoft UpdateよりもMalware Protection Centerを優先するようになります。ちなみに、既定の順序は「InternalDefinitionUpdateServer(WSUSのこと)|MicrosoftUpdateServer|MMPC」です。
なお、このポリシーは、ポリシーを「有効」に設定しても「未構成」のままになるという不具合があるようです(画面7)。ポリシーをもう一度開いて、「有効」に切り替えて更新元の順序に「MMPC|MicrosoftUpdateServer」と表示されれば設定は有効になっています。あるいは、ポリシーが適用されていることをレジストリの「HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Signature Updates\FallbackOrder」で確認してください。
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2014)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手がける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.