KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q140781: How Systems Management Server Detects a Windows Client

Article: Q140781
Product(s): Microsoft Systems Management Server
Version(s): winnt:1.1,1.2
Operating System(s): 
Keyword(s): kbnetwork kbsetup smssetup
Last Modified: 27-JUL-2001

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Systems Management Server versions 1.1, 1.2 
-------------------------------------------------------------------------------

SUMMARY
=======

Because of the wide variety in client configurations, Systems Management Server
must use several methods of detecting if Windows is installed on the client, and
where that installation is located. An additional step of detecting the exact
Windows version is also necessary.

Once client setup has set the operating system(s) and network types, only these
types are used by the inventory agent when reporting machine inventory. Related
to this, the network type of the client is solely determined by the network type
of the Systems Management Server logon server the client was installed from.

MORE INFORMATION
================

The Systems Management Server Client Setup (CLI_DOS.EXE) uses the following
steps:

1. If SMS.INI already exists, the LocalWindowsPath and WindowsPath keys are
  checked. SharedWindowsPath may also be examined, and if Windows is running, a
  call to GetWindowsDirectory() is issued. Most existing installs are resolved
  in this step.

2. Use the WINDIR environment variable created by Windows. If it does not exist,
  Windows is not running and another detection method must be used. If found,
  much time is saved by not having to walk the search PATH any more.

3. For a local install of Windows, Setup checks along the path for WIN.INI and
  for shared Windows Setup checks for WIN.COM. Setup should succeed here in
  most cases.

  NOTE: Shared Windows is currently not supported by Systems Management Server,
  but a reasonable effort has been made to contend with it.

4. As a last measure, Setup assumes the path is truncated due to a DOS
  environment problem, and Setup then takes the contents of the SMS_P
  environment variable (set in the SMSLS and RUNSMS scripts) and adds this
  string back into the PATH environment variable. Setup then goes back to step
  3 and checks along the path.

5. Once Setup locates the Windows directory, it ensures that SYSTEM.INI exists
  in that location as a verification.

6. Assuming Setup finds WIN.INI or WIN.COM, Setup attempts to obtain the exact
  Windows type (Win16 vs. Windows for Workgroups) by trying to find WINVER.EXE
  which is located in the Windows directory. If WINVER.EXE is found Setup runs
  it and five bytes are read from offset 0x200 in the file.

The version information is also language specific, and the following signatures
are used to identify whether Windows or Windows for Workgroups is installed.
Note that Setup uses the language specific data not to determine a language
setting, but only to distinguish Windows from Windows for Workgroups.

From the five bytes read from WINVER.EXE, bytes 3 and 4 contain the major and
minor version data. Byte 1 contains the following used for Windows versus
Windows for Workgroups detection:

Windows 3.1 =  0x44         // Almost all languages
              0x54         // Chinese
              0x64         // Korean
Workgroups 3.11 =  0x2B   // Almost all languages
                  0x24   // Finnish
                  0x2C   // French
                  0x2D   // Hungarian
                  0x32   // Spanish

If you think there are problems detecting the Windows directory, ensure that
WIN.COM, WIN.INI, and WINVER.EXE are all available along the path.


Additional query words: prodsms

======================================================================
Keywords          : kbnetwork kbsetup smssetup 
Technology        : kbSMSSearch kbSMS110 kbSMS120
Version           : winnt:1.1,1.2

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.