Why isn't the Systems Management Server (SMS) adding inventory information to my SQL database?

This process can fail for several reasons. The Inventory Agent can display the message "Error Opening File" when collecting more than two files. SMSLS.BAT in the login script can produce errors if you manually create the directory structure in NETLOGON and don't correctly update the directory when you upgrade to SMS 1.1. Or SMS can be creating .RAW files but not changing them into Management Information Files (.MIFs) or not adding the .MIFs to the SQL database.

Go through the inventory process in verbose mode. Set the environment variable SMSLS=1 on the client workstation, or run the client's Inventory Agent using the /V switch. This switch provides a verbose display of all messages on screen. For Inventory Agent command-line syntax, see Appendix B, "Inventory Agent" in the SMS Administrator's Guide. Look at the output for errors or for a process stopped prematurely. Appendix C, "Collecting Inventory at a Primary Site," SMS Administrator's Guide, maps the flow of a .RAW file to a .MIF (a text file) before SMS writes the .MIF to the SQL database. Pay attention to the services involved and review their log files to troubleshoot the problem. The following are some possible solutions.

If you receive the message, "Error Opening File," on the SMS client during inventory and you're collecting more than two files, you have two workarounds. First, look in \SMS\LOGON.SRV\INVENTRY.BOX on the client's SMS logon server for a .TMP file. You continue the inventory process by changing the .TMP extension on this file to .RAW. The other workaround is to disable the "collected files" portion of any inventory packages. If you need to collect files, don't collect more than two files per inventory package.

If you run Inventory Agent on a new client, but the inventory doesn't show in the database, look at the CURRENTLOGONSERVER entry in the hidden C:\SMS.INI file on the client to determine which logon server SMS is reporting the inventory to. Stop the SMS Maintenance Manager and Site Configuration Manager services on the site server, and run inventory on the new client again.

For MS-DOS, Windows 3.X, Windows for Workgroups, and Windows NT clients, check the \\SMS_SHR\INVENTRY.BOX directory for a client-generated .RAW file. For Macintosh and OS/2 clients, check the \\SMS_SHR\ISVMIF.BOX directory for a .MIF. A new .MIF is 40KB to 60KB. Delta .MIFs are less than 5KB. If multiple files exist, look for the most recent. Display the file's text contents and look for an SMS ID that matches the SMS unique ID in C:\SMS.INI. If the .RAW file or .MIF exists, Inventory Agent is working properly.

If the .RAW file or .MIF doesn't exist, check to see whether the client's Inventory Agent can connect and write to the SMS client. See the next section to determine whether an SMS Site service is suspect. Restart the SMS Maintenance Manager and Site Configuration Manager services when you finish this test.

If the Inventory Agent works on the client but SMS doesn't update the hardware inventory, stop the SMS services with SMS Services Manager while you troubleshoot. After you finish examining each file, start the service that will process that file. This approach lets you look at the file before the service deletes the file and sends the results to the next point in the system.

