如何从WMI类中列出的值计数...

问题描述:

我有下面的VBScript ....当执行它将给这个类中的所有应用程序“SELECT * FROM Application”..我想要的是一个这些应用程序的计数...我正在寻找这个脚本有vbscript或powrershell ...如何从WMI类中列出的值计数...

totall包名称计数..说如果app-v客户端有10个不同应用程序它应该显示为10应用程序是有...

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 

你将无法得到,如果你使用wbemFlagForwardOnly标志,以便执行查询没有它SWbemCollection项目计数。这里是一个例子:

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