Hun
Hun

Reputation: 69

How to get the count from WMI class listed values...

I have below vbscript.... when executed it will give all the applications that are in this class "SELECT * FROM Application".. What I wanted is a count of these application... I am looking for this script to have in vbscript or powrershell...

Count of Package Name in totall.. say if the app-v client has 10 diffrent apllications it should show as 10 apps are there...

On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

arrComputers = Array(".")
For Each strComputer In arrComputers
WScript.Echo
WScript.Echo "=========================================="
WScript.Echo "Computer: " & strComputer
WScript.Echo "=========================================="

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\microsoft\appvirt\client")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Application", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)

For Each objItem In colItems
WScript.Echo "CachedOsdPath: " & objItem.CachedOsdPath
WScript.Echo "GlobalRunningCount: " & objItem.GlobalRunningCount
WScript.Echo "LastLaunchOnSystem: " & WMIDateStringToDate(objItem.LastLaunchOnSystem)
WScript.Echo "Loading: " & objItem.Loading
WScript.Echo "Name: " & objItem.Name
WScript.Echo "OriginalOsdPath: " & objItem.OriginalOsdPath
WScript.Echo "PackageGUID: " & objItem.PackageGUID
WScript.Echo "Version: " & objItem.Version
WScript.Echo
Next
Next


Function WMIDateStringToDate(dtmDate)
WScript.Echo dtm: 
WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
& " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2))
End Function

Upvotes: 0

Views: 7006

Answers (1)

Anonimista
Anonimista

Reputation: 752

You won't be able to get the SWbemCollection item count if you use the wbemFlagForwardOnly flag so execute the query without it. Here is an example:

Set objWMIService = GetObject("winmgmts:")
Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")

WScript.Echo colItems.Count

For Each objItem In colItems
    WScript.Echo objItem.Name
Next

Upvotes: 1

Related Questions