payload length = 4096
@mcapra, Thank you for sharing on payload length. Now that I have added 4096 on the client side, I am getting all listed software versions.
@npolovenko, I still have an issue
Code: Select all
const HKEY_LOCAL_MACHINE = &H80000002
Dim strComputer, strKeyPath
Dim Name, Version, Publisher
Dim objReg, strSubkey, arrSubkeys
Dim myString
strComputer = "."
' WMI class search for installed programs
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product where Vendor <> 'Microsoft Corporation'")
' Registry key path of Control panel items for installed programs
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
Set objReg=GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubkeys
'Enumerate registry keys
For Each strSubkey In arrSubkeys
objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "DisplayName" , Name
If Name <> "" Then
objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "DisplayVersion" , Version
objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "Publisher" , Publisher
myString = myString & "Name= "
myString = myString & Name
myString = myString & ", Version= "
myString = myString & Version
myString = myString & ", Publisher= "
myString = myString & Publisher
myString = myString & vbCr
End If
Next
For Each objSoftware in colSoftware
myString = myString & "Name= "
myString = myString & objSoftware.Name
myString = myString & ", Version= "
myString = myString & objSoftware.Version
myString = myString & ", Vendor= "
myString = myString & objSoftware.Vendor
myString = myString & vbCr
Next
WScript.Echo myString