Understanding the Relationship Between the Hardware Inventory Agent and WMI

Understanding the relationship between the SMS Hardware Inventory Client Agent and WMI is important to understand the classes that must be defined in MOF extensions to hardware inventory. This understanding must be based on a knowledge of WMI. For an introduction to WMI, see Appendix B, "Window Management Instrumentation."

By default, the SMS Hardware Inventory Client Agent retrieves data from the WMI CIMv2 namespace. The agent does not retrieve all the data from the CIMv2 namespace. Instead, it retrieves specific data based on hardware inventory rules stored in the CCM\policy\machine\actualConfig namespace on the Advanced Client and the CIMv2\SMS namespace on the Legacy Client. The Advanced Client stores the rules as instances in the InventoryDataItem class. The Legacy Client stores the rules as qualifiers on classes that mirror the classes in the CIMv2 namespace.

The hardware inventory rules are defined in the SMS_def.mof file, as described in "Configuring Hardware Inventory Rules" section in Chapter 2, "Collecting Hardware and Software Inventory." The SMS_def.mof file provided on the SMS site server is automatically propagated to all SMS clients and automatically compiled on those clients. For Advanced Clients, the SMS_def.mof is changed into Advanced Client policy that is made available to the Advanced Clients. For Legacy Clients, the SMS_def.mof is propagated in its native form and compiled on the SMS clients. The compilation of SMS_def.mof places the hardware inventory rules in the SMS_def.mof into the CIMv2\SMS namespace.

The classes in the CIMv2 namespace are called data classes because they contain the data that the Hardware Inventory Client Agent collects. The instances in the Advanced Client CCM\policy\machine\actualConfig namespace are called reporting instances because those classes instruct the Hardware Inventory Client Agent as to which data classes and properties should be collected and then reported to the SMS site. The classes in the Legacy Client CIMv2\SMS namespace are called the reporting classes.

Figure 3.1 illustrates the relationships among the namespaces used by the Legacy Client hardware inventory agent.

Figure 3.1 The relationships among the SMS hardware inventory namespaces and the Legacy Client hardware inventory agent

ops_01_01c

Changes to the SMS_def.mof file are propagated to all SMS clients (both Advanced and Legacy Clients) by way of the normal Legacy Client maintenance components of SMS. When the Hardware Inventory Client Agent runs, it checks whether the SMS_def.mof file has changed on the Legacy Client. If so, it uses MOFComp.exe to compile the SMS_def.mof into the root\CIMv2\SMS namespace, under the SMS_Class superclass.

The Hardware Inventory Client Agent then scans the root\CIMv2\SMS namespace for classes that are flagged to be reported, and looks in the \root\CIMv2 namespace for classes with the same name. WMI provides the instances for those classes, often by using WMI Providers that work with the underlying systems, such as the operating system, to provide the data. If providers are not used to provide the data, the data is statically defined as instances for the classes. Statically defined instances are updated by scripts or programs, or by compiling MOF files.

Note

  • The Hardware Inventory Client Agent does not look for data classes in the \root\CIMv2 namespace in these two scenarios:

    • If the class has the SMS_Namespace qualifier set to true

    • If the Namespace qualifier has been used

  • Only Microsoft uses the SMS_Namespace qualifier. For more information about the Namespace qualifier, see the "Using MOF Extensions with Namespaces Other Than root\CIMv2" section later in this chapter.

The Hardware Inventory Client Agent compares the collected data with the data in the \root\CIMv2\SMS\Delta namespace to determine what data has changed and therefore should be reported. If a full inventory is requested, as with a resynchronization request, all the collected data is reported.

The inventory data is then provided to the Legacy Client's copy queue manager, which uploads the data to a client access point (CAP) at each of the client's assigned sites (if they have hardware inventory enabled). For the Advanced Client, inventory data is sent up the SMS hierarchy to the assigned management point.

For More Information

Did you find this information useful? Please send your suggestions and comments about the documentation to smsdocs@microsoft.com.