In many cases with SMS or SCCM we could see that the information pulled by the hardware inventory is not matching or incorrect you can use this. This will pull the information of list of programs listed in ADD\Remove Programs
Script
=================================================================================
strHost = "."Const HKLM = &H80000002Set objReg = GetObject("winmgmts://" & strHost & _ "/root/default:StdRegProv")Const strBaseKey = _ "Software\Microsoft\Windows\CurrentVersion\Uninstall\"objReg.EnumKey HKLM, strBaseKey, arrSubKeys For Each strSubKey In arrSubKeys intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _ "DisplayName", strValue) If intRet <> 0 Then intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _ "QuietDisplayName", strValue) End If If (strValue <> "") and (intRet = 0) Then WScript.Echo strValue End IfNext
========================================================================
Note : It is better to use cscript for this as if you use script then it will give you lot of out screens equals to no of programs in the system. So save the script in a files with .vbs extension and run cscript <Name.vbs>
Hope this should be useful
Sudheesh Narayanaswamy