我们在Windows环境中,希望为非公司的计算机自动执行此过程。如果供应商来到现场,我们希望他/她能够访问一个网站,该网站可以执行工作站的快速扫描,以确定他们是否具有适当的MS KB补丁,以及他们的病毒扫描程序数据是否最新。
我可以相对容易地扫描KB更新,我很难找到一种检查病毒数据状态的方法,而且由于有这么多不同的引擎,使用(至少内置到XP中)专有的MS安全中心的东西似乎是有意义的。
最终,我们希望让我们的路由器将非公司机器重定向到将强制验证的网站,但在此之前,这将是一个手动过程。
有什么想法吗?
发布于 2008-12-25 07:38:26
在Windows Vista中,有一些新的API可以与安全中心组件状态进行交互:http://msdn2.microsoft.com/en-us/library/bb963845(VS.85).aspx
通过WMI,这是我在http://social.msdn.microsoft.com/forums/en-US/windowssecurity/thread/bd97d9e6-75c1-4f58-9573-9009df5de19b/上查看的VBS代码片段,用于转储防病毒产品信息:
Set oWMI = GetObject
("winmgmts:{impersonationLevel=impersonate}!\\.\root\SecurityCenter")
Set colItems = oWMI.ExecQuery("Select * from AntiVirusProduct")
For Each objAntiVirusProduct In colItems
msg = msg & "companyName: " & objAntiVirusProduct.companyName & vbCrLf
msg = msg & "displayName: " & objAntiVirusProduct.displayName & vbCrLf
msg = msg & "instanceGuid: " & objAntiVirusProduct.instanceGuid & vbCrLf
msg = msg & "onAccessScanningEnabled: "
& objAntiVirusProduct.onAccessScanningEnabled & vbCrLf
msg = msg & "productUptoDate: " & objAntiVirusProduct.productUptoDate & vbCrLf
msg = msg & "versionNumber: " & objAntiVirusProduct.versionNumber & vbCrLf
msg = msg & vbCrLf
Next
WScript.Echo msg发布于 2012-09-05 00:39:12
对于不向WMI报告的AV,或者对于卸载AV后WMI保留状态信息的AV(这两种情况都有实例),您可能希望考虑OPSWAT库。您将需要从您的网站编写并部署一个轻型客户端,以便将该库用于要询问的机器。该库将WMI用于正确支持WMI的安全应用程序,并使用专有方法来检测AV以及那些不支持WMI的应用程序的dat状态。
https://stackoverflow.com/questions/266417
复制相似问题