DOCUMENT:Q140781 27-JUL-2001 [sms] TITLE :How Systems Management Server Detects a Windows Client PRODUCT :Microsoft Systems Management Server PROD/VER:winnt:1.1,1.2 OPER/SYS: KEYWORDS:kbnetwork kbsetup smssetup ====================================================================== ------------------------------------------------------------------------------- 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 2001.