Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This article describes a method to distinguish between different templates created for the various third party asset inventory tools and . It also provides guidelines for identifying the source or origin of discovery data imported using the ServiceAide Serviceaide Asset Converter. Examples of the various sources or origins might include Microsoft Systems Management Server (SMS) 2003, Microsoft System Center Configuration Manager (SCCM) 2007, Altiris Inventory Solution, BMC Configuration Management (formerly Marimba), LANDesk Inventory Manager, Tivoli Asset Management or BDNA Insight. Within various tools, there is often more than one method used for software inventory. An example is Microsoft SCCM Add/Remove Programs or Asset Intelligence.

The source or origin of discovered assets is tracked by the ServiceAide Serviceaide ITCM/SCM Content Team and is also displayed in ServiceAide Serviceaide IT Client Manager and in ServiceAide Serviceaide Software Compliance Manager. Further, additional planned functionality in SwCM depends on the source or origin of asset inventory data. It is also important to identify the source of inventory data in a consistent manner. 

...

If you are creating a template that you think can be shared, please share your Origin value with Service Management Swat so we can get it registered and posted (this document will be updated with the location of the registered Original values). This will help to ensure that Original values remain unique and consistent and to make the ServiceAide Serviceaide ITCM/SCM Content Team aware of new sources.

...

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<!--
Asset Converter Mapping Template for Microsoft SCCM 2007 an on.
(Based on the OOTB Provided SMS template sample)
This Mapping template for MS-SCCM 2007. The big difference from the standard product "Asset Converter for Microsoft SMS" is that the Software Inventory is read from the Asset Intelligence data area
Version     : 0.9.1    
Author      : KimUsername Rasmussen (RASKI02) CA-Swat
Serviceaide
Date        : 20-aug-2009          
Tested on   : SCCM 2007 SP1  (4.00.6221.1000)
History     : 0.9.0 : First version
              0.9.1 : (RASKI02) Added CPU Count
→
<asset-converter>
      <datasource type="DataBase">

...

You need not to include the Origin value in this section as it is already included in the General section described above (see 2.1Origin and Trust level). When the information is converted and collected, the Asset Converter section could look like this in the DSM Explorer.

Image RemovedImage Added

NOTE: This section is not for general comments like “This is a SCCM Template”. You should only put comment that can be used to distinguish between two templates with the same name and data; for example, a delta template (see Delta Scans) . To summarize, Origin, Filename, and Version, describe the data. Comments should describe any extra filtering or similar information valuable for understanding the date.

...

It is recommended that you provide as much information as possible in the General section.

Image RemovedImage Added

The serial number that is displayed in the Overview page, on the Home tab, is defaulted from the internal table that is part of the registration and not from the system-> serial number.

...

<?xml version="1.0"

import Altiris. All XML files you create, and the sample XML code used in this document must be well-formed and comply with XML and XSD standards.

Datasource type: 

Enter datasource type "DataBase or database".

Note: The Datasource tag has subtypes and connection properties tags.

Subtype:

Each database is assigned a predefined numeral as a unique code. The CA Asset Converter identifies a particular database on the associated codes and loads the property names required for the connection to the database. You can use any of the following codes:

  • 12 (MYSQL)
  • 10 (SQLSERVER)  


Appendix A: Example

This section shows a full example of an Altiris Template build based on the recommendations from the document. You can create a mapping file for a database and define the following mapping file parameters:

NOTE: This is only an example if you need to du an Altiris import:

Code Block
Code Block
<?xml version="1.0" encoding="UTF-8"?>
<!--
Asset Converter Mapping Template for Altiris

This Mapping template for Altiris, using the AeX inventory tables both for Hardware and 
Software Inventory.
NOTE The Software Product name is the "Known as Name" Not the Product name. 


Version	    : 1.0.2		
Author	    : Kim Rasmussen Ca-SwatUsername Serviceaide
Date	      : 22-oct-2009 		
Tested on   : Altiris 6.0.6074 		

History     : 1.0.0 : First version 
              1.0.1 : Added additional Total Memory and Serial number fields for viewing in the Overview
              1.0.2 : Changet the MAC Address format to use ':' as delimiters instead of '-'
-->

