As the typical harried and over-stressed network administrator, how can you
make Microsoft Systems Management Server (SMS) collect the information you need?
This article is the first in a series that covers procedures for using SMS to
inventory desktop systems. Part 1 focuses on how to collect the information.
Part 2 will illustrate how to develop reports using data in the SMS database.
Part 3 will examine how to extend the SMS database and third-party add-on
products, such as Digital Equipment's Assetworks.
To see how to use SMS in a typical environment, let's examine four levels
of inventory needs. For example, with Microsoft Word, these four levels tell you
- who has winword.exe
- who has Word
- who has a working version of Word
- who has no version of Word
These four points present an increasingly complex set of problems to a
network administrator. Handling the last two situations requires taking SMS
beyond the basics.
Who Has Winword.exe
If you have installed SMS properly, it automatically inventories the
hardware and operating-system software on your network. The first software
inventory level concerns finding out which desktop systems have a given file,
such as winword.exe. The SMS Administrator's Guide covers this level.
You create a package, and SMS tells you who has it. For example, to find out who
has winword.exe, you create a package by selecting New from the File menu in the
Packages window, to get the display on screen 1.
Once you specify the properties of the file you want inventoried, SMS goes
to work. The process is straightforward: The SMS_Executive service includes a
process called the Applications Manager, which monitors the SQL database for new
or changed packages and locates a transaction requesting an inventory of
win-word.exe: PACKAGE1"InventoryWINWORD.EXE" FILE"WINWORD.EXE"DATE10/09/94.
The Applications Manager updates the file package.rul, which contains all the
software scanning rules for the site, in the \site.srv\maincfg.box\pkgrule
directory.
Another portion of the SMS_Executive service, the Maintenance Manager,
creates the real rule file, pkg_16.cfg, and copies it to the logon servers at
the site. When a client logs on to the domain, the logon script initiates the
appropriate inventory agent process on the desktop. This local process searches
the local drives based on the rules in pkg_16.cfg and saves the results in a
file with a .raw or .mif extension on the logon server. The Maintenance Manager
moves these results back to the site server; then the Inventory Processor and
Inventory Data Loader upload them from the site server to the SQL database. At
this point, you can see the inventory results by reviewing the Personal Computer
Properties of a system in the Sites window, shown on screen 2.
This procedure is fine if you just want to view the information on a
computer-by-computer basis. Ordinarily, however, you want a list of all the
systems that have a given file. To generate this list, you create a query. The
SMS Administrator's Guide describes this process, which Part 2 of this
series will discuss at length.
Who Has Word
More often than not, you won't care whether a desktop system has a file of a
given name or date; you're more likely to be interested in a certain software
package. Which files are in that package doesn't matter. SMS lets you create a
special type of package into which you can import a set of definitions that
software vendors have created to aid in the inventory process. This process is
software auditing.
To set up an inventory for a specific software package, you manually create
a rule file similar to package.rul. Microsoft provides a list of more than 2800
commercial applications in the file \sms\primsite.srv\audit\audit.rul. You can
edit or append rules to this list.
Let me give you an example of software auditing: Suppose you want to find
out who has any version of Microsoft Word. Believe it or not, there are more
than 105 different releases of Word, including all the different language
versions, but not including the Office, Professional Office, or Office 95
releases. Setting up inventory packages for all these releases would be a
nightmare, so you decide to try auditing instead. Your first step is to edit
audit.rul to include only the information for Word and save it as a temporary
file, as screen 3 shows.
To get the 105 releases of Microsoft Word, I edited the version of
audit.rul that comes with SMS 1.1 and saved it as word.rul. Then, I ran the
program rul2cfg.bat, also in \sms\primsite.srv\audit, to turn this file into
audit.cfg. (No matter what you call your temporary file, the output file is
always audit.cfg, which corresponds to pkg_16.cfg.)
To conduct the software inventory, you also need to create a regular SMS
package and job: You import audit.pdf for the package definition and create a
Run Command on Workstation job, which forces clients to run audit16.exe or
audit32.exe on the desktop. The resulting .mif file is brought back to the site
server from the logon server, and the data is loaded into the SQL database. This
time, however, you don't see the data in the Packages section of the Personal
Computer Properties; you see the Audited Software group, as on screen 4.