Windows Defender Powershell ThreatAction 枚举映射到什么?

Windows Defender Powershell ThreatAction 枚举映射到什么?

我正在查看 Server 2016 中的默认 Defender 配置。我不确定如何发现这些“0”对于 ThreatDefaultAction 的含义:

HighThreatDefaultAction                       : 0
LowThreatDefaultAction                        : 0
MAPSReporting                                 : 2
ModerateThreatDefaultAction                   : 0

我认为从设置MpPreference文档中说它是隔离,但同一段文字引用的参数集以“Clean”开头,而不是“Quarantine”。ThreatIdDefaultActions 的解释列表中甚至没有 0:添加MpPreference

答案1

所有HighThreatDefaultActionLowThreatDefaultActionModerateThreatDefaultActionSevereThreatDefaultAction都是UnknownThreatDefaultAction[ThreatAction] 枚举类型。它们的值指定要对给定级威胁。

上述任何属性的零值都应被视为不明确的成功执行Remove-MpPreferencecmdlet 将它们的值设置为零。以下示例演示:

PS C:\WINDOWS\system32> Import-Module Defender

PS C:\WINDOWS\system32> Get-MpPreference | Select-Object -Property *DefaultAction


HighThreatDefaultAction     : 2
LowThreatDefaultAction      : 0
ModerateThreatDefaultAction : 0
SevereThreatDefaultAction   : 2
UnknownThreatDefaultAction  : 0


PS C:\WINDOWS\system32> Remove-MpPreference -Force -HighThreatDefaultAction

PS C:\WINDOWS\system32> Get-MpPreference | Select-Object -Property *DefaultAction


HighThreatDefaultAction     : 0
LowThreatDefaultAction      : 0
ModerateThreatDefaultAction : 0
SevereThreatDefaultAction   : 0
UnknownThreatDefaultAction  : 0

然而,Set-MpPreference文档; 例如:

-HighThreat默认操作

指定针对高级别威胁采取的自动补救措施。此参数可接受的值为:

Quarantine
Remove
Ignore

但尝试Set-MpPreference -HighThreatDefaultAction Ignore导致InvalidData错误,因为[ThreatAction]类型枚举不包含名称Ignore

PS > Import-Module Defender
PS > [Microsoft.PowerShell.Cmdletization.GeneratedTypes.MpPreference.ThreatAction] |
    Get-EnumValue

Name                           Value
----                           -----
Clean                          1
Quarantine                     2
Remove                         3
Allow                          6
UserDefined                    8
NoAction                       9
Block                          10

注意Get-EnumValue函数来自这是我的回答代码审查

答案2

看起来那里确实缺少文档。如果你看一下示例,你会发现它SignatureScheduleDay更好地记录了映射,这与参数集列出的完全一致。

最好的选择是它们根据“参数集”进行映射。这也与帮助文件的语法部分映射相同:

                             0   |      1     |   2    |   3   |      4      |     5    |   6   
[-HighThreatDefaultAction {Clean | Quarantine | Remove | Allow | UserDefined | NoAction | Block}]

我查看了 github 中是否列出了此问题,但没有找到。你绝对可以在那里了解更多信息:https://github.com/MicrosoftDocs/windows-powershell-docs/blob/master/docset/windows/defender/set-mppreference.md

答案3

好的,得到了​​微软支持的答案。0 与 NULL 相同(文档示例这里),这意味着遵循 Microsoft 针对每种威胁应用的默认设置。换句话说,每种病毒/恶意软件等都附带有严重性和威胁操作(即缓解)。GetMpPreference 中的“0”表示使用该缓解措施,而不是您可能在此处指定的任何值来针对每个严重性级别普遍覆盖该缓解措施。希望这对未来的旅行者有所帮助。

相关内容