Click to Rate and Give Feedback
TechNet
TechNet Library
TechNet Archive
SMS 2.0
Part 3
 Chapter 10 - Collecting Hardware an...

  Switch on low bandwidth view
Chapter 10 - Collecting Hardware and Software Inventory
Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Collecting inventory of the hardware and software you have installed throughout your SMS site provides you with the information you need to perform many tasks, including asset management, software distribution, and using Remote Tools. These inventory processes help you determine, for example, how many computers you have in your organization, the configuration of these computers, how many copies of a particular software application are installed, and which computers have the hardware required for a software upgrade.

Hardware inventory automates the collection and storage of computer hardware properties in the SMS site database. Software inventory collects information about installed software on each client computer and adds this information to the SMS site database.

This chapter describes hardware and software inventory processes and the procedures you use to accomplish inventory tasks. The chapter is divided into two sections, as follows:

  • Collecting Hardware Inventory 

  • Collecting Software Inventory 

  • Using Resource Explorer to View Inventory Results 

  • Troubleshooting Inventory 

Collecting Hardware Inventory

In SMS 2.0, hardware inventory is a process that collects a wide-ranging set of hardware properties from every client in your SMS site hierarchy. Hardware inventory is largely an automated process. You intervene only to perform tasks such as enabling, disabling, or scheduling the hardware inventory process and viewing the results.

The hardware inventory process differs from that of resource discovery, a process used to locate resources in the SMS site. The resource discovery process collects a small amount of information, a data discovery record (DDR), for each resource it discovers on the network and stores this information in the SMS site database. Hardware inventory collects a large amount of additional information for SMS clients and stores it in the SMS site database, where it can be used to create queries and collections. For more information about resource discovery, see Chapter 9, "Discovering Resources and Installing Clients."

Understanding the Hardware Inventory Process

When you configure hardware inventory at a primary site server, it affects every client assigned to the primary site. Hardware inventory for secondary sites is also set up at the primary site, but the settings for the secondary site can differ from those of primary site. Hardware inventory settings for the secondary site affect all clients assigned to the secondary site.

When you configure hardware inventory at the primary site, inventory occurs on each client, and an inventory file is created on the client. This file is sent from the client to the primary site server, where it is processed and entered into the SMS site database. Figure 10.1 illustrates how the inventory file moves through the SMS system.

Cc723649.sms_j01(en-us,TechNet.10).gif

Figure 10.1 Flow of an inventory file through an SMS site hierarchy 

  1. Inventory is run and processed on the client. The inventory file is forwarded to the client access point (CAP). The CAP is the connection to the network for clients, and it can be a primary site server, a secondary site server, or another site system within the site. 

  2. If the CAP is not a site server, the CAP forwards the file to the primary site server. If the CAP is a secondary site server, it forwards the file to the primary site server. 

  3. The primary site server processes the file and stores the information in the SMS site database. If the primary site server is not the central site server, it forwards the inventory file to its parent. The parent processes the file and stores the information in its SMS site database. This process continues until the inventory data is stored at the central site. 

To collect inventory, hardware inventory uses the Windows Management system, which is part of Web-based Enterprise Management (WBEM), a standard of the Desktop Management Task Force (DMTF). For more information about Windows Management and WBEM see "The WBEM Interface with the SMS Architecture" in Chapter 1, "Introducing Systems Management Server Version 2.0."

Initial Hardware Inventory

When you select the SMS Express Setup option, hardware inventory is enabled automatically. However, if you select the SMS Custom Setup option, the feature is disabled. Hardware inventory is always installed during SMS installation. You can reconfigure, enable, or disable it any time. If you reconfigure hardware inventory, there is no need to restart.

Hardware inventory is not the same on 16-bit and 32-bit operating systems. The WBEM technology is used for 32-bit systems, but it cannot be used for 16-bit systems. The following paragraphs describe the 32-bit hardware inventory. Later in this chapter, the "Hardware Inventory of 16-bit Clients" section describes the differences for 16-bit clients.

The 32-bit hardware inventory process begins with an initial hardware inventory collected on each SMS client. Approximately 15 minutes after the Hardware Inventory Client Agent is installed, it reads the SMS_def.mof file to obtain the hardware classes to inventory and then queries the CIM Object Manager for the data. The CIM Object Manager starts the appropriate provider for each class, retrieves the current values, and then transfers the information back to the client agent. This process is called a complete hardware inventory. The client stores the results of this inventory on the client in a file called %windir%\MS\SMS\Clicomp\Hinv\Hinvdat.hic and passes the information, formatted as a Management Information Format (MIF) file, to the CAP. A MIF file is a standard DMI (Desktop Management Interface) text file that SMS uses to expose inventory data.

If for some reason the client agent is unable to complete the inventory, the process ends, but it is retried in 24 hours. The Hinvdat.hic file is erased after it is sent to the CAP. If the CAP is not a site server, the file is sent up the hierarchy to the site server.

If the client is a member of a secondary site, the secondary site server immediately passes the inventory information to its parent. The Inventory Processor (an SMS thread component) runs on each primary site server and checks to see if it must maintain history on this file. If the file is a .raw file (16-bit client) or MIF file, then history data is maintained on the site server. If the file is an .nhm (no history MIF) file from Windows Management, the history has been stored in the Windows Management database on the client and does not need to be stored at the site server.

Next, the Inventory Processor adds a binary header to the file and passes it to the Inventory Data Loader. The Inventory Data Loader runs on each primary site server and attempts to process each MIF file in the order received. If the Inventory Data Loader cannot process the MIF file because it is corrupt, the Inventory Data Loader copies the file to the SMS\Inboxes\Dataldr.box\Badmifs directory, and the inventory cycle ends. If the Inventory Data Loader can process the MIF file, it stores the collected data in the SMS site database.

