Ok doing some searching and modifying some scripts and adding in the altiris specific NSE creation I did get a script to work. I know my values are only REG_SZ or REG_DWORD, so I ignore anything else found in the hive.
I still have to add error handling in case the registry hive doesn't exist but this script does what I need and populates a dataclass for the pc with multiple rows for each value/data combo in the registry hive.
'Custom Inventory Script to grab a registry hive and inventory all String and DWord
const HKEY_LOCAL_MACHINE = &H80000002
const REG_SZ = 1
const REG_EXPAND_SZ = 2
const REG_BINARY = 3
const REG_DWORD = 4
const REG_MULTI_SZ = 7
'Create instance of Altiris NSE component
dim nse
set nse = WScript.CreateObject ("Altiris.AeXNSEvent")
' Set the header data of the NSE
' Please dont 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
'User your custom data class GUID here
set objDCInstance = nse.AddDataClass ("{5137607c-a7b7-4996-b5d7-b1b814bcecf4}")
dim objDataClass
set objDataClass = nse.AddDataBlock (objDCInstance)
'Get Registry Values
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\MyKey"
oReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath,_
arrValueNames, arrValueTypes
For i=0 To UBound(arrValueNames)
Select Case arrValueTypes(i)
Case REG_SZ
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,arrValueNames(i),strValue
'Add Row to the NSE and Set the Columns
dim objDataRow
set objDataRow = objDataClass.AddRow
objDataRow.SetField 0, arrValueNames(i)
objDataRow.SetField 1, strValue
Case REG_EXPAND_SZ
' Do Nothing
Case REG_BINARY
' Do Nothing
Case REG_DWORD
oReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,arrValueNames(i), uValue
'Add Row to the NSE and Set the Columns
dim objDataRow
set objDataRow = objDataClass.AddRow
objDataRow.SetField 0, arrValueNames(i)
objDataRow.SetField 1, Cstr(uValue)
Case REG_MULTI_SZ
' Do Nothing
End Select
Next
'Send the NSE
nse.SendQueued