You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell调用Defender高级狩猎查询获取漏洞数据?

可以通过PowerShell调用Defender高级狩猎查询并执行后续任务

完全可以用PowerShell调用你的Defender高级狩猎查询,以下是具体实现步骤:

1. 准备依赖模块

首先安装并导入Microsoft Graph PowerShell的安全模块,这是调用Defender API的官方工具:

# 安装模块(首次运行需要)
Install-Module -Name Microsoft.Graph.Security -Force -AllowClobber
# 导入模块
Import-Module Microsoft.Graph.Security

2. 身份认证

使用拥有Defender权限的账号登录,需要的权限为SecurityEvents.Read.All:

Connect-MgGraph -Scopes "SecurityEvents.Read.All"

执行后会弹出登录窗口,完成账号验证即可。

3. 执行狩猎查询

将你的查询语句嵌入PowerShell脚本,调用API执行查询:

# 定义你的高级狩猎查询
$huntingQuery = @"
DeviceTvmSoftwareVulnerabilities
| summarize count() by  VulnerabilitySeverityLevel
| order by VulnerabilitySeverityLevel
"@

# 调用API执行查询并获取结果
$queryResults = Invoke-MgQuerySecurityHuntingQuery -Query $huntingQuery

4. 处理结果并执行后续任务

查询返回的结果是JSON格式,可以转换为PowerShell对象后进行后续操作,比如输出表格、导出文件或自动化分析:

# 格式化结果为易读的对象
$formattedResults = $queryResults.Value | ForEach-Object {
    [PSCustomObject]@{
        漏洞严重级别 = $_.VulnerabilitySeverityLevel
        数量 = $_.Count_
    }
}

# 示例1:输出格式化表格
$formattedResults | Format-Table -AutoSize

# 示例2:导出到CSV文件
$formattedResults | Export-Csv -Path "C:\漏洞统计结果.csv" -NoTypeInformation -Encoding UTF8

# 示例3:针对高/严重级别漏洞触发后续告警逻辑
$criticalHighCount = ($formattedResults | Where-Object { $_.漏洞严重级别 -in "Critical", "High" }).数量 | Measure-Object -Sum | Select-Object -ExpandProperty Sum
if ($criticalHighCount -gt 500) {
    Write-Host "高/严重级别漏洞数量超过阈值,触发告警"
    # 这里可以添加邮件通知、自动化修复触发等逻辑
}

注意事项

  • 确保使用的账号拥有Defender高级狩猎的访问权限(如安全分析师、Defender管理员角色)
  • 定期更新Microsoft Graph模块以避免兼容性问题:Update-Module -Name Microsoft.Graph.Security

内容的提问来源于stack exchange,提问作者user3302129

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 01:55:38