If the primary site is not the central site of the site hierarchy, it sends the inventory file up the hierarchy to the primary site server. The primary site server processes the file and enters the information into its site database. The file passes up the hierarchy. This process continues until the information is entered in the central site's SMS site database.

Figure 10.2 shows a simplified view of the event sequence of initial hardware inventory. For a complete and detailed view of the hardware inventory process, see "Figure D.7, Hardware Inventory (32-Bit Client)" in Appendix D, "System Flows."

Cc723649.sms_j03(en-us,TechNet.10).gif 

Figure 10.2 Initial hardware inventory process 

During the initial hardware inventory, by default, SMS collects as many as 200 hardware properties with details such as:

  • Number of disk drives

  • Type of processor

  • Amount of memory

  • Operating system

  • Monitor and display settings

  • Computer name and IP address

  • Information about peripherals connected to the resource

  • Network type

The properties that are collected depend on which classes and attributes are enabled in the SMS_def.mof file. Although this file contains more than 650 properties, it is distributed with approximately 200 of the properties enabled. This file can be modified by administrators.

Note Enabling certain attributes in the SMS_def.mof file (such as Windows NT log events) can have an adverse effect on network traffic and on the size of the SMS site database due to the large amount of information exchanged. If you modify the SMS_def.mof file, keep this in mind and test the new SMS_def.mof file in high-traffic situations for your network. To minimize this adverse effect, you can configure hardware inventory to run when network traffic is lightest.

After SMS completes hardware inventory and stores the information in the SMS site database, you can use Resource Explorer to examine the information you have collected. For details, see "Using Resource Explorer for Viewing Inventory Results" later in this chapter. Resource Explorer displays the hardware inventory classes and attributes that have been gathered on each SMS client computer.

SMS also maintains a complete hardware history of all the information ever collected from the client. (You can view this information in Resource Explorer.) Hardware histories can help you diagnose problems at clients by reviewing configuration changes on the client. As a database maintenance task, the history files move to extended history files after a period of time. For more information, see "Deleting Database Objects Automatically" in Chapter 18, "Maintaining SMS Systems."

Delta Hardware Inventory

After SMS collects the initial hardware inventory from a client, the Hardware Inventory Client Agent repeats the process at scheduled intervals. The default interval is seven days. When the interval elapses, the CIM Object Manager sends an event that starts the client agent, which automatically begins the process of collecting inventory. These subsequent inventories are called delta inventories. The process for collecting the inventory is the same. The client agent reads the SMS_def.mof file and queries the CIM Object Manager for the classes that are enabled.

After the inventory data is returned from the CIM Object Manager, the client agent compares the newly gathered information with the previous information about the client's hardware. If there are any changes, the information is used to generate a delta inventory file (Hinvdat.hid). The delta inventory file is generally smaller than the complete inventory file, which reduces the impact on network traffic. However, depending on the classes that have been enabled since the last inventory and the length of time since the last inventory, the delta inventory file can be larger than the earlier complete inventory file.

After the delta inventory file is generated, the client agent places the hardware inventory file in the client's target directory (%windir%\MS\SMS\Clicomp\Hinv), and SMS copies the file to the CAP and removes the file from the client.

If the CAP is not a primary site server, SMS moves inventory files from the CAP up through the hierarchy to the primary site server. The Inventory Data Loader on the primary site server processes inventory data in the inbox, beginning with any complete inventory files and then processing each delta inventory file. If the inventory file has been corrupted, SMS copies the file to the SMS\Inboxes\Dataldr.box\Badmifs directory on the primary site server and signals for a resynchronization. If there is no corresponding record in the SMS site database or if other conditions signal a resynchronization, a resynchronization occurs. If the file is processed successfully, the Inventory Data Loader updates the site database with the inventory data.

If the primary site server is not the central site server, a copy of the file is sent up the hierarchy to the next primary site server. This primary site server processes the file and stores the information in its SMS site database. Then, if it is not the central site, this process continues until the information is stored in the SMS site database at the central site.

Note If the client is not running when hardware inventory is scheduled to run, the client agent collects the inventory when the computer is restarted.

Figure 10.3 shows a simplified view of the event sequence of delta hardware inventory. (For a complete and detailed view of the hardware inventory process, see "Figure D.7, Hardware Inventory (32-Bit Client)" in Appendix D, "System Flows.")

Cc723649.sms_j02(en-us,TechNet.10).gif

Figure 10.3 Delta hardware inventory process 

Hardware Inventory Resynchronization

After the initial hardware inventory, subsequent hardware inventory cycles send only the changes to the Inventory Data Loader on the primary site, unless a resynchronization occurs. Resynchronization is a corrective process that causes the Hardware Inventory Client Agent to take a complete hardware inventory on a client and to discard the history file. You cannot initiate resynchronization, but it occurs automatically whenever any of the following events occur:

  • The inventory file tries to update data that does not exist in the SMS site database.

  • The inventory data has been corrupted.

  • A client attaches to a different site than the previous hardware inventory shows.

When these events occur, the Hardware Inventory Client Agent generates a complete hardware inventory and replaces the existing history file with a complete inventory file (Hinvdat.hic). For details, see "Initial Hardware Inventory" earlier in this chapter.

Note Resynchronization does not change the recurring hardware inventory schedule. The next inventory cycle occurs at the scheduled time.

Hardware Inventory of Multi-Site Clients

SMS 2.0 permits clients to belong to more than one site and includes hardware inventory of these multi-site clients. For example, if an employee who travels frequently uses a laptop computer to log on to the site that is closest geographically, you can include the client in hardware inventory.

To determine the schedule for hardware inventory on a multi-site client, SMS uses the schedule at the principal site. For multi-site clients, SMS designates one site as the principal site (only multi-site clients require a principal site). By default, the principal site is the first site that installed the Hardware Inventory Client Agent. After the inventory has been taken, the Hardware Inventory Client Agent sends the hardware inventory file to all the sites that include the client and that have hardware inventory enabled.

