1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| OPTION EXPLICIT
Dim args, objWMIService_AV, colItems, objAntiVirusProduct,strcompanyName,strdisplayName,strVersionNumber,strproductState,colItems2,PathToSignedProductExe
Dim colFiles,itemFile,strRunType, strFinalMessage, shell, ForAppend
'get the arguments
Set args = Wscript.Arguments
Set Shell = WScript.CreateObject("Scripting.FileSystemObject")
Set fichier = Shell.OpenTextFile("c:\temp\ecr.txt", ForAppend, True)
Set WshNetwork = WScript.CreateObject("WScript.Network")
If args.count = 1 Then
strRunType = args(0)
Else
'double-clicked the .vbs file
strRunType = "MsgBox"
End If
Set objWMIService_AV = GetObject("winmgmts:\\.\root\SecurityCenter")
if err.number <> 0 Then
Echo " No AV registered to \root\SecurityCenter"
Else
Set colItems = objWMIService_AV.ExecQuery("Select * from AntiVirusProduct")
For Each objAntiVirusProduct In colItems
Echo " WARNING: AV products registered to \root\SecurityCenter"
strcompanyName = (objAntiVirusProduct.companyName)
strdisplayName = (objAntiVirusProduct.displayName)
strVersionNumber = (objAntiVirusProduct.versionNumber)
strproductState = (objAntiVirusProduct.onAccessScanningEnabled)
'Echo " companyName: " & strcompanyName
Echo " Antivirus: " & strdisplayName
' Echo " versionNumber: " & strVersionNumber
'Echo " onAccessScanningEnabled: " & strproductState
Fichier.write( Now & " ---------- " &WshNetwork.ComputerName & " ---- " & strdisplayName & vbcrlf)
Next
Set objWMIService_AV = Nothing
End If
Err.Clear
Set objWMIService_AV = GetObject("winmgmts:\\.\root\SecurityCenter2")
If err.number <> 0 Then
Echo " No AV registered to \root\SecurityCenter2"
Else
Set colItems2 = objWMIService_AV.ExecQuery("Select * from AntiVirusProduct")
For Each objAntiVirusProduct In colItems2
PathToSignedProductExe = Replace(objAntiVirusProduct.PathToSignedProductExe,"\","\\")
'echo (" Path " & PathToSignedProductExe)
Set colFiles = objWMIService.ExecQuery ("Select * from CIM_Datafile Where name = '" & PathToSignedProductExe & "'",,48)
For Each itemFile In colFiles
strcompanyName = (itemFile.Manufacturer)
strVersionNumber = (itemFile.Version)
strdisplayName = (objAntiVirusProduct.displayName)
if (objAntiVirusProduct.ProductState = "266240" OR objAntiVirusProduct.ProductState = "266256") then
strproductState = "Scanning Enabled"
Elseif (objAntiVirusProduct.ProductState = "262144") Then
strproductState = "Scanning Not Enabled"
Else
strproductState = "Unknown State"
End If
'Echo " WARNING: AV products registered to \root\SecurityCenter2"
'Echo " strcompanyName: " & strcompanyName
Echo " Antivirus: " & strdisplayName
'Echo " strVersionNumber: " & strVersionNumber
'Echo " strproductState: " & strproductState
Fichier.write( Now & " ---------- " &WshNetwork.ComputerName & " ---- " & strdisplayName & vbcrlf)
Next
Next
End If
'Final Cleanup
Call FinalCleanup
On Error Goto 0
Public Sub Echo (msg)
If strRunType = "MsgBox" Then
strFinalMessage = strFinalMessage & vbCRLF & msg
ElseIf UCASE(strRunType) = "ECHO" Then
wscript.Echo msg
ElseIf UCASE(strRunType) = "INSTALLER" Then
'THIS IS NOT YET IMPLEMENTED
wscript.quit(1)
End If
End Sub
Public Sub FinalCleanup
If strRunType = "MsgBox" Then
msgbox strFinalMessage
End If
End Sub |
Partager