Customizing with IDMIF Files

You can use IDMIF files to create entire new architectures in the SMS site database, or to update existing architectures. They can also be used to add stand-alone computers to the SMS site database. IDMIF files are also frequently used to inventory non-system items.

For example, Wide World Importers’ network planners want to keep information about the geographical location of each computer within the SMS site database, so that administrators can easily find the computer when hands-on maintenance is required. To do so, they add a new architecture called Office to the SMS site database, that includes all the information about the location of the office. They decide to include other information about the office that might be useful when moves are planned or for keeping track of space within the organization.

After they add the Office architecture to the SMS site database, Wide World Importers’ administrators create an instance of this architecture for each office within the organization. Then they add a new class to the SMS site database record for each computer and call it Office Location (this class is described in “Adding a Group to an Existing NOIDMIF File” earlier in this chapter.) The Current Location attribute holds the identifier for some instance of the Office architecture. After these structures are created and populated, whenever administrators discover some hardware problem remotely, they can easily retrieve information about where to find the hardware with the problem. An added benefit is that they can use SMS queries and reports to gather information about the organization’s space, as well as the hardware and software deployed in each office.

Following is an example of a custom IDMIF file created by Wide World Importers to catalog their office space. This IDMIF file creates an architecture called Office.

/AgentID<Admin John>//Architecture<Office>    //UniqueID<Bldg26Floor26Room2626>Start Component      Name = "Office"      Start Group          Name = "Office"          ID = 1          Class = "Office"           Key = 1  Start Attribute               Name = "Office Address"               ID = 1               Type = String(50)               Value = "2626 3rd St.,  Redmond, WA"          End Attribute          Start Attribute               Name = "Directions"               ID = 2               Type = String(200)            Value = "From Interstate 90, take exit 26, turn right at the light, turn into docking bay 26"          End Attribute     End Group          
     Start Group           Name = "Dimensions"          ID = 2          Class = "Dimensions"          Start Attribute               Name = "Length in Feet"               ID = 1               Type = Integer               Value = 300          End Attribute          Start Attribute               Name = "Width in Feet"               ID = 2               Type = Integer               Value = 400          End Attribute          Start Attribute               Name = "Front Window"               ID = 3               Type = String(32)               Value = "No"         End Attribute         Start Attribute               Name = "Number of Computers"               ID = 4               Type = Integer               Value = 26          End Attribute     End Group          Start Group           Name = "Computer1"          ID = 3          Class = "Equipment"           Key = 1          Start Attribute               Name = "GUID"               ID = 1               Type = String(50)               Value = "GUID:JJJ-26-27543-TKPLKD"          End Attribute          Start Attribute               Name = "NETBIOS Name"               ID = 2               Type = String(32)               Value = "PrintServer26"          End Attribute
          Start Attribute               Name = "Serial Number"               ID = 3               Type = String(50)               Value = "AAA-885764-DGTFSR"          End Attribute     End GroupStart Group          Name = "Computer2"          ID = 4          Class = "Equipment"          Key = 1          Start Attribute               Name = "Computer2"               ID = 1               Type = String(45)               Value = "GUID:CCC-26-34573-EDSRFD"         End Attribute         Start Attribute               Name = "NETBIOS Name"               ID = 2               Type = String(32)               Value = "FileServer26"          End Attribute          Start Attribute               Name = "Serial Number"               ID = 3               Type = String(50)               Value = "BBB-467588-XYZYTW"          End Attribute     End Group          End Component

IDMIF files are identical to NOIDMIF files in most ways, with the following exceptions:

After you create an IDMIF file, you must place the IDMIF file in the IDMIF target directory on the client:

%Windir%\MS\SMS\Idmifs

On clients, the Hardware Inventory Client Agent copies IDMIF files directly, unchanged, through the CAP to the primary site server on the next scheduled inventory cycle. When you customize hardware inventory by using an IDMIF file, the information is entered into the SMS site database immediately.

You can create, modify, and delete IDMIF files by using the procedures described in “Customizing with NOIDMIF Files” earlier in this chapter. Then, make sure that you have a top-level group and add the required IDMIF file header as described in the following section.

After you create IDMIF files, note that they are processed differently than NOIDMIF files. While NOIDMIF files must be left in the target directory on the client in order to remain in the SMS site database, data from IDMIF files persists after they are created. You can add an IDMIF file instance by creating the MIF file (as described in “Creating an Attribute by Using a NOIDMIF File” earlier in this chapter), adding a delta header, and then placing the file in the following directory on the client:

%Windir%\MS\SMS\Idmifs