
かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ メモ. Windows Serverは自動更新したくない、でもDefenderは自動更新したい|Windowsトラブル解決
2025年04月22日配信
2025年04月23日更新
執筆者:山内 和朗
Windows Serverはダウンタイムなしで長時間稼働できるように、Windows Updateの自動更新は使用しないのが一般的だと思います。そのため、Windows Serverの既定は「ダウンロードのみ」に設定されています。Windows Serverの既定では、Microsoft Defenderウイルス対策の更新プログラムもまた、Windows Updateでダウンロード、インストールされます。Windows Updateの自動更新を有効にすることなく、Microsoft Defenderウイルス対策の更新を自動化する方法を紹介します。なお、この記事はMicrosoft Defender(旧称、Windows Defender)ウイルス対策を標準搭載するWindows Server 2016以降のWindows Serverを前提としています。
Windows ServerのWindows Updateの既定の設定は、「ダウンロードのみ」です。インストール直後の設定は、Sconfigユーティリティの「5) 更新の設定: ダウンロードのみ」で確認することができます(画面1)。Sconfigユーティリティを使用して、「自動」または「手動」(つまり、自動更新は無効)に変更することができます。グループポリシーやローカルコンピューターポリシーの「管理用テンプレート¥Windows Update¥(エンドユーザーエクスペリエンスの管理¥)自動更新を構成する」を使用して有効化し、詳細な構成を行ったり、無効にすることもできます。
画面1 Windows ServerのWindows Updateの既定は、「ダウンロードのみ」(「自動更新を構成する」ポリシー: 有効《自動ダウンロードしインストールを通知》に相当)
Windows 10/11とは異なり、長期稼働が前提の運用向けのサーバーシステムでは、Windows Updateの自動更新を有効にすることはないでしょう。自動更新によって、システムのパフォーマンスに影響することがありますし、更新を完了するための再起動をすぐに開始できるわけではありません。多くの企業や組織では、「ダウンロードのみ」または「手動」で運用しているはずであり、手動または自動化ツール(Configuration ManagerやAzure Update Manager、サードベンダーのツール)を使用して、計画的に更新プログラムのダウンロードとインストール、再起動を行っているはずです。
Windows Serverの既定では、Microsoft Defenderウイルス対策の更新プログラムもまた、Windows Updateでダウンロード、インストールされます。自動更新の設定が「ダウンロードのみ」の場合、ログオンしたときに「更新プログラムを利用できます」という通知をよく目にするでしょう。通知をクリックしてWindows Updateを開くと、必ずといってよいほど「Microsoft Defender Antivirusのセキュリティインテリジェンス更新プログラム」がインストール待ちになっています(画面2)。「セキュリティインテリジェンス更新プログラム」とは、Windows組み込みのウイルス対策ソフトウェアである「Microsoft Defenderウイルス対策(Microsoft Defender Antivirus)」の定義(シグネチャ)とエンジンの更新プログラムです。毎月1回の品質更新プログラムとは異なり、セキュリティインテリジェンス更新プログラムは頻繁に、場合によっては1日に複数回、提供されます。
Microsoft Defenderウイルス対策セキュリティ インテリジェンスと製品更新プログラム|Microsoft Defender(Microsoft Learn)
画面2 Windows Updateの設定が「ダウンロードのみ」のため、セキュリティインテリジェンスの更新プログラムが自動ダウンロードされ、インストール待ちなっている
自動更新を「手動」(「自動更新を構成する」ポリシー: 無効に相当)で運用している場合は、Windows Updateの「更新プログラムのチェック」をクリックしなければ、Windows Updateでセキュリティインテリジェンスの更新プログラムが検出されることはありません。Windowsで自動更新を有効にしていない限り、更新されない古い定義ファイルが使用されることが多くなり、新しい脅威が検出されない可能性があります。また、特定の定義ファイルやエンジンの問題で不具合(誤検出など)が発生する場合もあるため、問題が解決された更新バージョンをいち早く導入することも重要です。
Microsoft Defenderウイルス対策のセキュリティインテリジェンスの更新プログラムは、Windows Update以外にも、「Windowsセキュリティ|ウイルスと脅威の防止|ウイルスと脅威の防止の更新」(Windows Server 2016は「Windows Defender用GUI」)から手動で更新することができます。
Microsoft Defenderウイルス対策は、コマンドラインツール「MpCmdRun.exe」やPowerShellの「Update-MpSigunature」コマンドレットによる操作も可能です。利用可能なセキュリティインテリジェンスの更新プログラムを確認して、ダウンロード、インストールするには、以下のいずれかのコマンドラインを実行します(画面3)。なお、Update-MpSignatureは背後でMpCmdRun.exe -SignatureUpdateを実行します。
C:¥> "C:¥Program Files¥Windows Defender¥MpCmdRun.exe" -SignatureUpdate |
PS C:¥> Update-MpSignature |
画面3 コマンドラインからMicrosoft Defenderウイルス対策のセキュリティインテリジェンスの更新を実行(この例では更新なし)
実は、Microsoft Defenderウイルス対策には、既定では無効になっている、組み込みのスケジュール更新機能が存在します。この機能については、後述します。
Microsoft Defenderウイルス対策のセキュリティインテリジェンスを自動更新する確実な方法は、コマンドラインによる更新を「タスクスケジューラ」(taskschd.msc)のタスクとして登録して、スケジュール実行することです。次のようなタスクを作成し、定期的に自動実行するように構成するだけです(画面4)。
セキュリティオプション: ユーザーがログオンしているかどうかにかかわらず実行する
トリガー: 毎日、1時間(例)ごと
操作: プログラムの開始 "C:¥Program Files¥Windows Defender¥mpcmdrun.exe" -SignatureUpdate
タスクで実行するプログラムとしては、PowerShellのUpdate-MpSignature(プログラム powershell.exe、引数 Update-MpSignature)を実行するように指定することも可能ですが、Update-MpSignatueは最終的にMpCmdRun.exe -SignatureUpdateを実行することになるので、MpCmdRun.exeを指定するのがより直接的です。
画面4 Microsoft Defenderウイルス対策の定義の自動更新のためのタスク
このタスクはユーザーのログオン状態に関係なく、システム(NT AUTHORITY¥SYSTEM)によって自動実行され、「MpCmdRun.exe」の実行ログは「C:¥Windows¥SystemTemp」(Windows Server 2019以前は「C:¥Windows¥Temp)の下にある「MpCmdRun.log」に書き込まれます(画面5)。なお、ユーザーがコマンドプロンプトから手動で実行した場合、およびセキュリティオプション「ユーザーがログオンしているときにのみ実行する」タスクで実行された場合、そのユーザーの%Temp%($env:Temp)にある「MpCmdRun.log」にログが書き込まれます。
画面5 登録したタスクにより、1時間ごとにMicrosoft Defenderウイルス対策の定義の更新が確認される
Microsoft Defenderウイルス対策には組み込みのスケジュール更新機能が存在し、既定で無効になっています。例えば、PowerShellで次の3つのコマンドラインを実行すると、1時間ごとのスケジュール更新を実行させることができます。
PS C:¥> Set-MpPreference -SignatureScheduleDay 0 PS C:¥> Set-MpPreference -SignatureScheduleTime 00:00:00 PS C:¥> Set-MpPreference -SignatureUpdateInterval 1 |
「SignatureScheduleDay 0」は「毎日」を意味します。既定は「8(無効)」で、「1~7」は「日曜日~土曜日」に対応します。「SignatureScheduleTime」はスケジュール開始時間をUTC(世界協定時間)で指定しますが、この時間ピッタリに開始することはないようで、設定した時刻にあまり意味があるように思えません。「SignatureUpdateInterval」の既定は「0」で、この値には実行間隔(時間)を「1~24」で指定します(画面6)。
参考:
保護更新プログラムをダウンロードして適用するスケジュールを管理する|Microsoft Defender(Microsoft Learn)
この組み込みのスケジュール更新機能がちゃんと動作しているのか、確認するには「MpCmdRun.exe」と同じ「MpCmdRun.log」を調べます。開始時間は「SignatureScheduleTime」の値と一致しないかもしれませんが、「SignatureUpdateInterval」で指定した間隔で更新の確認が行われていることを確認することができました。
画面6 Microsoft Defenderウイルス対策組み込みのスケジュール更新機能で一時間ごとに更新を確認する
なお、手動/自動に関係なく、Microsoft Defender ウイルス対策のセキュリティインテリジェンスが更新されると、イベントログの「アプリケーションとサービスログ」に次のようなログが記録されます。
ログの名前: | Microsoft-Windows-Windows Defender/Operational |
ソース: | Windows Defender |
イベント ID: | 2000 |
レベル: | 情報 |
ログの内容(例): | Microsoft Defender Antivirus security intelligence version updated. Current security intelligence Version: 1.427.266.0 Previous security intelligence Version: 1.427.260.0 Security intelligence Type: AntiSpyware Update Type: Delta User: NT AUTHORITY\SYSTEM Current Engine Version: 1.1.25030.1 Previous Engine Version: 1.1.25030.1 |
この連載および以下の製品コラムでは、Windows Update Agent(WUA) APIを使用したWindows Updateの自動化を何度か取り上げています。以下の活用例のように、Windows Updateを、Windows標準の自動更新機能とは別の方法で行う場合は、標準のWindows Updateとの競合を避けるため、標準のWindows Updateを手動(無効)にしておくことをお勧めします。その際、Microsoft Defenderウイルス対策の更新については、このメモで紹介したいずれかの方法(より直接的なMpCmdRun.exeのタスク実行がお勧め)で自動更新するとよいでしょう。
Windows Updateの更新を全自動化-Job Director R16活用例: おじさんのブログと連動|製品コラム