windows-vista - 如何检测是否安装了病毒扫描程序和/或防火墙? (以及其他一些与安全相关的问题。)

标签 windows-vista antivirus

我有一个应用程序,我正在努力确保它在安全的环境中运行。首先,我检查是否Windows is genuine ,这使得用户更有可能保持最新状态。如果没有,我只是弹出一条消息警告用户可能存在风险,因为他仍然需要验证 Windows。

现在,我想做更多。我还想检查用户是否安装了病毒扫描程序。我不在乎哪一个,只要他安装了一个。然后同样用于检查是否安装了防火墙。如果可能的话,我想检查用户上次更新他的 Windows/扫描仪/防火墙的时间,以确保它不是太旧。所以:

1) 如何检查是否安装了病毒扫描程序?
2) 如何确定virusscanner 何时更新?
3) 如何检测virusscanner 何时进行了最后一次全系统检查?
4) 如何检测防火墙是否已安装并处于事件状态?
5) 如何检查 Windows 何时收到它的最新更新?

基本上,当我的应用程序启动时,我想显示一个带有警告的屏幕(每天一次),以防万一这些事情出现问题。这是因为我的应用程序处理用户从其客户收集的各种敏感信息。 (其中包括银行账号、护照身份证号码、NAW+DOB、收入等等。)基本上,如果系统有问题,用户必须确认他知道这些问题。如果他在知道他的系统可能不安全的情况下继续工作,那么我的应用程序可能会承担责任……还有语言?基本上 C++ 或 Delphi 用于 WIN32 示例和 C# 用于 .NET 示例。它更多地是关于 .NET/Windows API/.NET 而不是语言。

最佳答案

我认为您可以通过 WMI 完成大部分工作

像这样的东西:

ManagementObjectSearcher wmiData = new ManagementObjectSearcher(@"root\SecurityCenter", "SELECT * FROM AntiVirusProduct");
ManagementObjectCollection data = wmiData.Get();

foreach (ManagementObject virusChecker in data)
{
    // This is the virus checkers name.
    String virusCheckerName = virusChecker["displayName"];
}

[你没有提到什么语言,所以上面的例子是用C#写的,但是WMI几乎可以用任何东西来做]

[编辑:您可以执行相同的操作,但使用“FirewallProduct”代替防火墙信息。此外,对于防病毒,您可以查看结果中的“productUptoDate”属性,以了解有关它是否是最新的信息]

WMI reference应该可以帮助您找到其他人。 (1、2、3 和 4 我很确定可以通过 WMI 获得。5 我不太确定,但我认为它可能应该是)

你可能会发现 WMI Code Creator有助于测试和确定您需要使用哪些查询/对象。还有 ScriptomaticWMI Admin tools可能有用。

关于windows-vista - 如何检测是否安装了病毒扫描程序和/或防火墙? (以及其他一些与安全相关的问题。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1459350/

相关文章:

antivirus - 每次我们重新发布软件时,如何阻止杀毒软件误报?

java - 替换java类?

amazon-web-services - 如何对上传到 AWS S3 的文件执行自动病毒扫描

c# - 在 Vista 中获取可移植设备的路径

winforms - NotifyIcon 使用哪种格式和大小的图标

delphi - 为什么我的程序在 Vista 64 上找不到它的 DLL?

windows - Golang - 在 Windows 上更改构建工作路径

windows-vista - 如何确定机器退出暂停的原因?

用于 Vista UAC(用户访问控制)的 python IPC(进程间通信)

antivirus - 防病毒软件如何工作?