Hardware and Software Inventory

The SMS inventory feature inventories data from the site's clients. The inventory feature refers to both the hardware inventory and the software inventory features.

The SMS hardware inventory feature automatically collects detailed information about the hardware characteristics of clients in an SMS hierarchy. By using this feature, you can collect a wide variety of information about client computers such as memory, operating system, peripherals, services, and processes that are running on the client computer.

The hardware inventory feature collects data from client computers by querying several data stores on client computers such as the registry and the Windows Management Instrumentation (WMI) classes. Hardware inventory does not query for all possible WMI classes, but it does provide approximately 1,500 hardware properties that include data such as the device ID of a tape drive, the manufacturer of a CD-ROM drive, the current size of the registry, and the primary partition of a disk.

By using hardware inventory, you can also collect basic information about client software. You can collect information about the applications listed in Add or Remove Programs in Control Panel. By using software inventory, you can collect a significantly larger amount of information about client's software.

The software inventory feature collects detailed file information, and can copy files, from clients in an SMS site to the site server. By using software inventory, you can gather information such as file size, file date, file path, and the name of the product that a file is part of. Software inventory can also store copies of client files at the site server, so that you can view these files later.

SMS can collect a comprehensive inventory that includes all the information about all the files from all the client's hard disk drives, it can collect information from a narrow set of files, or it can collect information from a single file. You can restrict the file information that is collected to certain details, and you can restrict the inventory collection to specific file names or specific file extensions by using wildcards and environment variables. You can further narrow the inventory collection by excluding specific disk drives, specific directories, and compressed or encrypted files.

Hardware and software inventory provide the same functionality on the Advanced Client and on the Legacy Client.

On This Page

How Hardware Inventory and Software Inventory Work
Hardware Inventory and Software Inventory Throughout the Site Hierarchy
Benefits of Hardware Inventory
Benefits of Software Inventory

How Hardware Inventory and Software Inventory Work

You can enable or disable hardware inventory or the software inventory for an SMS site. When either feature is enabled for the site, you can configure it to accommodate your organization's requirements.

When you enable and configure hardware inventory or software inventory at the primary site, SMS installs the appropriate client agent components on all Legacy Clients in the site (these components are preinstalled on Advanced Clients) and starts to collect inventory according to the specified schedule. The Hardware Inventory Agent and the Software Inventory Agent run on Legacy Clients. The Inventory Agent runs on Advanced Clients. These client agents primarily collect data from the client computers. They also perform other inventory-related tasks on clients.

Hardware inventory is configured by using the file SMS_def.mof, which includes the hardware attributes that are collected by SMS. Administrators can customize the SMS_def.mof file so that SMS collects the hardware attributes that are needed by the organization. This file is stored in the \SMS\Inboxes\Clifiles.src\Hinv directory on site servers, at the site's database, and in an up-to-date copy of the file that is stored on the site's Legacy Clients.

SMS uses the SMS_def.mof file that is stored in the SMS site database to create the appropriate Advanced Client policy for Advanced Clients. Advanced Clients retrieve from management points Advanced Client policies, which were sent from the site server. Advanced Client policies contain site configuration information and other information that Advanced Clients need.

  • When the Hardware Inventory Client Agent runs on the Legacy Clients to collect inventory, it reads the SMS_def.mof file and collects only the attributes that are enabled in the SMS_def.mof file.

  • When the Inventory Client Agent runs on Advanced Clients, it uses the Advanced Client policy (that was generated based on the SMS_def.mof file) to collect only the attributes that are enabled in the SMS_def.mof file.

Software inventory uses inventory rules to determine what inventory data needs to be collected. Administrators can customize software inventory rules, so SMS collects software information needed by the organization.

SMS uses these inventory rules to create the appropriate Advanced Client policy for Advanced Clients. The Software Inventory Client Agent is configured by using these inventory rules. When the Software Inventory Client Agent runs on Legacy Clients, it uses the inventory rules to collect only the requested inventory data. When the Inventory Client Agent runs on Advanced Clients, it uses the Advanced Client policy to collect only the requested inventory data.

During the collection of inventory data on the client, SMS creates an inventory data file, in which the inventory agents store the collected data. The inventory data file and copies of any collected files are sent from Legacy Clients to a client access point (CAP) and from Advanced Clients to a management point, and then to the primary site server. At the primary site server, the file is processed and the data is entered into the SMS site database. Copies of collected files are stored at the site server.

With every hardware inventory collection, SMS updates the database with changes, while keeping track of every change. This builds hardware inventory history for each client. With every software inventory collection, SMS updates the most recent inventory data in the SMS site database; thus, keeping only the current software inventory data for each client.

