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

如何获取Windows设备杀毒软件实时防护状态及可用API

获取Windows设备所有杀毒软件的实时防护状态

你提到的Get-MpComputerStatus确实仅针对Windows Defender,要获取系统中所有杀毒软件的实时防护状态,可以通过Windows Security Center提供的WMI接口实现,这是官方推荐的标准方式。

1. 使用WMI查询Security Center 2命名空间

Windows Security Center通过Root\SecurityCenter2这个WMI命名空间对外暴露杀毒软件的状态信息,所有合规注册的第三方杀毒软件都会在这里被识别。

基础查询命令

执行以下PowerShell命令(需管理员权限),可以获取所有杀毒软件的基础信息:

Get-WmiObject -Namespace root/SecurityCenter2 -Class AntiVirusProduct | Select-Object displayName, productState, pathToSignedProductExe

解析实时防护状态

productState字段是一个32位整数,其中高16位的特定标志位表示实时防护的开启状态。可以通过位运算解析出具体状态:

Get-WmiObject -Namespace root/SecurityCenter2 -Class AntiVirusProduct | ForEach-Object {
    # 提取实时防护状态的标志位(0x1000表示已开启)
    $isRealTimeEnabled = ($_.productState -band 0x1000) -ne 0
    [PSCustomObject]@{
        杀毒软件名称 = $_.displayName
        实时防护已开启 = $isRealTimeEnabled
        产品启动路径 = $_.pathToSignedProductExe
    }
}

2. 关键注意事项

  • 权限要求:必须以管理员身份运行PowerShell才能访问Root\SecurityCenter2命名空间,否则会返回权限不足的错误。
  • 兼容性:该接口适用于Windows 7及以上版本,Windows 10/11推荐使用此方式;旧版的Root\SecurityCenter命名空间已被弃用,不再支持新的杀毒软件注册。
  • 第三方软件支持:绝大多数主流杀毒软件(如360、卡巴斯基、McAfee等)都会正确注册到Security Center,少数小众软件可能未适配,导致无法获取状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 23:31:01