2

我们处于 Windows 环境中,并希望为非公司机器自动执行此过程。如果供应商来到现场,我们希望能够让他/她访问一个可以对工作站执行快速扫描的网站,以确定他们是否有正确的 MS KB 补丁以及他们的病毒扫描程序数据是否达到日期。

我可以相对容易地扫描 KB 更新,我很难找到一种检查病毒 dat 状态的方法,并且由于那里有很多不同的引擎,使用(内置于XP 至少)专有的 MS 安全中心的东西。

最终,我们希望我们的路由器将非公司机器重定向到将强制验证的网站,但在那之前,这将是一个手动过程。

有什么想法吗?

4

2 回答 2

3

在 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
于 2008-12-25T07:38:26.040 回答
1

For AVs that don’t report to WMI or for AVs which WMI retains state info after the AV is uninstalled (there are instances of both cases) you may wish to consider the OPSWAT library. You will need to write and deploy a light client from your website to utilize the library to machines to be interrogated. The library utilizes WMI for security apps that correctly support WMI and proprietary methods to detect AVs and their dat status for those that don’t.

于 2012-09-04T16:39:11.710 回答