目次

はじめに

先日、自宅サーバー(Hyper-V Server 2016)で久々にWindows Updateによるリブートを行いました。
ところが、リブート後に、これまで使っていた幾つかのファイルが消去されている、という事態が起こりました。

よく調べてみると、自宅サーバーの運営費の捻出のために使っている仮想通貨のマイニングアプリがWindows Defenderに引っかかって消去されているように見受けられました。
確かにマイニングソフトの殆どはウィルスチェックに引っかかって、消去されたり通信が拒絶されたりします。

これまでもWindows Defenderは使っていたのですが、今まではファイルが消去されることはありませんでした。
しかし今回は、何度ファイルをコピーしてもすぐに消去されることを確認したので、Windows Defenderの設定で対象のプログラムを除外する必要がありました。
Windows Defenderを無効化することも考えましたが、さすがにこれでは無防備になるので、できればWindows Defenderを有効にして、かつ、都合に応じて除外の設定ができないか、ということで色々調べてみました。

ということで、今回はWindows DefenderをServer Core上で設定・操作する方法を紹介します。

PowerShellによるDefenderの操作

Server Coreの環境だと、もちろんWindowsのGUIツールはことごとく使用できません。
ですので、コマンドラインからできる操作に限られます。

色々調べてみるとPowerShellを使用してWindows Defenderを操作するいくつかのコマンドレットがあるようなので、今回はそれらを使用してみます。

まず、どんなコマンドレットが使えるか見てみます。

PS C:\> Get-Command -Module Defender

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Add-MpPreference                                   1.0        Defender
Function        Get-MpComputerStatus                               1.0        Defender
Function        Get-MpPreference                                   1.0        Defender
Function        Get-MpThreat                                       1.0        Defender
Function        Get-MpThreatCatalog                                1.0        Defender
Function        Get-MpThreatDetection                              1.0        Defender
Function        Remove-MpPreference                                1.0        Defender
Function        Remove-MpThreat                                    1.0        Defender
Function        Set-MpPreference                                   1.0        Defender
Function        Start-MpScan                                       1.0        Defender
Function        Start-MpWDOScan                                    1.0        Defender
Function        Update-MpSignature                                 1.0        Defender

なるほど、ではこれらをもう少し調べてみるか...という前に、まずは今回の問題解決を先にやります。

問題の対策を実施

今回の問題を解決するためには、Windows Defenderがファイルを削除することを回避する必要があります。
そこで、まずは、現状の除外情報を見るために、Get-MpPreferenceを実行しました。
すると、以下のような項目がでてくるので、これらの中から、除外情報に相当するものを探すと、「Exclusion***」が相当することが予想されます。

PS C:\> Get-MpPreference

CheckForSignaturesBeforeRunningScan           : False
ComputerID                                    : ***************
DisableArchiveScanning                        : False
DisableAutoExclusions                         : False
DisableBehaviorMonitoring                     : False
DisableBlockAtFirstSeen                       : False
DisableCatchupFullScan                        : True
DisableCatchupQuickScan                       : True
DisableEmailScanning                          : True
DisableIntrusionPreventionSystem              :
DisableIOAVProtection                         : False
DisablePrivacyMode                            : False
DisableRealtimeMonitoring                     : False
DisableRemovableDriveScanning                 : True
DisableRestorePoint                           : True
DisableScanningMappedNetworkDrivesForFullScan : True
DisableScanningNetworkFiles                   : False
DisableScriptScanning                         : False
ExclusionExtension                            :
ExclusionPath                                 :
ExclusionProcess                              :
HighThreatDefaultAction                       : 0
LowThreatDefaultAction                        : 0
MAPSReporting                                 : 2
ModerateThreatDefaultAction                   : 0
PUAProtection                                 : 0
QuarantinePurgeItemsAfterDelay                : 90
RandomizeScheduleTaskTimes                    : True
RealTimeScanDirection                         : 0
RemediationScheduleDay                        : 0
RemediationScheduleTime                       : 02:00:00
ReportingAdditionalActionTimeOut              : 10080
ReportingCriticalFailureTimeOut               : 10080
ReportingNonCriticalTimeOut                   : 1440
ScanAvgCPULoadFactor                          : 50
ScanOnlyIfIdleEnabled                         : True
ScanParameters                                : 1
ScanPurgeItemsAfterDelay                      : 15
ScanScheduleDay                               : 0
ScanScheduleQuickScanTime                     : 00:00:00
ScanScheduleTime                              : 02:00:00
SevereThreatDefaultAction                     : 0
SignatureAuGracePeriod                        : 1440
SignatureDefinitionUpdateFileSharesSources    :
SignatureDisableUpdateOnStartupWithoutEngine  : False
SignatureFallbackOrder                        : MicrosoftUpdateServer|MMPC
SignatureFirstAuGracePeriod                   : 120
SignatureScheduleDay                          : 8
SignatureScheduleTime                         : 01:45:00
SignatureUpdateCatchupInterval                : 1
SignatureUpdateInterval                       : 0
SubmitSamplesConsent                          : 1
ThreatIDDefaultAction_Actions                 :
ThreatIDDefaultAction_Ids                     :
UILockdown                                    : False
UnknownThreatDefaultAction                    : 0
PSComputerName                                :

[Get-MpPreferenceの例]

そこで、以下のコマンドにより状況を絞ってみると、まだ除外の設定がされていないことがわかりました。

PS C:\> Get-MpPreference | Select Exclu*

ExclusionExtension ExclusionPath                       ExclusionProcess
------------------ -------------                       ----------------

このことから、
「ExclusionExtension」で除外する拡張子を設定する
「ExclusionPath」で除外するパスを設定する
「ExclusionProcess」で除外するプロセス名を設定する
ということができそうでしたので、以下のコマンドで、ダウンロード用のパスを除外パスに設定してみました。

PS C:\> Add-MpPreference -ExclusionPath "C:\User\Administrator\Downloads"
PS C:\> Get-MpPreference | Select Exclu*

ExclusionExtension ExclusionPath                       ExclusionProcess
------------------ -------------                       ----------------
                   {C:\Users\Administrator\Downloads\}

これでWindows Defenderの除外パスが設定できたと思われるので、問題であった消去されるファイルをここにコピーしてみたところ、削除されないことを確認できました。
この方法で、Windows Defenderの除外設定ができることがわかりました。

詳細情報

これらについてもう少し詳しく調べてみると、Microsoftのドキュメント(https://technet.microsoft.com/ja-jp/library/dn433280.aspx)にこれらの詳細がありますので、必要に応じて、これらのコマンドでWindows Defenderを制御することができます。

まとめ

Windows Defenderは、OS付属でありながら、強力なウィルス対策です。
他の有償のウィルス対策ソフトウェアの方がより強力ですが、私は個人的にはWindows Defenderでもマメに定義更新すれば、ウィルス対策としては最低限のことはできると思っています。
実際に、自宅サーバーを運用していると、Defenderの定義更新は、1,2日毎に更新があります。
ですので、皆さんもWindows Defenderをもう少し使いこなしてみてはいかがでしょうか?

今回の記事は以上です。