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 \<LOGON SERVER>\SMS_SHR\INVENTRY.BOX directory for a
client-generated .RAW file. For Macintosh and OS/2 clients, check the \<LOGON
SERVER>\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.