Basic MIF File Keywords

In an SMS site database, the inventory has a hierarchical structure. An architecture is the highest level in the SMS hierarchy, defining the structure for a set of objects. Each object is composed of one or more groups. Each group contains one or more attributes.

This hierarchy is reflected in the MIF file format. The following keywords are used in MIF files to describe computer components:

Architecture

A standard structure for describing a set of related objects in SMS. An architecture is defined by the Architecture group, which specifies a unique architecture name. For example, the Personal Computer architecture has a structure for describing Intel x86, Alpha, MIPS, and Macintosh-based computers.

Object

A specific item within a specific architecture. For example, a specific Macintosh computer (for example, Mac1) can be an object in the Personal Computer architecture. In a MIF file, an object is equivalent to a component block.

For a specific object, the attributes of its Identification group combine to form a unique identifier for the object. The Identification group for Personal Computer objects contains six attributes that are used to uniquely identify a computer.

Group

A structure for defining the distinct parts of an object. A group combines a set of attributes into a single, identifiable entity. For example, Processor, Network, and Operating System are some of the groups that exist on a computer with the Personal Computer architecture.

A group is identified by its class and keyed attributes. For a group class, each attribute's data type and size is set when that attribute is first reported to the SMS database.

In the Personal Computer architecture, groups can be used to store the properties of a hardware device (such as a COM port or mouse), a piece of software (such as the operating system or a defined software package), or any logical entity (such as asset or employee information through custom MIF files).

Attribute

A property of a group. For example, a Disk group on a computer has attributes such as Drive Index, Storage Type, Free Storage, and so on. Each attribute is assigned a value. For example, a Disk Index attribute is assigned a value such as A, B, C, and so on.

Object Syntax

An SMS object is a specific item that uses a specific architecture. For example, the SMS system uses the Personal Computer architecture to inventory computers as objects. An object contains groups. For SMS, an object must have an Identification group and an Architecture group.

An object definition within a MIF file starts with the line Start Component and ends with the line End Component. Within an object definition, you should have the following entry:

Name

A string (enclosed by quotation marks) that labels the object.

Example of an object definition:


Start Component
    Name = "EMPLOYEE"
    Start Group
        Name = "Architecture"
        ID = 1
        Class = "MICROSOFT|ARCHITECTURE|1.0"
        Start Attribute
            Name = "ArchitectureName"
            ID = 1
            Access = READ-ONLY
            Storage = SPECIFIC
            Type = String(10)
            Value = "Employee"
        End Attribute
    End Group
    Start Group
        Name = "Identification"
        ID = 2
        Class = "MICROSOFT|IDENTIFICATION|1.0"
        Start Attribute
            Name = "Employee Name"
            ID = 1
            Access = READ-ONLY
            Storage = SPECIFIC
            Type = String(32)
            Value = "Steven Andrew"
        End Attribute
    End Group
End Component

Group Syntax

A group is a set of one or more attributes. When the inventory for an object is displayed in the object's Properties window, all the groups for the object are displayed in the left pane. The attributes for the selected group are displayed in the right pane.

Objects (called Components in the DMTF structure) for every architecture must have an Identification group and an Architecture group.

A group starts with the line Start Group and ends with the line End Group. Within the group, specify the following entries:

Name

A string (enclosed by quotation marks) that labels the group. When the group is displayed in the Properties window, this string is used to label the group in the left pane.

ID

A number that identifies the group. The ID must be unique for each group within the object. The ID is an integer value. Group IDs must be 1 or greater.

Key

Applies only to multiple-instance groups. For example, an object such as a disk drive can have multiple instances on a computer. One or more keys are used to differentiate the instances. For example, the Disk Drive group has a key defined for the Drive Index attribute. The Key entry specifies one or more IDs for the attributes used to uniquely identify an instance of a group. If you have multiple keys, you must separate them with commas. If a group can have only a single instance, then no key should be defined.

Class

A required string describing the source of the group definition.

A group also contains one or more attributes.

Example of a group:


Start Group
    Name = "Employee Name"
    ID = 1
    Class = MICROSOFT|EMPLOYEE NAME|1.0
    Start Attribute
        Name = "Last Name"
        ID = 1
        Access = READ-ONLY
        Storage = SPECIFIC
        Type = String(32)
        Value = "Smith"
    End Attribute
    Start Attribute
        Name = "First Name"
        ID = 2
        Access = READ-ONLY
        Storage = SPECIFIC
        Type = String(32)
        Value = "John"
    End Attribute
End Group
Identification Group Syntax

Objects for every architecture must have an Identification group. The Identification group can have any number of attributes. However, you should ensure that all attributes are included in all objects that are part of a single custom architecture.


Start Group
    Name = "Identification"
    ID = 1
    Class = "MICROSOFT|IDENTIFICATION|1.0"
    Start Attribute
        Name = "Employee Name"
        ID = 1
        Access = READ-ONLY
        Storage = SPECIFIC
        Type = String(32)
        Value = "Mitch Duncan"
    End Attribute
End Group
Architecture Group Syntax

Objects for every architecture must also have an Architecture group. The Architecture group contains one attribute. The value of the ArchitectureName attribute should be the label you want to display for the architecture in the SMS Administrator. For example, when you view an object with a custom architecture named EMPLOYEE, the ArchitectureName attribute value EMPLOYEE is displayed in the Properties window title bar.


Start Group
    Name = "Architecture"
    ID = 1
    Class = "MICROSOFT|ARCHITECTURE|1.0"
    Start Attribute
        Name = "ArchitectureName"
        ID = 0
        Access = READ-ONLY
        Storage = SPECIFIC
        Type = String(10)
        Value = "Employee"
    End Attribute
End Group

Attribute Syntax

When the inventory for an object is displayed in the object's Properties window, all the groups for the object are displayed in the left pane. The attributes for the selected group are displayed in the right pane.

An attribute starts with the line Start Attribute and ends with the line End Attribute. Within the attribute, you should have the following entries:

Name

A string (enclosed by quotation marks) that labels the attribute. When the attribute is displayed in the Properties window, this string is used to label the attribute in the right pane.

ID

A number that identifies the attribute. The ID must be unique for each attribute within the group. The ID is an integer value.

Access

Determines the access type of the table where the attribute will be stored. Values can be READ-ONLY, READ-WRITE and WRITE-ONLY. The Access statement is optional and defaults to READ-ONLY.

Storage

Assists management applications to optimize storage requirements. Values can be common or specific. Common attributes are for properties that are likely to be common among many on most computers (for example, the processor name should be a common attribute). Specific attributes are for properties that are likely to have unique values on most computers (for example, the amount of free disk space should be a specific attribute). The Storage statement is optional.

Type

The data type used to store the value of the attribute. There are two data types. Counter is an integer. String is a character string. For strings you must specify the maximum length for the string.

The SQL Server database has a limit of 255 characters for any attribute value. Any string longer than 255 characters will be truncated. In addition, any values longer than the originally defined length will be silently truncated. For example, if attribute Employee Name is defined as string(40), SMS will add only the first 40 characters for an Employee Name value that is longer than 40 characters.

The SMS system uses the first definition of type. For example, if you first defined Employee Name as string(40), the SMS system will always use that type. You cannot change the Type after you have first defined it.

Value

The value assigned to the attribute. The value must be in the form specified by Type. Strings must be enclosed within quotation marks. Counters must be decimal integers. The Value statement is optional.

Example of an attribute definition:


Start Attribute
    Name = "Hours Worked"
    ID = 1
    Access = READ-ONLY
    Storage = SPECIFIC
    Type = Counter
    Value = 500
End Attribute