How SMS Collects Inventory from Computers

The following sections describe how SMS collects inventory from clients running Windows NT, Macintosh, and OS/2.

Collecting Inventory from Clients Running Windows NT

On SMS computers running Windows NT Workstation and Windows NT Server (with the role of standalone server within a domain), the Inventory Agent is installed as a service. This service is installed and works differently than the SMS_INVENTORY_AGENT_NT service that runs on SMS logon servers running Windows NT Server. These services run at the same interval and scan for information in the same way. However, the Inventory Agent service on computers running Windows NT Workstation runs in the context of the Local System account (not the SMS Service Account as with SMS logon servers), which provides the service full access to the client. This means that the Inventory Agent service does not have direct access to network resources because the Local System account does not have access to the network.

On computers running Windows NT Workstation, the Client Monitor program complements the Inventory Agent service by providing network access to the SMS logon server. The Inventory Agent service requires network access so that updates to the package rule files (as well as the hardware and software scan intervals) can be retrieved from the SMS logon server and RAW files containing inventory reports can be copied to the SMS logon server. After the Client Monitor has copied the files, the Inventory Agent service can then use the local files to get the inventory scanning information (instead of having to connect to the SMS logon server). The Inventory Agent service writes the .RAW file (which contains the inventory report for the client) to the MS\SMS\INVDATA directory on the client. The Client Monitor then moves the .RAW files from MS\SMS\INVDATA to the SMS logon server.

The Client Monitor has three threads. The main thread manages the Client Monitor program itself; the client service thread handles special requests for restarts by the Client Configuration Manager; and the inventory helper thread provides communication between the Inventory Agent and the SMS logon server.

From the SMS logon server, the Client Monitor inventory helper thread copies the following files to the MS\SMS\DATA directory on the client:

To the SMS logon server, the Client Monitor inventory helper thread copies .RAW files from the MS\SMS\INVDATA directory on the client to the LOGON.SRV\INVENTRY.BOX directory.

When the Client Monitor starts, the inventory helper thread does the following:

When the inventory helper thread copies .RAW files to the SMS logon server, it copies them as *.TMP to ensure that the Inventory Processor does not begin processing a file that is still being copied to the SMS logon server. After a .RAW file is copied as .TMP file, it renames *.TMP to a *.RAW file (with a unique file name) and deletes the *.RAW file on the client.

After this initial processing, the inventory helper thread sleeps and waits on the following events:

If the Inventory Agent service is not installed, the inventory helper thread spends most of its time sleeping, waiting for the client inventory installation state to change (this is set in the registry by SMS Client Setup). In this case, the inventory helper thread does not copy inventory configuration files from the SMS logon server. It will check once for any .RAW files and copy them to the SMS logon server. Thereafter, it will ignore changes to the MS\SMS\INVDATA directory—until the Inventory Agent service is installed.

Collecting Inventory from Macintosh Computers

To initiate inventory collection for the first time, a user at a Macintosh client must connect manually to an SMS logon server running Windows NT Server and Services for Macintosh, and run the Installer program. After that, inventory collection is automatic.

The user runs the Installer by selecting the Chooser to connect to the SMS logon server, and locating the MAC.BIN folder. When the user opens the Installer within the Macintosh folder, SMS files, including the INVMac program, are copied to the client. INVMac is copied to System Folder:Startup Items. When the Installer is completed, it requires that the Macintosh be restarted. At restart, INVMac runs automatically because it is a startup item.

When INVMac runs, it creates a local SMS.INI file as well as two files that store hardware and software inventory history: InvHWScanResult and InvSWScanResult. INVMac also launches the Package Command Manager (PCMMac).

INVMac puts inventory results in the LOGON.SRV\ISVMIF.BOX directory on the SMS logon server as a *.MIF file. The Maintenance Manager moves the MIF files from the Services for Macintosh logon server to the SITE.SRV \ISVMIF.BOX directory on the site server. The Inventory Processor processes these files and places them in the SITE.SRV\DATALOAD.BOX \DELTAMIF.COL directory.

At a primary site, the Inventory Processor processes these files into Binary MIF files and places them in the SITE.SRV\DATALOAD.BOX\DELTAMIF.COL directory. The Inventory Data Loader uses the Binary MIF files to update the computer inventory in the site database and places the MIF files in the SITE.SRV\SITEREP.BOX directory for the Site Reporter to forward the MIF files to the site's parent site. For more detailed information about how inventory is processed at a primary site, see "Collecting Inventory at a Primary Site" earlier in this chapter.

At a secondary site, the Inventory Processor processes these files into Binary MIF files and places them in the SITE.SRV\SITEREP.BOX directory for the Site Reporter to forward the MIF files to the site's parent site. For more detailed information about how inventory is processed at a secondary site, see "Collecting Inventory at a Secondary Site" earlier in this chapter.

Collected files are placed in the *.CFD directory on the Services for Macintosh logon server. If there are no collected files, this directory does not exist. Files in this directory include *.FIL which are collected from the Macintosh client and one cataloging file, COLLFILE.LST. The COLLFILE.LST file is an ASCII file relating the files 0000000x.FIL to the path on the Macintosh client.

Collecting Inventory from OS/2 Computers

When the Inventory Agent for OS/2 runs on servers running LAN Manager version 2.x and LAN Server and the Inventory Agent program runs on OS/2 clients, it scans for hardware and software inventory. However, the Inventory Agent for OS/2 does not report inventory as a RAW file in the LOGON.SRV \INVENTRY.BOX directory. Instead, it creates a text MIF file and places it in the LOGON.SRV\ISVMIF.BOX directory on the SMS logon server. The Maintenance Manager moves the MIF files from the SMS logon server to the SITE.SRV\ISVMIF.BOX directory on the site server.

At a primary site, the Inventory Processor converts these files into Binary MIF files and places them in the SITE.SRV\DATALOAD.BOX\DELTAMIF.COL directory. The Inventory Data Loader uses the Binary MIF files to update the computer inventory in the site database and places the MIF files in the SITE.SRV\SITEREP.BOX directory for the Site Reporter to forward the MIF files to the site's parent site. For more detailed information about how inventory is processed at a primary site, see "Collecting Inventory at a Primary Site" earlier in this chapter.

At a secondary site, the Inventory Processor converts these files into Binary MIF files and places them in the SITE.SRV\SITEREP.BOX directory for the Site Reporter to forward the MIF files to the site's parent site. For more detailed information about how inventory is processed at a secondary site, see "Collecting Inventory at a Secondary Site" earlier in this chapter.