To determine which hardware properties to inventory, SMS uses the SMS_def.mof file of the principal site. If the principal site does not have a custom SMS_def.mof file in its %windir%\MS\SMS\Clicomp\Hinv directory, the client agent uses the default SMS_def.mof file.

When a site requests a hardware resynchronization, the Hardware Inventory Client Agent generates a complete hardware inventory file (Hinvdat.hic) and sends it to all the sites of the multi-site client.

If the principal site disables hardware inventory and if at least one of the client's other sites does not, SMS collects inventory according to the enabled site's schedule. The client agent is not removed from a multi-site client unless all of the client's sites disable hardware inventory.

To configure the principal site of a multi-site client, see "Changing the Principal Site of a Multi-Site Client" later in this chapter.

Hardware Inventory of 16-bit Clients

WBEM technology that collects hardware inventory is not available to 16-bit clients. Instead, the 16-bit Hardware Inventory Client Agent, Hinv16.exe, gathers inventory information. For 16-bit clients, SMS can collect only a subset of the properties that it collects for 32-bit clients.

When a 16-bit client is discovered, if hardware inventory is enabled, SMS installs the 16-bit Hardware Inventory Client Agent on the client. Approximately fifteen minutes later, hardware inventory runs for the first time. For a 16-bit client, this timing interval is only approximate, because there is no preemptive multitasking on 16-bit operating systems. For example, if software inventory is running when hardware inventory is scheduled to run, the hardware inventory process does not begin until after the software inventory process has completed. The hardware inventory process cannot be run as a background process; the client agent has control of the CPU until it has completed.

When the client agent is installed, the SMS_def.mof file is passed to the 16-bit clients. The 16-bit Hardware Inventory Client Agent compares the SMS_def.mof file classes to the list of classes the client agent can collect from 16-bit clients. The client agent collects the following classes:

  • Class is set to TRUE in the SMS_def.mof

  • Class is among the classes that can be collected from 16-bit clients

The complete set of collected data is stored in a binary file called a RAW file (.raw file), which is passed first to the CAP and then to the site server.

On the site server, SMS processes the .raw file in the following way:

  1. The Inventory Processor maps the classes collected in the inventory to the classes collected by SMS 1.2 hardware inventory. 

  2. The Inventory Processor creates a MIF file using the information from the mapping. For subsequent inventories, a delta MIF file in SMS 1.2 file format is created instead, based on a comparison of the previous history information and the information from the mapping. 

  3. The Inventory Processor stores the history in the SMS site database. 

  4. The Inventory Data Loader processes the MIF file as it would process an SMS 1.2 MIF file and inserts the data in the SMS site database.

You can view information collected from 16-bit clients during hardware inventory in Resource Explorer. Only a subset of the classes in the SMS_def.mof file appear. All properties within these classes appear, even if their values are not collected by the 16-bit client agent. If the properties are not collected, the values appear empty, with no data.

Hardware Inventory of SMS 1.2 Clients

The hardware inventory feature allows you to collect inventory from SMS 1.2 clients. SMS 1.2 supports MS-DOS, OS/2, and Macintosh operating systems, but SMS 2.0 does not.

In your site hierarchy, SMS 1.2 clients must always report to SMS 1.2 sites. SMS 2.0 sites can never report to SMS 1.2 sites in a hierarchy. SMS 1.2 sites in a hierarchy must always report to an SMS 2.0 site.

Hardware inventory is collected on these SMS 1.2 systems using the SMS 1.2 hardware inventory feature. For more information, see the Systems Management Server 1.2 Getting Started Guide and the Systems Management Server 1.2 Administrator's Guide.

Hardware inventory is passed to the site server and up the hierarchy to the primary site server.

On the site server, the Inventory Processor processes the .raw file by comparing it to the history file and creating a delta MIF file based on the comparison.

The Inventory Data Loader recognizes the MIF file as an SMS 1.2 MIF file and inserts the data in the SMS site database. The inventory file is propagated up the site hierarchy to the central site.

You can view SMS 1.2 client information with an instance of SMS 1.2 Administrator on your SMS 1.2 site. For more information, see the Systems Management Server 1.2 Getting Started Guide and "Administering SMS 1.2 Child Sites" in Chapter 5, "Upgrading from SMS 1.2 to SMS 2.0."

Hardware Inventory Customization

If you want to collect information that is not part of the default inventory from clients at your SMS site, you can modify the classes and attributes you collect in three ways. You can:

  • Modify the SMS_def.mof file.

  • Use NOIDMIF files to extend the hardware inventory of a specific client computer.

  • Use IDMIF files to add new architectures or classes to a site hierarchy.

Modifying the SMS_def.mof File

The SMS_def.mof file consists of a list of classes and attributes in the following format:

