Quantcast
Viewing all articles
Browse latest Browse all 2021

Convert this NS6 custom inventory to NS7

I need a solution

Need some help guys..

I have converted most of our custom inventories over as they were simple re reads and the sort.. this one has me stumped though.

any help greatly appreciated

Old inventory...

'==========================================================================
' COMMENT: This script obtains all accounts and groups, along with
'   listing what types those are (user or group), that are members 
'   any local group on the machine it is run on.
'   It outputs the data to an Altiris inventory file format (.nsi).
'
'==========================================================================
strClassName = "Aex OS Local Groups"
strFileName = "C:\Program Files\Altiris\eXpress\Inventory\LocalGroups.nsi"
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objTextFile = objFSO.OpenTextFile(strFileName, 2, True)
 
set filesys=CreateObject("Scripting.FileSystemObject") 
If filesys.FileExists("C:\Program Files\Altiris\eXpress\Inventory\LocalGroups.bak") Then
filesys.DeleteFile "C:\Program Files\Altiris\eXpress\Inventory\LocalGroups.bak"
End If
 
 
objTextFile.WriteLine("<InventoryClasses>")
objTextFile.WriteLine("  <InventoryClass name='" + strClassName + "' manufacturer='Altiris' description='' version='' platform='Win32' mifClass='Altiris|LOCALGROUPS|1.0'>")
objTextFile.WriteLine("    <xml xmlns:s=""uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"" xmlns:dt=""uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"" xmlns:rs=""urn:schemas-microsoft-com:rowset"" xmlns:z=""#RowsetSchema"">")
objTextFile.WriteLine("      <s:Schema id=""RowsetSchema"">")
objTextFile.WriteLine("        <s:ElementType name=""row"" content=""eltOnly"" rs:updatable=""true"">")
objTextFile.WriteLine("          <s:AttributeType name=""c0"" rs:name=""GroupName"" rs:number=""1"" rs:keycolumn=""false"" mifAttrId='1'>")
objTextFile.WriteLine("            <s:datatype dt:type=""string"" dt:maxLength=""255""/>")
objTextFile.WriteLine("          </s:AttributeType>")
objTextFile.WriteLine("          <s:AttributeType name=""c1"" rs:name=""Class"" rs:number=""2"" rs:keycolumn=""false"" mifAttrId='2'>")
objTextFile.WriteLine("            <s:datatype dt:type=""string"" dt:maxLength=""255""/>")
objTextFile.WriteLine("          </s:AttributeType>")
objTextFile.WriteLine("          <s:AttributeType name=""c2"" rs:name=""Domain"" rs:number=""3"" rs:keycolumn=""false"" mifAttrId='3'>")
objTextFile.WriteLine("            <s:datatype dt:type=""string"" dt:maxLength=""255""/>")
objTextFile.WriteLine("          </s:AttributeType>")
objTextFile.WriteLine("          <s:AttributeType name=""c3"" rs:name=""Account"" rs:number=""4"" rs:keycolumn=""false"" mifAttrId='4'>")
objTextFile.WriteLine("            <s:datatype dt:type=""string"" dt:maxLength=""255""/>")
objTextFile.WriteLine("          </s:AttributeType>")
objTextFile.WriteLine("        </s:ElementType>")
objTextFile.WriteLine("      </s:Schema>")
objTextFile.WriteLine("      <rs:data>")
 
strComputer = "."
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
Set Groups = wmi.ExecQuery("Select * from Win32_Group  Where LocalAccount = True")
 
For Each group in Groups
Set colGroups = GetObject("WinNT://" & strComputer & "/" & group.Name)
  For Each objUser In colGroups.Members
       sUserName = objUser.Name
       sUserType = objUser.Class
       sDomain = Mid(objUser.AdsPath, 9)
       If InStr(1, sDomain, "/") > 0 then
sDomain = Mid(sDomain, 1, InStr(1, sDomain, "/")-1)
End If
  strOut =    "<z:row c0='" & ToXMLString(group.Name)& "'"
       strOut = strOut & " c1='" & ToXMLString(sUserType)& "'"
       strOut = strOut & " c2='" & ToXMLString(sDomain)& "'"
       strOut = strOut & " c3='" & ToXMLString(sUserName)& "'/>"
 
objTextFile.WriteLine(strOut)
  Next
Next
 
Function ToXMLString (strInput)
  Dim strOutput
  If (isNull(strInput)) Then
     ToXMLString = strInput
  Else
     strOutput = Replace(strInput, "&", "&amp;")
     strOutput = Replace(strOutput, """", "&quot;")
     strOutput = Replace(strOutput, "<", "&lt;")
     strOutput = Replace(strOutput, ">", "&gt;")
     ToXMLString = Replace(strOutput, "'", "&#39;")
  End If
End Function
 
objTextFile.WriteLine("      </rs:data>")
objTextFile.WriteLine("    </xml>")
objTextFile.WriteLine("  </InventoryClass>")
objTextFile.WriteLine("</InventoryClasses>")
objTextFile.close
 

Viewing all articles
Browse latest Browse all 2021

Trending Articles