During the first data inventory collection, the inventory agents perform an initial inventory collection. This is a complete inventory collection, which includes a complete hardware inventory as specified in the SMS_def.mof file and a complete software inventory as specified by the software inventory rules. The initial inventory establishes the baseline for future inventory collections.

Subsequent inventory collections are performed at the specified schedule; however, these are usually delta inventories. During delta inventory, only changes since the last inventory collection are stored in the inventory data file. This greatly reduces the network traffic because the delta inventory data is usually only a fraction of a complete inventory collection.

Rarely, there is a need to perform a complete inventory collection again. However, if delta inventory data is determined to be out of synchronization with the latest inventory data, then instead of performing the usual delta collection, SMS performs an inventory resynchronization and re-establishes the inventory baseline. This corrective action happens when:

  • Inventory rules (either SMS_def.mof or the software inventory rules) have changed since the last inventory collection. This affects Legacy Clients only. Advanced Clients do not perform a resynchronization inventory at the event of inventory rules change.

  • An attempt is made to update inventory data that does not exist in the SMS site database. This can happen if, for example, there are network problems or if a client has been disconnected for a long time and the inventory reports are arriving out of order.

  • The inventory data is corrupted.

  • A client has changed sites since the last inventory collection.

  • A client upgrades from SMS 2.0 to SMS 2003.

Because changes to inventory rules do not trigger a resynchronization on Advanced Clients, Advanced Clients have much less resynchronizations compared with the Legacy Client.

Figure 3.1 Inventory process

cpig_004_001c

Figure 3: illustrates the components that participate in the hardware and software inventory process. It describes how the inventory data file moves through the SMS hierarchy.

  1. When you enable hardware inventory or software inventory for a site, SMS enables these features on the site's clients:

    • SMS installs the Hardware Inventory Client Agent or the Software Inventory Client Agent on all Legacy Clients in the site (the agent is preinstalled on Advanced Clients).

    • SMS sends to management points the Advanced Client policy that enables the Inventory Agent on Advanced Clients.

  2. SMS configures the inventory client agents according to the settings in the SMS_def.mof file, software inventory rules, and the schedule as follows:

    • SMS stores information on CAPs about the site server settings for inventory. Legacy Clients later download this information and use it to configure the Hardware Inventory Client Agent or the Software Inventory Client Agent.

    • SMS stores (at the SMS site database) Advanced Client policies that correspond to the server settings for hardware inventory or software inventory. Management points then retrieve these policies from the SMS site database on requests made by Advanced Clients. Advanced Clients use the policies to configure the Inventory Agent.

  3. The inventory agents start to run according to the specified schedule. Every time they run, they collect inventory data from the clients and store that data in an inventory data file.

  4. On Advanced Clients, the inventory data file is sent to a management point. On Legacy Clients, the inventory data file is sent to a CAP.

    The CAP or management point sends the inventory data file to the site server. If the site is a secondary site, then the inventory data file is propagated to upper level sites.

  5. The primary site server processes the inventory data file and stores the information in the site's database.

    • If the primary site server is not the central site server, then it sends the inventory data file to its parent site. The site also sends inventory data that it received from any lower level sites on which inventory is enabled. This step is repeated until the inventory data reaches the central site.

    • At the end of this process, every primary site contains the inventory data of the site's clients and of clients of lower sites in the hierarchy.

  1. You can view hardware or software inventory data in the SMS Administrator console and use it to create queries, collections, and reports. When viewing hardware inventory data, you can view the history of each class as it has been reported during previous hardware inventory collections. When viewing software inventory, only the current state is displayed. Software that was previously installed on a client, but currently is not installed, is not displayed.

    Each site contains inventory data from the site's clients and from all lower level sites' clients (the central site contains inventory data from clients A, B, C, D and E, while the midtier primary site contains inventory data only from clients C, D and E).

Several capabilities that are unique to Advanced Clients are leveraged in the implementation of software and hardware inventory. These capabilities are very useful in unique situations that Advanced Clients might often encounter, such as non-continuous connectivity to the network and slow link connection.

  • Inventory is always collected on the Advanced Client according to the specified schedule. However, if the client is unable to send the inventory data file to a management point because the client's computer is offline, the inventory data file is sent as soon as connectivity is re-established.

  • The Advanced Client leverages Background Intelligent Transfer Service (BITS). When an inventory data file is larger than 50 KB, BITS is used to send the file as a message attachment.

