I created this process to collect the startup programs in Windows. It's very easy you need change only the guid data class. Good Look
WMI vbs
#############################################################################################
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_StartupCommand",,48)
Dim objItem 'as Win32_StartupCommand
For Each objItem in colItems
WScript.Echo "Caption: " & objItem.Caption
WScript.Echo "Command: " & objItem.Command
WScript.Echo "Description: " & objItem.Description
WScript.Echo "Location: " & objItem.Location
WScript.Echo "Name: " & objItem.Name
WScript.Echo "SettingID: " & objItem.SettingID
WScript.Echo "User: " & objItem.User
WScript.Echo "UserSID: " & objItem.UserSID
WScript.Echo ""
Next
#############################################################################################
Create your custom data class
Script (you need change the guid)
#############################################################################################
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_StartupCommand",,48)
Dim objItem 'as Win32_StartupCommand
For Each objItem in colItems
WScript.Echo "Caption: " & objItem.Caption
WScript.Echo "Command: " & objItem.Command
WScript.Echo "Description: " & objItem.Description
WScript.Echo "Location: " & objItem.Location
WScript.Echo "Name: " & objItem.Name
WScript.Echo "SettingID: " & objItem.SettingID
WScript.Echo "User: " & objItem.User
WScript.Echo "UserSID: " & objItem.UserSID
WScript.Echo ""
Next
'Following is a sample custom inventory sript gathering information from a WMI Query
'===================================================================================================================
' On Error Resume Next
'Create instance of Wbem service object, connect to namespace and run wmi query
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_StartupCommand",,48)
'===================================================================================================================
'Create instance of Altiris NSE component
dim nse
set nse = WScript.CreateObject ("Altiris.AeXNSEvent")
' Set the header data of the NSE
' Please don't modify this GUID
nse.To = "{1592B913-72F3-4C36-91D2-D4EDA21D2F96}"
nse.Priority = 1
'Create Inventory data block. Here assumption is that the data class with below guid is already configured on server
dim objDCInstance
Set objDCInstance = nse.AddDataClass ("{adcb49e3-e140-4974-84e5-d8bd73be68e9}")
dim objDataClass
set objDataClass = nse.AddDataBlock (objDCInstance)
For each objInfo in colItems
'Add a new row
dim objDataRow
set objDataRow = objDataClass.AddRow
'Set columns
objDataRow.SetField 0, objInfo.Caption
objDataRow.SetField 1, objInfo.Command
objDataRow.SetField 2, objInfo.Description
objDataRow.SetField 3, objInfo.Location
objDataRow.SetField 4, objInfo.Name
objDataRow.SetField 5, objInfo.SettingID
objDataRow.SetField 6, objInfo.User
objDataRow.SetField 6, objInfo.UserSID
Next
nse.SendQueued
#############################################################################################
Task
Custom Inventory
Select Report
#############################################################################################
select vc.Name as Hostname,
vc.[User],
vc.[OS Name], select vc.Name as Hostname,
vc.[User],
vc.[OS Name],
vc.[System Type],
ist.Caption,
ist.Command,
ist.Description,
ist.Location from inv_startup ist
JOIN vComputer vc on vc.Guid = ist._ResourceGuid
#############################################################################################