<asset-converter>
	<datasource type="DataBase">
		<subtype>10</subtype>
		<connection-properties>
			<property name="server">servername</property>
			<property name="database">Altiris</property>
			<property name="username">sa</property>
			<property name="port">1433</property>
			<property name="password">password</property>
			<property name="integratedsecurity">false</property>
		</connection-properties>

	</datasource>
-->
 <asset - converter>   
          <datasource type="DataBase">
                  <subtype>12</subtype>
                  <connection-properties>
                          <property name="server">servername</property>
                          <property name="database">Altiris</property>
                          <property name="username">sa</property> 
                          <property name="port">3306</property>
                          <property name="password">password</property>
                          <property name="integratedsecurity">false</property> 
               </connection-properties>

       </datasource>

	<output-settings>
		<dest-dir value="Altiris_assets"/>
		<output-filename value="Alt" host-name="true"/>
	</output-settings>
	<asset query="select _ResourceGuid AS GUID  from Inv_AeX_AC_Discovery" translator="ACBsFmt" version="1_0">
		<general query="select id.Name,REPLACE(tcp.[MAC Address],'-',':') AS MACAddress,tcp.[IP Address], id.[OS Name] as OSName, ISNULL(SN.[Serial Number],'') AS SNumb from inv_aex_ac_tcpip tcp,inv_aex_ac_identification id left outer Join Inv_AeX_HW_Serial_Number AS SN on SN._ResourceGUID=id._ResourceGUID where tcp._ResourceGuid = id._ResourceGuid and id._ResourceGuid = '{asset.Guid}'">
			<host_name  value="{general.Name}"/>
			<default_hostname  value="{general.Name}"/>
			<default_address value="{general.IP Address}"/>
			<default_mac value="{general.MACAddress}"/>
			<serial_number value="{general.SNumb}"/>
			<class_id value="{general.OSName}"/>
			<origin value="Altiris"/>
			<trustlevel value="4"/>
	      	</general>
		<hardware>
		<group name="AdditionalInventory">
                	<group name="Asset Coverter">
         			<attribute name="Name" value="Altiris.xml" type="string"/>
         			<attribute name="Version" value="1.0.2" type="string"/>
        	 		<attribute name="Comment" value="" type="string"/>
	        	</group>
         	</group>

	      	<group name="GeneralInventory">
	        	<group name="System" query="select ID.Name, case when SN.[Asset Tag]='Data not accessible' then '' else SN.[Asset Tag] end AS AssetTag, SN.[System Manufacturer] AS Vendor, SN.[Computer Model] AS Model, SN.[Serial Number] AS SNumb, CPU.Number as CPUCnt, CPU.Cores as CPUCores, convert(bigint,[Total Physical Memory (MB)]*1024)*convert(bigint,1024) as TotMem from inv_aex_ac_identification AS ID Inner Join Inv_AeX_HW_Serial_Number AS SN on SN._ResourceGUID=ID._ResourceGUID inner join Inv_AeX_HW_CPU_spt CPU on CPU._ResourceGUID=ID._ResourceGUID inner join Inv_AeX_HW_Memory as mem ON mem._ResourceGuid = id._ResourceGuid WHERE ID._ResourceGuid = '{asset.Guid}' ">
  				<attribute name="Hostname" type="string" value="{group(name='System').Name}"/>
	      	    		<attribute name="Asset Tag" type="string" value="{group(name='System').AssetTag}"/>
				<attribute name="Vendor" type="string" value="{group(name='System').Vendor}"/>
	         		<attribute name="Model" type="string" value="{group(name='System').Model}"/>
        	 		<attribute name="Serial Number" type="string" value="{group(name='System').SNumb}"/>
        	 		<attribute name="No. of Processors" type="int32" value="{group(name='System').CPUCnt}"/>
        	 		<attribute name="No. of Cores" type="string" value="{group(name='System').CPUCores}"/>
	                        <attribute name="Total Memory" type="int64" subtype="M" value="{group(name='System').TotMem}"/>
				<group name="Processors" query="select CPU._ResourceGUID, CPUDes.Type, CPUDes.Speed from Cmn_HW_CPU_Common CPUDES inner JOIN dbo.Inv_AeX_HW_CPU_spt AS CPU on CPU._KeyHash=CPUDES._KeyHash WHERE CPU._ResourceGuid = '{asset.Guid}'"> 
	    			      <attribute name="Speed" type="int32" value="{group(name='Processors').speed}"/>
				      <attribute name="Type" type="string" value="{group(name='Processors').type}"/>
                	      	</group>
                        	<group name="Memory" query="SELECT convert(bigint,[Total Physical Memory (MB)]*1024)*convert(bigint,1024) as TotMem FROM Inv_AeX_HW_Memory WHERE _ResourceGuid = '{asset.Guid}'"> 
	                              <attribute name="Physical Memory" type="int64" subtype="M" value="{group(name='Memory').TotMem}"/>
                	      	</group>
				<group name="System BIOS" query="SELECT [BIOS Vendor] AS Vendor, [BIOS Version] AS Ver, [BIOS Release Date] AS BDate FROM Inv_AeX_HW_BIOS WHERE _ResourceGuid = '{asset.Guid}'"> 
	                              <attribute name="Vendor" type="string" value="{group(name='System BIOS').Vendor}"/>
    				      <attribute name="Version" type="string" value="{group(name='System BIOS').Ver}"/>
 				      <attribute name="Install Date" type="string" value="{group(name='System BIOS').bdate}"/> 	
                      		</group>
			</group>

 			<group name="Network" query="select ID.Name, ID.Domain from inv_aex_ac_identification AS ID WHERE ID._ResourceGuid = '{asset.Guid}' ">
         			<attribute name="Computer Name" type="string" value="{group(name='Network').Name}"/>
         			<attribute name="Domain Name" type="string" value="{group(name='Network').Domain}"/>
         	 		         		
         			<group name="TCP/IP" query="SELECT REPLACE([MAC Address],'-',':') AS MACAddress, [IP Address] AS IPAddress, [Subnet Mask] AS SubNetMask, [Default Gateway] AS DefaultGateway, Subnet, DHCPEnabled, [DHCP Server] AS DHCPServer, Device, [Host Name] AS HostName, [Primary DNS Suffix] AS DNSDomain, [WINS Proxy Enabled] AS WINS, [DNS Server 1] AS DNS1, [DNS Server 2] AS DNS2, [Primary WINS Server] AS PrimWINS, [Secondary WINS Server] AS SecWINS FROM Inv_AeX_AC_TCPIP WHERE _ResourceGuid = '{asset.Guid}'">
         				<attribute name="MAC Address" type="string" value="{group(name='TCP/IP').MACAddress}"/>
         				<attribute name="IP Address" type="string" value="{group(name='TCP/IP').IPAddress}"/>
         				<attribute name="Subnet Mask" type="string" value="{group(name='TCP/IP').SubnetMask}"/>
         				<attribute name="Default Gateway" type="string" value="{group(name='TCP/IP').DefaultGateway}"/>         			
         				<attribute name="Subnet" type="string" value="{group(name='TCP/IP').Subnet}"/>
         				<attribute name="DHCP" type="boolean" subtype="normal" value="{group(name='TCP/IP').DHCPEnabled}"/>
         				<attribute name="DHCP Server" type="string" value="{group(name='TCP/IP').DHCPServer}"/>         			         			
         				<attribute name="Device Name" type="string" value="{group(name='TCP/IP').Device}"/>         			         			
         				<attribute name="Host Name" type="string" value="{group(name='TCP/IP').HostName}"/>         			         			
         				<attribute name="Domain" type="string" value="{group(name='TCP/IP').DNSDomain}"/>         			         			
         				<attribute name="WINS" type="string" value="{group(name='TCP/IP').WINS}"/>         			         			
         				<attribute name="Domain Name Server" type="string" value="{group(name='TCP/IP').DNS1}, {group(name='TCP/IP').DNS2}"/>         			         			
         				<attribute name="Primary WINS Server" type="string" value="{group(name='TCP/IP').PrimWINS}"/>         			         			
         				<attribute name="Secundary WINS Server" type="string" value="{group(name='TCP/IP').SecWINS}"/>         			         			     			         			
         			</group>
         		</group>
         		<group name="System Devices">
	         		<group name="Sound Adapter" query="SELECT  CMN.Description, CMN.Class, CMN.Type, CMN.Manufacturer, CMN.Enumeration FROM Inv_AeX_OS_System_Devices_spt AS INV INNER JOIN Cmn_OS_System_Devices_Common AS CMN ON CMN._KeyHash = INV._KeyHash WHERE INV._ResourceGuid = '{asset.Guid}' AND CMN.Enumeration = 'ISAPNP'">
         				<attribute name="Model" type="string" value="{group(name='Sound Adapter').Type}"/>
         				<attribute name="Vendor" type="string"  value="{group(name='Sound Adapter').Manufacturer}"/>         			
	         		</group>
				<group name="Video Adapters" query="SELECT CMN.Description, CMN.Drivers, INV.[Video RAM] AS VideoRam FROM Inv_AeX_HW_Video_spt AS INV INNER JOIN Cmn_HW_Video_Common AS CMN ON CMN._KeyHash = INV._KeyHash WHERE INV._ResourceGuid = '{asset.Guid}'">
					<attribute name="Model" type="string" value="{group(name='Video Adapters').Description}"/>
					<attribute name="Driver" type="string" value="{group(name='Video Adapters').Drivers}"/>
					<attribute name="Memory Size" type="int32" subtype="K" value="{group(name='Video Adapters').VideoRam}"/>
         			</group>         		
				<group name="Network Adapter" query="SELECT Device, [MAC Address] AS MACAddress FROM Inv_AeX_AC_TCPIP WHERE _ResourceGuid = '{asset.Guid}'">
					<attribute name="Model" type="string" value="{group(name='Network Adapter').Device}"/>
					<attribute name="MAC Address" type="string" value="{group(name='Network Adapter').MACAddress}"/>
				</group>
         			<group name="PCI Adapters" query="SELECT  CMN.Description, CMN.Class, CMN.Type, CMN.Manufacturer, CMN.Enumeration FROM Inv_AeX_OS_System_Devices_spt AS INV INNER JOIN Cmn_OS_System_Devices_Common AS CMN ON CMN._KeyHash = INV._KeyHash WHERE INV._ResourceGuid = '{asset.Guid}' AND CMN.Enumeration = 'PCI'">
         				<attribute name="Model" type="string" value="{group(name='PCI Adapters').Description}"/>
         				<attribute name="Vendor" type="string"  value="{group(name='PCI Adapters').Manufacturer}"/>        			         			
         			</group>
         			<group name="USB Controller" query="SELECT  CMN.Description, CMN.Class, CMN.Type, CMN.Manufacturer, CMN.Enumeration FROM Inv_AeX_OS_System_Devices_spt AS INV INNER JOIN Cmn_OS_System_Devices_Common AS CMN ON CMN._KeyHash = INV._KeyHash WHERE INV._ResourceGuid = '{asset.Guid}' AND CMN.Enumeration = 'USB'">
         				<attribute name="Model" type="string" value="{group(name='USB Controller').Description}"/>
         				<attribute name="Vendor" type="string"  value="{group(name='USB Controller').Manufacturer}"/>
         			</group>
         		</group>
 			<group name="Operating System" query="SELECT OS.[Service Pack] SP, OS.[Install Path] AS InstallPath, OS.Architecture, OSDesc.[OS Name] AS OSName, OSDesc.Version, OSDesc.[Product ID] ProdID, OSDesc.Build FROM Inv_AeX_OS_Operating_System_spt AS OS INNER JOIN Cmn_OS_Operating_System_Common AS OSDesc ON OS._KeyHash = OSDesc._KeyHash WHERE OS._ResourceGuid = '{asset.Guid}'">
				<attribute name="Operating System" type="string" value="{group(name='Operating System').OSName}"/>
				<attribute name="Version" type="string" value="{group(name='Operating System').Version}"/>
				<attribute name="Service Pack" type="string" value="{group(name='Operating System').SP}"/>
	         	</group>
	         	<group name="File System">
        	 		<group name="Local File System" query="SELECT [Device ID] AS Drive, Name, [Volume Name] AS Volume, Description, [File System] AS FileSystem, convert(bigint,[Free Space in MBytes]*1024)*convert(bigint,1024) AS Free, CASE WHEN [Size in MBytes] > 0 THEN ([Size in MBytes] - [Free Space in MBytes]) * 100 / [Size in MBytes] ELSE 0 END AS used_percent, convert(bigint,[Size in MBytes]*1024)*convert(bigint,1024) AS Size, [System Name] AS SysName, [Volume SerialNumber] AS SerialNumber FROM Inv_AeX_HW_Logical_Disk WHERE _ResourceGuid = '{asset.Guid}'">
					<attribute name="Mount Point" type="string" value="{group(name='Local File System').Drive}"/>
					<attribute name="Name" type="string" value="{group(name='Local File System').Name}"/>
					<attribute name="Volume Label" type="string" value="{group(name='Local File System').Volume}"/>
					<attribute name="Type" type="string" value="{group(name='Local File System').Description}"/>
					<attribute name="File System" type="string" value="{group(name='Local File System').FileSystem}"/>
					<attribute name="Free" type="int64" subtype="byte" value="{group(name='Local File System').Free}"/>
					<attribute name="Used %" type="int32"  value="{group(name='Local File System').used_percent}"/>
					<attribute name="Size" type="int64" subtype="byte" value="{group(name='Local File System').Size}"/>
					<attribute name="Serial Number" type="string" value="{group(name='Local File System').SerialNumber}"/>
         			</group>
	         	</group>
	         	<group name="Storage">
        	 		<group name="Fixed Drives" query="SELECT Name, Description, convert(bigint,[Size (MB)]*1024)*convert(bigint,1024) AS Size, [Number Of Cylinders] AS Cyl, [Bytes per Sector] AS BytePrSec, [Sectors per Track] AS SecPrTrack, [Tracks per Cylinder] AS TrackPrCyl, [Drive Letters] AS Letter, [System Drive] AS Drive FROM Inv_AeX_HW_Physical_Disk WHERE _ResourceGuid = '{asset.Guid}'">
         				<attribute name="Device" type="string" value="{group(name='Fixed Drives').Name}"/>
         				<attribute name="Model" type="string" value="{group(name='Fixed Drives').Description}"/>
         				<attribute name="Size" type="int64" subtype="byte" value="{group(name='Fixed Drives').Size}"/>
         				<attribute name="Cylinder" type="int32" value="{group(name='Fixed Drives').Cyl}"/>
         				<attribute name="Bytes Per Sector" type="int32" value="{group(name='Fixed Drives').BytePrSec}"/>
         				<attribute name="Sectors Per Track" type="int32" value="{group(name='Fixed Drives').SecPrTrack}"/>
         				<attribute name="Track Per Cylinders" type="int32" value="{group(name='Fixed Drives').TrackPrCylSize}"/>
         				<attribute name="Drive" type="string" subtype="string" value="{group(name='Fixed Drives').Drive}"/>
	         		</group>
				<group name="CD-Rom Drives" query="SELECT  CMN.Description, CMN.Class, CMN.Type, CMN.Manufacturer, CMN.Enumeration FROM Inv_AeX_OS_System_Devices_spt AS INV INNER JOIN Cmn_OS_System_Devices_Common AS CMN ON CMN._KeyHash = INV._KeyHash WHERE INV._ResourceGuid = '{asset.Guid}' AND CMN.Description LIKE '%CD-ROM%'">
         				<attribute name="Model" type="string" value="{group(name='CD-Rom Drives').Type}"/>
         				<attribute name="Vendor" type="string"  value="{group(name='CD-Rom Drives').Manufacturer}"/>
         			</group>
         		</group>
 	      	</group>
	      	</hardware>
  	<software>
  		<package name="{package.KnownAs}" query="SELECT INV.[File Path] AS FilePath, SW.Manufacturer, SW.ProductName, SW.ProductVersion, SW.[File Name] AS FileName, SW.KnownAs FROM Inv_AeX_SW_Audit_Software_spt AS INV INNER JOIN Cmn_SW_Common AS SW ON INV._KeyHash = SW._KeyHash WHERE INV._ResourceGuid = '{asset.Guid}' AND LTRIM(RTRIM(SW.KnownAs)) != '(null)'">
       	<attribute name="Ver" type="string" value="{package.ProductVersion}"/>
  		  <attribute name="Pub" type="string" value="{package.Manufacturer}"/>
  			<attribute name="Path" type="string" value="{package.FilePath}" />
  			<attribute name="FileName" type="string" value="{package.FileName}" />
  		</package>
  	</software> 	
  </asset>
</asset-converter>


...