Hardware Inventory and Software Inventory Throughout the Site Hierarchy

The hardware and software inventory features are configured per site. When you enable either feature for a site, SMS collects inventory data from all the clients assigned to that site. SMS stores that data at the SMS site database and propagates it up the hierarchy, from one primary site to its parent, until it reaches the central site. The inventory data is stored in the database of each primary site to which it was propagated. At the end of this process, every primary site contains the hardware inventory data of the site's clients and of clients of lower sites in the hierarchy.

You can then use any of the client's upper level sites to perform management tasks that require the client's hardware or software inventory data, for example, running the All Systems with Hardware Inventory Collected query. You can use the central site, which has inventory data of all the clients in the hierarchy, to perform management tasks that require inventory data on any client in the hierarchy.

See Figure 3.1 to see how inventory data propagates up the hierarchy and which client's data inventory is stored at each site in the hierarchy.

Benefits of Hardware Inventory

You can use hardware inventory data to effectively perform many administrative tasks in your organization, the most important one being helping to manage IT assets. Use hardware inventory to administer tasks such as maintaining corporate hardware standards, tracking asset depreciation, locating computers, troubleshooting computers, and distributing software.

Hardware inventory provides you with important information, such as the configuration and location of computers, which computers require an operating system upgrade, and which computers have the hardware that is required for a software upgrade.

You can access the hardware inventory data that is collected by SMS in various ways. You can view current and historical hardware inventory data for individual clients in the SMS Administrator console by using Resource Explorer. Viewing recent changes to a client's hardware can assist in diagnosing client problems. From the SMS Administrator console, you can run a query to search for specific hardware inventory data or run a predefined report to display hardware inventory data in an organized report format. SMS provides many predefined reports that can display hardware inventory data, but these reports are meaningful only if the SMS site database contains hardware inventory data from clients.

The hardware inventory feature can help maintain corporate standards for computer hardware. For example, if an organization has a processor speed standard, the administrator can use hardware inventory to collect information about the processors of clients and then generate a report that shows which clients are not in compliance with that standard.

In large organizations, physically locating a specific computer can be a time-consuming task. Using hardware inventory data such as IP addresses, subnets, and domain names can help you easily track the physical location of every computer in the organization. This can be important if, for example, computers are leased and must be located and returned on a certain date.

Hardware inventory data can be used to create collections where members have a common hardware characteristic that you specify. You can then distribute software to these collections. For example, you might want to distribute software only to clients that meet the minimum hardware requirements for that software.

Customizing hardware inventory

The SMS_def.mof file provides a wide range of information that you can collect about client hardware. However, in your organization, you might need data that is not readily provided by the hardware inventory feature. In this case, you can extend the inventory set by using custom MOF or custom Management Information Format (MIF) files.

  • Custom MOF files allow you to add WMI classes that are not included in the original SMS_def.mof file.

  • Custom NOIDMIF MIF files extend the current inventory set by adding new inventory properties to each client. By using NOIDMIFs, you can collect additional information about each computer, such as asset number or office number.

  • Custom IDMIF MIF files extend the current inventory set by adding new architectures to the database. By using IDMIFs, you can collect information about new entities such as a shared network printer.

By using custom MIF files, hardware inventory can help in tracking asset depreciation by collecting purchase dates of the computers in the organization. By using this data, the administrator can determine the total depreciation of assets in the organization. This can prevent paying unnecessary taxes on assets that have depreciated and help plan future hardware purchases.

Benefits of Software Inventory

You can use software inventory data to effectively manage software in your organization. Software inventory data provides you with important information, such as how many copies of a specific software application exist in your organization or on how many computers in your organization have the latest antivirus program installed. Collected files can help troubleshoot client problems. For example, if a client is experiencing problems, you can open at your desktop a copy of the client's recent log files that were previously collected.

You can view software inventory data and a list of collected files in the SMS Administrator console by using Resource Explorer. The software inventory data that is displayed in Resource Explorer reflects the current state of the client. Unlike the hardware inventory feature, no historical data is available. You can view software inventory data organized by files or by products, and you can open at your desktop any file that was colleted from clients.

You can run queries to retrieve selected software inventory data from the SMS site database and run a report. SMS provides predefined reports that are meaningful only if the database contains software inventory data from the site's clients. Use reporting to display software inventory data from the entire organization in an organized report format.

The software inventory feature is useful for software distribution. Software inventory data can be used to create collections that are based on file or product data. You can then distribute software to these collections. For example, you might want to distribute an antivirus program only to clients that do not have this program installed.

For More Information

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