[SMS_Report(TRUE),
SMS_Group_Name("Boot Configuration"),
ResID(400),ResDLL("SMS_RXPL.dll"),
SMS_Class_ID("MICROSOFT|BOOT_CONFIGURATION|1.0")]
class Win32_BootConfiguration : SMS_Class_Template
{
[SMS_Report(TRUE)]
string BootDirectory;
[SMS_Report(FALSE)]
string ConfigurationPath;
[SMS_Report(TRUE)]
string LastDrive;
[SMS_Report(TRUE),key]
string Name;

The attributes and classes that are set to TRUE are collected, and those set to FALSE are not. However, there is an exception: if a class is set to TRUE (as it is in the example above) then any attributes with the key property are collected, even if the individual attribute is set to FALSE.

To modify the SMS_def.mof file, navigate to \SMS\Inboxes\Clifiles.src\Hinv on the server and edit the file in any text editor. If there are attributes and classes you no longer want to collect, set them to FALSE. If you want to add attributes, set them to TRUE.

Important Be very careful when modifying the SMS_def.mof file. It was not designed to be executed with all or most of the attributes set to TRUE. The size of the file can affect the performance of your network. The default SMS hardware inventory MIF file generated by complete hardware inventory is about 100 KB. If you modify the file, first verify the size of a typical client's complete hardware inventory and make sure it is acceptable. Then, test the new file in a test site before distributing it throughout your network.

After you have tested the file, you can replace the default SMS_def.mof by replacing the file in the \SMS\Inboxes\Clifiles.src\Hinv directory on the site server. From there, it is propagated to each client in your site.

Using MIF Files

Besides modifying the SMS_def.mof file to change the information collected by hardware inventory, you can use IDMIF and NOIDMIF files to modify the architectures, attribute classes, and attributes collected by hardware inventory.

In the SMS site database, architectures define entire new object types, while classes are new collections of properties added to existing architectures. For example, a PC or a printer has an associated architecture, and the properties of the specific PC or printer type, such as processor or BIOS type, represent a class. Use a NOIDMIF to add new attributes and classes to an existing object type in the SMS Site Database, and use IDMIFs to add entire new architectures.

As a further example, if an organization uses an asset number to keep track of a resource such as a personal computer, you could include the asset number with hardware inventory information for each PC by adding the asset number property to the existing System architecture. From then on, hardware inventory stores the asset number with the other information about the computer in the SMS site database, and you can view the asset number in Resource Explorer with the other properties of the client.

On the other hand, you can use SMS to track an entirely different resource for which no set of properties exists (fleet vehicles, for example). To do so, you must set up a custom architecture that includes the classes and properties you want to inventory for fleet vehicles. However, if you create custom architectures, you cannot use Resource Explorer to view the properties. You must create a query that returns the values for the custom architecture using the SMS Queries feature.

Warning If you do not use NOIDMIFs and IDMIFs properly, you risk destroying the SMS site database. Before you use custom MIF files at a site, be sure to verify their use in a test site.

NOIDMIFs

NOIDMIFs are MIF files that the Hardware Inventory Client Agent processes on the client to extend hardware inventory classes. Usually, a third-party application or an administrator prepares these files and places them on the client in a target directory. NOIDMIFs are used to create new properties and classes for existing architectures.

IDMIFs

IDMIFs are MIF files that the Inventory Data Loader processes on the primary site server. You can use IDMIFs to create entire new architectures in the SMS site database. An architecture called Office, for example, would include all the information about an office, including its location. To associate this information with specific clients, you can add a new property to the System architecture. The property, (officeLocation, for example) can hold the identifier for some instance of the Office architecture. After you create and populate these structures, whenever maintenance personnel discover some hardware problem remotely, they can easily retrieve information about where to find the hardware that has the problem. IDMIFs are used to create new properties and classes or new architectures.

Note If you plan to modify the SMS_def.mof file or create MIF files to add information to the client hardware inventory, consider the effects that adding the changes could have on network performance. Adding certain types of information, such as event log data, can result in significant network slowdowns.

Hardware Inventory Administrative Tasks

The previous section described the automated hardware inventory process. This section describes when and how you can intervene to change the hardware inventory process and view the results, including:

  • Allocating disk space.

  • Enabling and disabling hardware inventory.

  • Scheduling hardware inventory.

  • Changing principal sites for multi-site clients.

  • Viewing hardware inventory results.

Allocating Disk Space for Inventory

To run hardware or software inventory on a client, a certain amount of disk space is necessary:

  • To create the temporary file.

  • To create the history file that is stored on the client.

  • To hold the inventory file that is sent to the primary site.

If you keep your clients at an optimal level of general performance, you do not need to allocate additional disk space for SMS. In general, for optimal disk performance, computers on your network should always have at least 10 percent free disk space. This disk space, which is necessary for normal computer operation, helps to avoid disk fragmentation and disk I/O performance problems. A computer with at least 10 percent free disk space should generally have sufficient resources to handle the temporary files used in hardware inventory. If there seem to be problems, you can check the size of the files in the %windir%\MS\SMS\Hinv directory and the other SMS directories.

To ensure that the client computers on your network always have at least 10 percent free disk space, you can monitor them with SMS. If the client does not have sufficient memory and disk space for hardware inventory temporary files and processes, the client agent stops and tries to complete the inventory cycle again within 24 hours.

Enabling and Disabling Hardware Inventory

When you select the SMS Express Setup option, hardware inventory is enabled, but if you chose the SMS Custom Setup option, by default, hardware inventory is disabled. Hardware inventory is always loaded. You can enable or disable it whenever you like using the SMS Administrator console–the changes take effect immediately. To enable or disable hardware inventory for a site, navigate to the Hardware Inventory Client Agent for the site.

Systems Management Server

Cc723649.elle(en-us,TechNet.10).gifSite Database (site code - site name) 

Cc723649.elle(en-us,TechNet.10).gifSite Hierarchy

Cc723649.elle(en-us,TechNet.10).gif<site code - site name>

Cc723649.elle(en-us,TechNet.10).gifSite Settings

Cc723649.elle(en-us,TechNet.10).gifClient Agents

In the details pane, right-click Hardware Inventory Client Agent and click Properties.

  • To enable hardware inventory, select Enable hardware inventory on clients.

