追記
===(追記:2022/08/14)=== Sh1n0g1 さんが Windows10 でも無効化できる方法を紹介されていました。 https://twitter.com/Sh1n0g1/status/1557999958141579264 https://gist.github.com/Sh1n0g1/24dad286047e92c1762470483b15faa9 手元の環境でも再起動してもリアルタイム保護が無効化のままの状態になることを再現できました。 なお試した環境では「改ざん防止」をオフにしてから再起動する必要がありました。 ===(追記:2021/05/17)=== 最新版の Windows 10 (20H2 19042.985 など) では記事に 書いたような Autoruns を用いた方法でも Microsoft Defender Antivirus を無効化できなくなっていました。 ===(追記:2021/03/13) === 記載の方法で Microsoft Defender Antivirus を無効化した場合、 他の Windows 機能が正常に動作しない場合があります。 例:Windows ファイアウォールの設定変更ができない。電卓が起動しない。 など。
Windows 10 には Microsoft Defender Antivirus (または Windows Defender Antivirus)を設定から無効化したとしても、再起動等で自動的に有効化される仕組みが備わっています。 各種ツールを扱う場合に少し邪魔になる場合があり、再起動しても無効化した状態が保たれるようにしたかったのでその方法について調べました。 *1
Microsoft Defender Antivirus 無効化
最終的に、スマートな方法ではないですが Autoruns というツールを用いて関連するスタートアップをことごとく止めることで無効化することができました。
この操作のためには設定にある「リアルタイム保護」をあらかじめ手作業で無効化しておく必要があります。
Powershell などコマンドベースで無効化する方法について調べていろいろと試したのですが、Microsoft Defender Antivirus は思っていた以上に無効化が難しく、最新に近い Windows 10 で有効な方法はどうしても見つけることができませんでした。*2 *3
動作を確認した環境
- Microsoft Windows 10 Pro 1909 [Version 10.0.18363.1316]
Autoruns の入手
Autoruns は以下のサイトから入手できます。
- Autoruns for Windows - Windows Sysinternals | Microsoft Docs
https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns
ダウンロードした zip ファイルを展開すると Autoruns の実行ファイルが確認できます。
「リアルタイム保護」をオフにする
Microsoft Defender Antivirus 関連の設定は変更できないように制限がかかっているので、Autoruns での設定変更に先立ってまずは設定から「リアルタイム保護」を無効化しておきます。*4
設定からたどる方法
設定 -> 更新とセキュリティ -> Windows セキュリティ ->Windows セキュリティを開く -> ウイルスと脅威の防止 -> 設定の管理 -> リアルタイム保護 をオフにしますスタートからたどる方法
スタートに「改ざん防止」と入力 -> リアルタイム保護 をオフにします
Microsoft Defender Antivirus 関連のスタートアップを止める
「リアルタイム保護」がオフになっていることを確認してから Autoruns (Autoruns64.exe) を管理者権限で起動します。
起動したらオプションを開き「Hide Empty Locations」以外のチェックをすべて外した状態にします。
次にフィルター欄に「Windows Defender」と入力します。
表示される内容は環境によって若干異なりますが、以下の2つのカテゴリにある PolicyAgent 以外の項目のチェックを外します。
- Task Scheduler
- HKLM\System\CurrentControlSet\Services
この状態で再起動すると Microsoft Defender が無効化された状態が維持されます。
- 設定:Windows セキュリティ
もしくは
- Get-Service WinDefend
PS C:\> Get-Service WinDefend Status Name DisplayName ------ ---- ----------- Stopped WinDefend Microsoft Defender Antivirus Service
- Get-MpPreference
PS C:\> Get-MpPreference
(snip)
DisableRealtimeMonitoring : True
参考文献
再現できた方法
Can't disable Windows Defender by using group policies - Microsoft Q&A
https://docs.microsoft.com/en-us/answers/questions/234111/can39t-disable-windows-defender-by-using-group-pol.htmlUnable to disable Windows Defender on 1909 Solved - Windows 10 Forums
https://www.tenforums.com/antivirus-firewalls-system-security/167105-unable-disable-windows-defender-1909-a.htmlTurn off antivirus protection in Windows Security
https://support.microsoft.com/en-us/windows/turn-off-antivirus-protection-in-windows-security-99e6004f-c54c-8509-773c-a4d776b77960
その他の方法
Manage and Disable Windows Defender Using PowerShell – TheITBros
https://theitbros.com/managing-windows-defender-using-powershell/DisableAntiSpyware | Microsoft Docs
https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/security-malware-windows-defender-disableantispywareHow do I completely turn off Windows Defender from PowerShell? - Server Fault
https://serverfault.com/questions/873522/how-do-i-completely-turn-off-windows-defender-from-powershellflare-vm/install.ps1 at master · fireeye/flare-vm · GitHub
https://github.com/fireeye/flare-vm/blob/master/install.ps1
Microsoft Defender に関して
Microsoft Defender - Wikipedia
https://en.wikipedia.org/wiki/Microsoft_DefenderHow to manage Microsoft Defender Antivirus with PowerShell on Windows 10 | Windows Central
https://www.windowscentral.com/how-manage-microsoft-defender-antivirus-powershell-windows-10
付録: Windows 10 1909 以降でうまくいかなかった方法集
Set-MpPreference -DisableAutoExclusions $true
Windows 10 の Windows Defender 無効化 で調べると Set-MpPreference -DisableAutoExclusions $true
を Powershell で入力することで無効化できるという記事がたくさん見つかりますが、再現させることができませんでした。 *5
Get-Service WinDefend | Stop-Service -Force
FLARE-VM では Get-Service WinDefend | Stop-Service -Force
といったコマンドを Powershell で実行することで無効化しようとしていますが、これも確認した限りでは再現させることができませんでした。 *6
PS C:\> Get-Service WinDefend | Stop-Service -Force Stop-Service : Service 'Microsoft Defender Antivirus Service (WinDefend)' cannot be stopped due to the following error: Cannot open WinDefend service on computer '.'. At line:1 char:25 + Get-Service WinDefend | Stop-Service -Force + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (System.ServiceProcess.ServiceController:ServiceController) [Stop-Service], ServiceCommandException + FullyQualifiedErrorId : CouldNotStopService,Microsoft.PowerShell.Commands.StopServiceCommand
グループポリシーの「Microsoft Defender ウイルス対策を無効にする」を有効にする
グループポリシーで「Microsoft Defender ウイルス対策を無効にする」を有効にすることで無効化できるという記事もありましたが、確認した限りでは再起動することで未構成に強制変更されてしまっており、目的とする形の無効化はできませんでした。
レジストリに「DisableAntiSpyware」を加える
レジストリに DisableAntiSpyware と書き加えることで無効化にできるという記事もいくつかありましたが、確認した限りでは再現させることができませんでした。*7
更新履歴
- 2021/02/11 新規作成
- 2021/02/15 誤字を修正
- 2021/03/13 Windows の機能が正常に動作しなくなる可能性についての注意書きを追加。
- 2021/05/17 最新の Windows 10 では無効化できなくなっている点について注意書きを追加。
*1:方法としてサードパーティー製のアンチウィルスソフトを導入することでも無効化されるという記事もありましたが、今回の目的には合わなかったこともあり試していません。
*2:Autoruns の設定変更自体は実態としてはレジストリの変更のようなので、コマンドで再現できそうではあるのですが、その前提となる「リアルタイム保護」の無効化をコマンドベースで実行する方法が見つけられませんでした。
*3:仮に見つけられていたら記事にしていなかったと思います。
*4:確認した環境では「改ざん防止」は有効状態でも問題ありませんでしたが、もし設定変更に失敗するようであれば同様に無効化するといいかもしれません。
*5:コマンド自体は特にエラーなく完了しているように見えますが、設定値を確認すると反映がされていませんでした。また、その他の項目や挙動などからも無効化は確認できませんでした。
*6:実行時にエラーが発生します。
*7:これについてはレジストリとして削除された(機能しないように仕様変更された)という記事もいくつかありました。