Confirm that the client's hardware inventory collection interval expired. Check the current LASTHARDWARESCAN value in the SMS.INI file. Add the inventory collection interval, and configure it for the SMS site server. Compare the resulting date against the client's date. SMS uses this procedure to determine when to collect hardware or software inventory. (For more information on the inventory process, see the SMS Administrator's Guide, Appendix C.)

The SMS Maintenance Manager service collects a .RAW file or .MIF from the logon servers and transfers it to the \SMS\SITE.SRV\INVENTRY.BOX or ISVMIF.BOX directory on the SMS site server, depending on the client type. If SMS doesn't create and place a .RAW file or .MIF while the SMS Maintenance Manager is collecting inventory, check the \SMS\LOGS\MAINTMAN.LOG file for connection or transfer errors.

After the .RAW file or .MIF reaches the SMS site server, the SMS Inventory Data Processor service processes the file and places the output in the \SMS\SITE.SRV\DATALOAD.BOX\DELTAMIF.COL directory. If this service doesn't remove the file from the source directories, or if the file doesn't appear in the destination directory, check the \SMS\LOGS\INVPROC.LOG file for errors.

After the SMS Inventory Data Processor writes the output to the ..\DELTAMIF.COL directory, the SMS Inventory Data Loader copies the data in the file to the SQL database. If this service doesn't remove the file from this directory or the data doesn't appear in the SQL database, check the \SMS\LOGS\DATALODR.LOG file for errors.

Log file entries report both the SMS Event ID and the NT error code. Convert the NT error code to text with ERROR32.EXE to determine what the error is. Copy ERROR32.EXE from \PSSTOOLS on the SMS installation CD.

If the inventory in the database is corrupt or incorrect, run Inventory Agent on the client and look for the client-generated .RAW file or .MIF. Compare the inventory in the .RAW file or .MIF with the client's configuration. If the .RAW file or .MIF inventory is correct on the logon server, check the file again after the SMS Maintenance Manager moves the file to the site server and again after the SMS Inventory Data Processor creates the delta .MIF in the ..\DELTAMIF.COL directory. To find out whether the Inventory Agent is responsible for corrupting a .RAW file or .MIF on the logon server, enable the Inventory Agent verbose mode and watch for errors.

Network or file system problems can corrupt a .RAW file or .MIF on the SMS site server. Check the associated service log files for error or warning messages. If the .MIF is corrupt, the SMS Data Loader service will usually parse the .MIF and place it in the \DATALODR.BOX\BADMIFS directory for the administrator to review.

If SMS doesn't collect or update the software inventory, confirm that the software inventory collection interval has expired. Check the current LASTSOFTWARESCAN value in the SMS.INI file. Add the inventory collection interval, and configure it for the SMS site server. Compare the resulting date against the client's date.

Confirm that SMS created and placed a compiled software package rules file (PKG_16.CFG) on the logon server. This file specifies what software inventory the Inventory Agent collects from the SMS client. (For more information about how SMS creates and places PKG_16.CFG on logon servers, see the SMS Administrator's Guide, Appendix C.)

Check the PACKAGE.RUL file (see Appendix C for its location) and confirm that it has the proper software package rules. SMS compiles this file to create the PKG_16.CFG file.

Finally, check the resulting .RAW file or .MIF that the Inventory Agent creates. SMS appends software inventory and any files the Inventory Agent collects to the end of the hardware inventory section. Carefully check the Software Package inventory rule properties that you create with the SMS Administrator. Many software inventory problems occur because of a bad rules configuration.

Contact Info
Microsoft * 206-882-8080
Web: http://www.microsoft.com/supportnet

The shared applications I sent to my client won't execute, or they produce errors on execution. Where do I look for the problem?

First, make sure that, at logon, the NT domain controller is validating users you specify to receive the package. When an SMS client runs SMSRUN16.EXE and the Program Group Control (PGC), the program calls APPCTL16.EXE. If the NT domain controller can't validate the client user at logon, the API that determines the global group membership fails, resulting in one or all of the following error messages:

PGC-Could not enumerate applications in applications database

PGC-Application database gave error 20

PGC-Could not find object application list in application database

PGC-Could not complete the updating of the program configuration, contact admin.SMS

This problem usually occurs when clients on the other side of a router from a domain controller can't locate a domain controller for validation.

If the problem doesn't involve the client logon validation, you can use VIEWNAD.EXE to look at the network applications database (NAD). This utility is in the \PSSTOOLS directory of the SMS installation CD. Execute VIEWNAD.EXE from the directory \\SMS\LOGON.SRV\APPCTRL.BOX\DATABASE.

Why does my Windows 95 client receive errors during a remote control session?

Win95 Explorer and Internet Explorer can cause a general protection fault if you repeatedly attempt to remotely control a Win95 client. The following error can also appear:

Application Error: WUSER2 caused a general protection fault in module IDIS_LM.DLL at xxxx:xxxx

US Service Pack 1 for SMS 1.1 corrected this problem.

How can I successfully configure my NetWare logon server for my SMS site server?

Make sure the SMS site server's Service Account has full rights to the root directory and that it is a member of the everyone group. You can run into difficulty if you define several NetWare domains and enable Use All Detected Servers in the SMS Administrator's user interface. By default, using Use All Detected Servers locates all NetWare servers within 16 router hops. SMS adds the logon servers in these domains to multiple SMS domains and multiple sites (if the NetWare domains are in different sites), which can cause configuration and inventory problems. To avoid these problems, switch from Use All Detected Servers to Use Specified Servers.

\[Editor's Note: For more on these issues, see Windows NT Magazine technical support forums at http://www.winntmag.com, Microsoft TechNet, CompuServe's WINNT forum, America Online's Windows NT area, The Microsoft Network, and Microsoft's Internet servers--http://www.microsoft.com and ftp://ftp.microsoft.com. The Microsoft Knowledge Base is at http://198.105.232.4:80/isapi/fts.dll?db=KB_winnt&qu=&qu=nt&mh=20.\]