  • To disable hardware inventory, clear Enable hardware inventory on clients.

Scheduling Hardware Inventory

By default, hardware inventory runs every seven days. However, you can change the hardware inventory schedule by setting the time of day and frequency that best suits your requirements. You can change hardware inventory settings at any time–the next inventory cycle will reflect your changes. You can also run hardware inventory immediately on a single client.

You schedule the hardware inventory process by configuring settings in the site's Hardware Inventory Client Agent properties. Begin by navigating to the Hardware Inventory Client Agent Properties dialog box as directed in the preceding section and complete the settings to select the best schedule for your site hierarchy. There are two ways to schedule hardware inventory. You can select an interval or specify a start date and time and a recurring schedule. For more detailed information about scheduling hardware inventory, consult SMS Help.

Note Hardware inventory can significantly increase network traffic. If you expect this to be a problem, consider scheduling hardware inventory when network traffic is lightest.

To run hardware inventory immediately for a single client, use the Systems Management Control Panel Applet. This applet, which is installed on every computer discovered by SMS, includes a number of functions for individual clients. One function is to force a hardware inventory of a single client. To force a hardware inventory on a single client, first click the Systems Management Control Panel applet in the Windows Control Panel on the client. On the Components tab, select Hardware Inventory Agent, and then click Start Component.

Changing the Principal Site of a Multi-Site Client

Multi-site clients are clients that belong to more than one site. This is often the case when users have laptop computers and log on to the nearest geographical site. Administrators can change the principal site of a multi-site client using the Systems Management Control Panel applet. The Systems Management Control Panel applet is installed on all computers that are discovered by SMS. One function of this panel allows users whose computers move from one location to another, such as laptop computer users, to change the principal site.

To change the principal site of a multi-site client, first click the Systems Management Control Panel applet in the Windows Control Panel. On the Site tab, select the site you want to use as the principal site and then click Set as Principal Site.

Collecting Software Inventory

Just as SMS collects hardware inventory so you can identify hardware details of clients in a site hierarchy, SMS collects software inventory so you can be aware of the kinds of files that exist on each client. This process helps you make decisions, such as which computers are appropriate targets of a proposed software distribution. During software inventory, the Software Inventory Client Agent collects details about installed software, including every file with the extensions you specify when you configure the client agent. After the inventory concludes, you can view client information from the primary site server. Software inventory can also collect actual copies of any files you choose and store them in a set of directories on the primary site server. When there is trouble with a certain client, for example, you can view a copy of the client's current Autoexec.bat and Config.sys files from your location to assist in finding the problem.

This section describes both the automated software inventory process and the details of when and how you can change software inventory settings.

Understanding the Software Inventory Process

When you use the Express Setup option, SMS enables software inventory for a site, but if you select the Custom Setup option, the feature is disabled. Software inventory is always installed with SMS, and you can reconfigure the feature at any time, enabling or disabling it, and there is no need to restart if you do.

Like hardware inventory, software inventory is largely an automated process–you intervene only to enable or disable the feature, to schedule the process, and to view the results. In SMS 2.0, when you set up software inventory on the primary site server, it affects every client that is assigned to the primary site. Software inventory in secondary sites is also set up at the primary site server, but the settings for the secondary site can differ from those of the primary site. Software inventory settings for a secondary site affect all clients assigned to the secondary site.

The software inventory process does not run on the site server. It runs on each client individually. The inventory file is created on the client, and a copy of the file is sent to the primary site server. Figure 10.4 illustrates the movement of the inventory file through the SMS site hierarchy.

Cc723649.sms_j05(en-us,TechNet.10).gif 

Figure 10.4 Software inventory file movement through an SMS site hierarchy 

  1. Software inventory is run and processed on the client. The inventory file is forwarded to the CAP. The CAP can be a primary site server, a secondary site server, or another site system within the site. 

  2. If the CAP is not a site server, the CAP forwards the inventory file to the site server. If the CAP is a secondary site server, it forwards the file to the primary site server.

  3. The primary site server processes the file and stores the information in the SMS site database. If the primary site server is not the central site server, it forwards the inventory file to its parent. The parent processes the file and stores the information in its SMS site database. This process continues until the inventory data is stored at the central site.

The remainder of this section describes the automated software inventory process, including:

  • Initial software inventory

  • Delta software inventory

  • Collecting files from clients

  • Software inventory resynchronization

  • Software inventory of multi-site clients

  • Software inventory of SMS 1.2 clients

Initial Software Inventory

SMS initiates software inventory as an automatic process on each client. The process is the same for 16-bit and 32-bit clients. Thirty minutes after installation, the Software Inventory Client Agent scans all local drives for files of the types you specified during the client agent's configuration. (For 16-bit software inventory, this time is very approximate and could be as long as 1 hour.) When the client agent finds a file with the specified extension, it collects as much of the following information as possible:

  • File name

  • File version

  • File size

  • Date and time of file creation

  • File description

  • Company name

  • Product name

  • Product version

  • Product language

This process on the client is called initial software inventory.

You do not need to supply a list of defined software for the client agent to perform software inventory, but when you configure the Software Inventory Client Agent, you must indicate the extensions of the files you want to inventory.

Note Software inventory does not include the files in the SMS directory where collected files are stored on the client.

When the client agent collects software inventory, SMS can collect copies of any files you specify when you configure the client agent. This is known as collecting files. This process is described more fully in "Collecting Files from Clients" later in this chapter.

When the inventory is complete, the following process takes place:

  1. The Software Inventory Client Agent creates the software inventory file. 

  2. The client agent appends the collected files to the inventory file. 

  3. The client agent places the file in the target directory (%windir%\MS\SMS\Clicomp\Sinv). 

  4. The agent copies the collected files to the client directory (%windir%\Ms\Sms\Clicomp\Sinv\Filecol). 

