2008-11-05 42 views
2

我們處於Windows環境中,希望爲非公司機器自動執行此過程。如果供應商來到現場,我們希望能夠讓他/她訪問能夠快速掃描工作站的網站,以確定他們是否有適當的MS KB修補程序,以及他們的病毒掃描程序數據是否達到日期。有沒有辦法檢查MS安全中心的病毒防護狀態?

我可以掃描KB更新相對容易,我很難找到的是一種檢查病毒數據狀態的方法,並且因爲有那麼多不同的引擎,所以使用它似乎是有意義的(內置於XP至少)專有的MS安全中心的東西。

最後,我們希望我們的路由器將非公司機器重定向到強制驗證的網站,但在此之前它將成爲手動過程。

有什麼想法?

回答

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 
1

對於未向WMI報告的AV或AV卸載後WMI保留狀態信息的AV(有兩種情況),您可能需要考慮OPSWAT庫。 您需要從您的網站編寫和部署輕量級客戶端,以便將該庫用於機器進行審問。 該庫利用WMI爲安全應用程序提供正確支持WMI和專有方法來檢測AV和它們的dat狀態。