首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式找到Windows上的活动安全提供程序?

如何以编程方式找到Windows上的活动安全提供程序?
EN

Stack Overflow用户
提问于 2019-06-12 01:05:05
回答 1查看 204关注 0票数 1

Windows 10具有用于显示活动安全提供商的UI (在Windows安全应用程序中,单击“病毒和威胁防护”,然后单击“管理提供商”)。如何以编程方式找出哪个安全提供程序当前处于活动状态?

(更具体地说,我需要找出Windows Defender是否是活动的安全提供程序,或者其他防病毒应用程序是否处于活动状态)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-12 02:52:26

这并不理想,但您可以使用WMI来获取一些信息。注意:这在Windows Server上不起作用,并且需要Vista或更高版本。在Vista之前,您可以从工作站操作系统上的SecurityCenter命名空间获得更清晰的信息。

代码语言:javascript
运行
复制
void Main() {
    var av_searcher = new ManagementObjectSearcher(@"root\SecurityCenter2", "SELECT * FROM AntivirusProduct");
    foreach (ManagementObject info in av_searcher.Get()) {
        Console.WriteLine(info.Properties["displayName"].Value.ToString());

        var ps = ConvertToProviderStatus((uint)info.Properties["ProductState"].Value);
        Console.WriteLine(ps.SecurityProvider.ToString());
        Console.WriteLine(ps.AVStatus.HasFlag(AVStatusFlags.Enabled) ? "Enabled" : "Disabled");
        Console.Write("Signatures are ");
        Console.WriteLine(ps.SignatureStatus.HasFlag(SignatureStatusFlags.UpToDate) ? "up to date" : "out of date");
        Console.WriteLine()l
    }
}

[Flags]
public enum ProviderFlags : byte {
    FIREWALL = 1,
    AUTOUPDATE_SETTINGS = 2,
    ANTIVIRUS = 4,
    ANTISPYWARE = 8,
    INTERNET_SETTINGS = 16,
    USER_ACCOUNT_CONTROL = 32,
    SERVICE = 64,
    NONE = 0,
}

[Flags]
public enum AVStatusFlags : byte {
    Unknown = 1,
    Enabled = 16
}

[Flags]
public enum SignatureStatusFlags : byte {
    UpToDate = 0,
    OutOfDate = 16
}

[StructLayout(LayoutKind.Sequential)]
public struct ProviderStatus {
    public SignatureStatusFlags SignatureStatus;
    public AVStatusFlags AVStatus;
    public ProviderFlags SecurityProvider;
    public byte unused;
}

public static unsafe ProviderStatus ConvertToProviderStatus(uint val) => *(ProviderStatus*)&val;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56548616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档