  5. SMS copies the files to the CAP.

After the files are copied to the CAP, they are removed from the client. If the CAP is not a site server, the file is copied to the site server.

If the client is a member of a secondary site, the secondary site server immediately passes the inventory information to its parent. A Software Inventory Processor runs on each primary site server and attempts to process the inventory file. If the file has been corrupted, the inventory processor copies it to the SMS\Inboxes\Dataldr.box\Badsinv directory on the primary site server, and the inventory cycle ends. If the file is processed successfully, the Inventory Processor stores the collected data in the SMS site database.

If the primary site is not the central site of the site hierarchy, it sends the inventory file up the hierarchy to the next primary site server. This primary site server processes the file and enters the information into its database. If it is not the central site server, it sends the file up the hierarchy. This process continues until the information is entered in the central site's SMS site database.

As the Software Inventory Processor updates the SMS site database with software inventory information, the processor moves any collected files to a directory specific to this client (SMS\Inboxes\Sinv.box\Filecol\<ResourceID>) on the site server. During this process, files are classified as they are stored. Any file that has valid entries for company name, product name, version, and language is inventoried as a known file and is associated with a known product and vendor. If any of the entries is missing or invalid, the file is inventoried as an unknown file. Files are later viewed in Resource Explorer according to these classifications.

When inventory information has been added to the SMS site database, you can use Resource Explorer to view inventory for any client.

Figure 10.5 shows a simplified view of the initial software inventory event sequence. (For a complete and detailed view of the software inventory process, see "Figure D.18, Software Inventory (32-Bit Client)" in Appendix D, "System Flows.")

Cc723649.sms_j07(en-us,TechNet.10).gif 

Figure 10.5 Initial software inventory process 

Delta Software Inventory

After SMS collects the initial software inventory from a client, the Software Inventory Client Agent repeats the process at scheduled intervals. (The default interval is seven days.) These subsequent inventories are called delta inventories. When the scheduled interval elapses, the client agent automatically begins the process of collecting inventory. The client agent scans directories for all the file types that you specified when you configured the client agent and compares the information with the last inventory file. From this comparison, the client agent builds a delta inventory file. Delta inventory files are generally smaller than the complete inventory file, which reduces network traffic.

If the client agent is configured to collect files, it collects the specified files and compares them with the most recently collected copies. Any files that have been added or changed are appended to the delta inventory file. Next, the client agent places the delta inventory file in the target directory (%windir%\MS\SMS\Clicomp\Sinv), and SMS copies this file to the CAP. SMS moves the inventory files from the CAP up through the hierarchy to the primary site server.

On the primary site server, the Software Inventory Processor processes inventory data in the order received, beginning with any complete inventory files, and then processes each delta inventory file. If the delta inventory file cannot be processed, the Inventory Processor copies it to the SMS\Inboxes\Dataldr.box\Badsinv directory on the primary site server and signals for a resynchronization. If the file is processed successfully, the client agent updates the site database with the inventory data. Collected files are moved to the client's directory (SMS\Inboxes\Sinv.box\Filecol\ <ResourceID>) on the site server.

If the primary site is not the central site of the site hierarchy, it sends the inventory file up the hierarchy to the next primary site server. This primary site server processes the file and enters the information into its database. If it is not the central site server, it sends the file up the hierarchy. This process continues until the information is entered in the central database.

Figure 10.6 shows a simplified view of the delta inventory event sequence. (For a complete and detailed view of the software inventory process, see "Figure D.18, Software Inventory (32-Bit Client)" in Appendix D, "System Flows.")

Cc723649.sms_j06(en-us,TechNet.10).gif

Figure 10.6 Delta software inventory process 

Collecting Files from Clients

When you configure software inventory to collect files from clients, the Software Inventory Client Agent collects the files you specify every time software inventory is collected. For delta software inventories, only files whose date, size, or location has changed or files that have been added during the schedule interval are appended to the software inventory file. On the site server, files collected from each client are stored in a subdirectory of the SMS root directory (SMS\Inboxes\Sinv.box\ Filecol\<ResourceID>). This is where the five most recent versions of each collected file are stored. So, for example, if you collect Sys.log from each client, you can view any of the five most recent versions of that file, if they exist. Paths to all the collected files are stored in the SMS site database.

By default:

  • When SMS collects files, the combined size of all the collected files cannot exceed 1 MB.

  • All files are kept in the SMS site database for 90 days.

Both of these values are configurable. For more information about the size of collected files, see "Choosing Which Files to Collect" later in this chapter. For more information about files in the SMS site database, see "Maintaining SMS Databases" in Chapter 18, "Maintaining SMS Systems."

Warning Collected files from each client can be quite large, especially if you choose a larger value for the combined size of the files (1 to 20 MB are allowed). Test the traffic that would be generated on your network before you enable a larger combined file size.

Software Inventory Resynchronization

After the initial software inventory has run, during subsequent software inventories, the Software Inventory Client Agent sends only the changes to the Software Inventory Processor on the primary site–unless a resynchronization occurs. Resynchronization is a corrective process that causes the client agent to take a complete software inventory on a client and to discard the history file. You cannot initiate these events; they occur automatically, whenever:

  • The inventory file tries to update data that does not exist in the SMS site database.

  • The inventory data has been corrupted.

  • A client attaches to a different site than the last inventory indicates.

When these events occur, the Software Inventory Client Agent generates a complete history file and replaces the existing history file.

Note The resynchronization does not change the recurring software inventory schedule. The next scheduled inventory occurs at the appropriate time.

Software Inventory of Multi-Site Clients

As mentioned earlier in this chapter, SMS supports hardware and software inventory on multi-site clients, that is, clients who belong to more than one site. Often, such a client is a laptop computer whose owner logs on to the site that is closest geographically.

To determine the schedule for software inventory on a multi-site client, SMS uses the schedule at the principal site. For multi-site clients, SMS designates one site as the principal site (only multi-site clients require a principal site). By default, the principal site is the first site that installed the Software Inventory Client Agent. After the inventory has been taken, the Software Inventory Client Agent sends the software inventory file to all the sites that include the client and that have software inventory enabled.

When the client agent collects software inventory on a multi-site client:

  • Inventoried files include all file types requested by all of the client's sites.

  • Collected files include all files specified by all of the client's sites.

