如何通过PowerShell获取Microsoft 365 Defender Endpoints全部设置信息?
获取Microsoft 365 Defender Endpoints全部设置的方法
PowerShell命令方案
微软提供了专门的DefenderForEndpoint PowerShell模块,包含一系列Get-开头的命令用于获取云端Defender Endpoints的各类设置:
- 先安装并连接模块:
# 安装模块(需管理员权限) Install-Module -Name DefenderForEndpoint -Force # 连接到Defender for Endpoints服务 Connect-MdeDevice - 常用的
Get-命令示例:Get-MdeMachine:获取单台或多台设备的详细信息,包括防护状态、已安装组件等Get-MdeMachineConfiguration:获取设备的具体配置项,比如实时保护状态、防火墙规则、攻击面减少设置等Get-MdeAttackSurfaceRule:获取租户级的攻击面减少规则配置Get-MdeDeviceControlPolicy:获取设备控制策略(如USB限制规则)Get-MdeEndpointDetectionResponseRule:获取EDR检测与响应规则- 用
Get-Command -Module DefenderForEndpoint可列出该模块下所有可用命令
如果之前用本地Defender的Get-MpPreference等命令,只能获取单台本地设备的Defender设置,无法获取云端租户级的Microsoft 365 Defender Endpoints配置,这可能是你未得到预期结果的原因之一。
其他脚本/API方案
如果部分租户级设置无法通过PowerShell模块获取,可以使用Microsoft Graph API来提取:
- 常用API端点示例:
- 获取设备配置策略:
GET /deviceManagement/deviceConfigurations(筛选@odata.type包含defender的条目) - 获取Defender警报规则:
GET /security/alertRules - 获取自动响应策略:
GET /security/automationRules
- 获取设备配置策略:
- PowerShell调用Graph API示例(需先获取合法访问令牌,权限需包含
SecurityEvents.Read.All、DeviceManagementConfiguration.Read.All等):$token = "你的Graph API访问令牌" $headers = @{Authorization = "Bearer $token"} # 获取租户级Defender设备配置 $configs = Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/deviceManagement/deviceConfigurations?`$filter=contains(@odata.type,'defender')" -Headers $headers -Method Get $configs.value - 也可使用Python、Bash等语言编写脚本调用Graph API,核心逻辑都是获取令牌后发送GET请求,解析返回的JSON数据提取所需设置。
注意事项
- 无论使用PowerShell模块还是Graph API,都需要对应权限(如Security Administrator、Global Reader、Defender Administrator等),权限不足会导致无法获取完整数据
- 如果之前命令无预期结果,检查是否使用了正确的模块(云端
DefenderForEndpoint而非本地Defender模块),以及是否指定了正确的参数/筛选条件
内容的提问来源于stack exchange,提问作者Damien44
相关产品推荐
相关产品推荐

