【Windows】Windows Defenderが使用不可になっていた話

スポンサーリンク
Windows
スポンサーリンク

Windows Defenderが使用不可になっていた

先日Windows11にアップグレードしたパソコンを、色々あってWindows10に戻した。
また、復元自体は上手く行ったのだが、その後Windows11 Insider Previewを勝手にダウンロード/インストールして再起動待ちの状態になるようになってしまったので、システムの復元機能を使って復元をしたところ、Windows Defenderが使用不可になってしまった。

具体的には以下のような症状になった。

  • 「ウイルスと脅威の防止」で最後に実行したスキャンが「使用不可」になっている
  • クイックスキャン等を実行しても、0ファイルのままスキャンが進まない
  • 「ウイルスと脅威の防止の設定」を開くと「この設定は管理者によって管理されています」と表示され設定変更ができない(勿論管理者は自分。というか自宅PCなのでそんなこと意識していない)
  • Windows UpdateにおいてDefender のアップデートが エラー コード 0x80070643 で失敗している
  • Windows セキュリティ関連のページを開くと「IT管理者によって制限されています」と出てくる
  • コントロールパネル→システムとセキュリティ→Windows DefenderファイアウォールによるPCの保護は有効になっているように見える

こんな感じ。

【原因】Windows Defenderサービスに設定されている実行ファイルのパス(フォルダ)が存在していなかった

直接原因は、Windows Defenderサービスに設定されている実行ファイルのパス(フォルダ)が存在していないため、Windows Defenderサービスの実行自体ができていなかったからだった。

確認方法は以下の通り

①Winボタン+Rで「ファイル名を指定して実行」を起動し、「services.msc」と入力、OKする。
 ※Windowsロゴマークをクリックして「サービス」と検索してもいいし、タスクマネージャの
  「サービス」タブから「サービス管理ツールを開く」をクリックでもいい

②「サービス」が開くので、「Microsoft Defender Antivirus Service」の項目を確認、状態が実行中でないことを確認する。

③「サービスの開始」をクリックすると「ローカルコンピューターのMicrosoft Defender Antivirus Serviceサービスを開始できません。エラー2:指定されたファイルが見つかりません」と表示される。

④「Microsoft Defender Antivirus Service」を右クリックし「プロパティ」をクリック。

⑤実行ファイルのパスに記載されているフォルダを確認しアクセスする。画像の例の場合はC:\ProgramData\Microsoft\Windows Defender\Platformにアクセスする。
また、下位フォルダ(おそらくバージョン情報)の名称を確認しておく。
画像の例の場合は「4.18.23090.2008-0」。

⑥先程アクセスしたフォルダ(C:\ProgramData\Microsoft\Windows Defender\Platform)に実行ファイルのパスに記載されている「4.18.23090.2008-0」というフォルダが存在するかどうか、存在した場合はその下に実行ファイル(MsMpEng.exe)が存在するかどうかを確認する。
なお、私の場合は「4.18.23090.2008-0」というフォルダ自体が存在しなかった。
つまり、サービス実行できない状態であった。

【対策】存在しているフォルダにシンボリックリンクを張ってサービスを立ち上げ、その後WindowsUpdateを行った

前述の通り「4.18.23090.2008-0」というフォルダは存在しなかったが、代わりに「4.18.23100.2009-0」「4.18.23110.3-0」という別のフォルダが存在し、中には実行ファイル(MsMpEng.exe)も存在していることが確認できた。名称からバージョン情報であろうと考え、Microsoft Defender Antivirus Serviceサービスの実行ファイルのパスである「4.18.23090.2008-0」から「4.18.23110.3-0」へのシンボリックリンクを張り、サービスを立ち上げることができた。

■シンボリックリンクを張る手順
コマンドプロンプトを管理者として実行し以下コマンドを入力する

MKLINK /D "C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.23090.2008-0" "C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.23110.3-0

「シンボリックリンクが作成されました」と表示されればOK。

この状態から、再度「サービスの開始」をクリックすると状態が「実行中」となる。

この状態が確認できたら、念のためPC再起動を行い、Microsoft Defender Antivirus Service の自動起動を確認する(スタートアップの種類が自動になっていなければ、予め自動にしておくこと)
再起動後もサービスが実行中となっていればOK。

この時点で改めて「ウイルスと脅威の防止」を見ると、変わらず最後に実行したスキャンが「使用不可」になっていると思うが、クイックスキャンを実行すると今度はファイル数が増えスキャンが進行するようになっている。

また、Windows Updateにおいて エラー コード 0x80070643 で失敗していたDefender のアップデートが正常に行えるようになり、アップデート後にMicrosoft Defender Antivirus Service の実行ファイルのパスが
C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.23110.3-0\MsMpEng.exe

と変化し、正常化した。

【考察】なぜ不一致状態が生まれてしまったのか

今回私は、過去に作成したシステムイメージを元に、「システムの復元」機能を利用して復元作業を行った。
システムイメージは本来、ある時点のドライブ状態を完璧にコピーしているもののはずだが、「システムの復元」はインストールしたプログラムやドライバーの状態はアンインストールされる可能性があるものの、ドキュメントや画像、その他の個人データは復元ポイントより後に実行した内容をアンインストールされない性質がある(デスクトップに作成したファイルなど)。

おそらく、復元ポイント作成から更新されたDefenderの定義情報を後者と認識して復元せず、一方でサービスの情報(=Defenderの実行ファイルのパス情報)は前者と認識して内容を復元したことにより、参照先フォルダが存在しないという不一致状態になってしまったのでないかと考察している。

改版履歴

2023/12/15 初版作成

コメント

タイトルとURLをコピーしました