  • Reports reflect the highest level of detail requested by any of the client's sites.

If the principal site disables software inventory and if another site that the client belongs to is enabled, inventory is collected according to the second site's schedule. The client agent is not removed from a multi-site client unless all of the sites it belongs to disable software inventory.

To configure the principal site for a multi-site client, see "Changing Principal Sites of Multi-Site Clients" earlier in this chapter.

Software Inventory of SMS 1.2 Clients

The SMS 2.0 software inventory feature can also help you to collect inventory from SMS 1.2 clients. Certain operating systems (MS-DOS, OS/2®, and Macintosh®) are supported by SMS 1.2 but not by SMS 2.0. Software inventory is collected on these systems using the SMS 1.2 software inventory feature. Software inventory is passed to the SMS 1.2 site server and up the hierarchy to the SMS 2.0 primary site server. For more information, see the Systems Management Server 1.2 Getting Started Guide and the Systems Management Server 1.2 Administrator's Guide.

You can view information about SMS 1.2 clients with an SMS 1.2 Administrator on your SMS 1.2 site. For more information, see the Systems Management Server 1.2 Getting Started Guide and "Administering SMS 1.2 Child Sites" in Chapter 5 of this guide, "Upgrading from SMS 1.2 to SMS 2.0."

Software Inventory Administrative Tasks

The previous section described the automated software inventory process. This section describes when and how you can change the software inventory process and view the results.

Note The Software Inventory Client Agent requires disk space on the client to create a temporary file, the history file, and the file sent to the primary site. For the client agent to complete an inventory cycle, the client must have these minimum resources:

  • 3 MB of virtual memory

  • 2 MB of free disk space

  • Storage space equivalent to 210 percent of the combined size of all collected files

For more information, see "Allocating Disk Space for Inventory" earlier in this chapter.

Software inventory administrative tasks include:

  • Enabling and disabling software inventory

  • Scheduling software inventory

  • Choosing which file types to inventory

  • Choosing which files to collect

Note Running software inventory can result in slower network traffic. The degree to which this might occur on your network depends on how frequently you schedule software inventory and the size of the files you collect. If you expect that software inventory will slow network activity, consider running this process during low-traffic periods.

Enabling and Disabling Software Inventory

When you select the Express Setup option, software inventory is enabled during the general SMS installation process. When you select the Custom Setup option, by default, software inventory is disabled. Software inventory is always loaded–you can enable or disable it whenever you like using the SMS Administrator console, and the change is effective immediately.

To enable or disable Software inventory, navigate to the site's Software Inventory Client Agent.

Systems Management Server

Cc723649.elle(en-us,TechNet.10).gifSite Database (site code - site name) 

Cc723649.elle(en-us,TechNet.10).gifSite Hierarchy

Cc723649.elle(en-us,TechNet.10).gif<site code - site name>

Cc723649.elle(en-us,TechNet.10).gifSite Settings

Cc723649.elle(en-us,TechNet.10).gifClient Agents

In the details pane, right-click Software Inventory Client Agent and then click Properties.

  • To enable software inventory, select Enable software inventory on clients.

  • To disable software inventory, clear Enable software inventory on clients.

Scheduling Software Inventory

By default, SMS software inventory runs every seven days. However, you can change software inventory scheduling by setting the time of day and frequency that best suits your requirements. You can schedule inventory to always occur at a time of day when network traffic is lightest. You can also start an immediate software inventory for a single client.

Schedule software inventory by configuring settings in the site's Software Inventory Client Agent dialog box. Navigate to the Software Inventory Client Agent Properties dialog box as directed in the preceding section and select the best schedule for your site hierarchy. There are two ways to schedule software inventory. You can select an interval or specify a start date and time and a recurring schedule. For more detailed information about scheduling software inventory, see SMS Help.

To run software inventory immediately for a single client, use the Systems Management Control Panel Applet. This applet, which is installed on every computer discovered by SMS, includes a number of functions for individual clients. One of these functions is to force a software inventory of a single client. To force a software inventory on a single client, first click the Systems Management Control Panel applet in the Windows Control Panel. On the Agents tab, select Software Inventory Client Agent and then click Run.

Choosing Which File Types to Inventory

By default, the Software Inventory Client Agent inventories .exe files, but you can also specify other file types for software inventory. To change the file types you want to inventory, navigate to the Software Inventory Client Agent Properties dialog box as directed in "Enabling and Disabling Software Inventory" earlier in this chapter. Then, click the Inventory Collection tab.

Cc723649.sms_j08(en-us,TechNet.10).gif

Cc723649.sms_j09(en-us,TechNet.10).gif 

Next, to select the file type you want to inventory, click the New icon shown at left and enter a single file extension. Repeat this process until you have entered all of the file types you would like to inventory on each client.

You can specify reporting at one of the following levels:

  • Product version information

  • Product version information and files associated with known products

  • Product version information and files associated with known and unknown products

Choosing Which Files to Collect

If you decide to collect files from clients, you can use software inventory to collect them and store them at the primary site server. You can specify the files you want to collect. When you do, you can use wildcard characters so that you collect all executable files (*.exe) or all initialization files (*.ini), for example. You can also specify multiple versions of a file, such as Status*.doc.

To choose the files you want to collect 

  1. To choose the files you want to collect, navigate to Client Agents.

    Systems Management Server 

    Cc723649.elle(en-us,TechNet.10).gifSite Database (site code - site name) 

    Cc723649.elle(en-us,TechNet.10).gifSite Hierarchy 

    Cc723649.elle(en-us,TechNet.10).gif site code - site name 

    Cc723649.elle(en-us,TechNet.10).gifSite Settings 

    Cc723649.elle(en-us,TechNet.10).gifClient Agents 

  2. In the details pane, right-click Software Inventory Client Agent and click Properties

  3. When the Software Inventory Agent dialog box appears, click the File Collection tab. 

  4. Click the New icon and then type the name of a file you want to collect.

    You can type exact file names (such as Autoexec.bat), or you can use wildcards and collect all files of a certain extension, such as *.zip. 

  5. Repeat step 4 for each file or set of files you want to collect.

Note When SMS sends a large volume of collected files across the network, network performance can suffer. To minimize volume-related performance degradation, you can use the Maximum data collected per client option or consider scheduling software inventory when network traffic is lightest.

Using Resource Explorer to View Inventory Results

Resource Explorer is a data-driven, MMC-based user interface that displays SMS client information. When you run Resource Explorer, it opens a second MMC window that displays the information collected by hardware inventory and software inventory.

Cc723649.sms_j10(en-us,TechNet.10).gif

If a resource is a computer that has client software installed and if you are collecting hardware inventory at your site, the record for that resource includes a list of the hardware installed on the client. If you are collecting software inventory, the record also includes the software listing. If a resource is not a client, there will be no information about that resource in Resource Explorer.

Viewing Hardware Inventory on a Single Client

You can find the hardware inventory information collected for a client within the Hardware folder in Resource Explorer. The Hardware History folder contains the information from previous hardware inventories. These histories remain until you delete the information manually or with a database maintenance task.

The Hardware folder contains a wealth of information that ranges from specifics about the manufacturer and type of hardware internals to the free space available on each disk. You can use this information to determine which targets to use for a software distribution, when to perform remote troubleshooting, or when to identify hardware available in a specific site.

Cc723649.sms_j11(en-us,TechNet.10).gif

Note There may be some real-time delay between the collection of hardware inventory data and its appearance in Resource Explorer.

To view a client's hardware inventory with Resource Explorer, navigate to a collection containing the client.

Systems Management Server

Cc723649.elle(en-us,TechNet.10).gifSite Database (site code - site name) 

Cc723649.elle(en-us,TechNet.10).gifCollections

Cc723649.elle(en-us,TechNet.10).gif collection containing client 

In the details pane, right-click the client whose information you want to view, point to All Tasks, and then click Resource Explorer. A new MMC window for Resource Explorer opens and displays information about the client you selected.

SMS keeps historical hardware inventory records for the number of days you specify in the Delete Aged History database maintenance task. For a complete description of this and other database maintenance tasks, see "Maintaining SMS Databases" in Chapter 18, "Maintaining SMS Systems."

Viewing Software Inventory on a Single Client

The Resource Explorer Software folder contains information about each type of software file you specified to collect in your software inventory. Resource Explorer displays as much of the following information for each client as could be collected:

  • File name

  • File description (if this information was stored for this file)

  • File version (if this information was stored for this file)

  • File size (measured in bytes)

  • File count (number of copies that exist on the client)

  • Creation date (date and time the file was created)

During software inventory, SMS associates these files with known or unknown products. In Resource Explorer, information about known products is stored under the manufacturer's name in the Manufacturer folder, and information about unknown products is stored in the Unknown Files folder.

To view a client's software inventory, navigate to a collection containing the client.

Systems Management Server

Cc723649.elle(en-us,TechNet.10).gifSite Database (site code–site name) 

Cc723649.elle(en-us,TechNet.10).gifCollections

Cc723649.elle(en-us,TechNet.10).gif collection containing client 

In the details pane, right-click the client whose inventory you want to view, select Task, and then click Resource Explorer. Resource Explorer appears in a new MMC window and displays inventory information about the client you selected.

To view the inventory of the client's software products (such as Microsoft® Office) that you selected when you configured the Software Inventory Client Agent, double-click Software, and then click Products. The client's software inventory appears in the details pane. If you want to view the inventory of unknown files you specified (such as .bat files), click Unknown Files. The inventory of unknown files associated with the client appears in the details pane.

Viewing Collected Software Files

File Collection is a feature of software inventory that helps you to specify a set of files to be copied to the primary site server. Software inventory transmits copies of the selected files to the primary site server and stores them in directories created for their storage and associated with each client. If File Collection is configured in software inventory, the Resource Explorer Software folder contains a Collected Files folder that displays information about the collected files including the path to the files.

Cc723649.sms_j12(en-us,TechNet.10).gif

The information collected for each file includes:

  • File name (name of file)

  • File path (path to file on the server)

  • File size

  • Modified date (date last modified)

  • Collection date (date collected from client)

  • Revision ID (corresponds to the number of times the file was collected)

  • Resource ID (database unique ID for this file)

Cc723649.sms_j13(en-us,TechNet.10).gif

Collected files are not directly accessible from the site server's hard drive. You can use Resource Explorer to view files collected from a client. View collected files by navigating to the collection containing the client. Right-click the client whose collected files you want to view, click All Tasks, and then click Resource Explorer. Resource Explorer appears in a new MMC window, displaying information about the client you selected. Finally, double-click Software.

Troubleshooting Inventory

If your hardware or software inventory does not run as it should, you can try some of these suggestions for troubleshooting:

  • Update and then refresh the collection containing the client.

  • Verify the schedule for inventory. Software and hardware inventory can have different schedules.

  • Verify whether client files have been created. For 32-bit hardware inventory, the following files should be created::

    %windir%\MS\SMS\Clicomp\Hinv32\Hinvdat.hid or .hic 

    %windir%\MS\SMS\Clicomp\Sinv32\Sinvdat.hid or hic 

    For 16-bit hardware inventory: %windir%\MS\SMS\Clicomp\Hinv16\Hinvdat.raw 

    Note When the inventory process on the client ends, these files are deleted. 

    View component status for possible errors:

    • Inbox Manager

    • Inbox Manager Assistant

    • Inventory Processor

    • Inventory Data Loader

    • Software Inventory Processor

  • Check the Badmifs directory for hardware inventory and the Badsinv directory for software inventory and examine the files there.

  • Consider whether the client files are simply waiting for other inventory files to be processed. If there is a large amount of inventory to process, it can take some time for an individual client.

  • Use the flowcharts found in Appendix D, "System Flows" to trace the process and make sure each step is completing.

Hardware inventory will run only if WBEM is installed. If WBEM is not installed, you can manually run a WBEM installation from the CAP.

Cc723649.spacer(en-us,TechNet.10).gif

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker