Microsoft® Windows® 2000 Scripting Guide
Retrieving the Properties of the Operating System
Even though the operating systems on two different computers might have the same name and version number, those two operating systems can still differ. They might be configured with different language settings, support different encryption levels, or have different client licensing requirements.
Many differences between similar computers are reflected in the detailed property settings of their operating systems. These property settings can greatly affect the way each computer should be managed. For example, you might send a different technician to work on a computer running a Japanese version of a Windows 2000 operating system than you would send to work on a computer running a French version.
The WMI Win32_OperatingSystem class can be used to retrieve details of the operating system installed on a computer.
Important
-
Unfortunately, WMI can retrieve information only about the operating system currently being used by a computer. For example, suppose you have a dual-boot computer with Windows XP and Windows 2000 installed, and the computer is currently running under Windows XP. If you run a script to return information about the operating system, only information for Windows XP will be returned.
Some of the more commonly used properties from this class are listed in Table 8.9.
Table 8.9 Win32_OperatingSystem Properties
|
Property
|
Description
|
|
BootDevice
|
Name of the disk drive from which the Win32 operating system boots.
|
|
BuildNumber
|
Build number of the operating system. The build number can be used for more precise versioning information than product release version numbers.
For example, 2195 is the build number for the released version of Windows 2000.
|
|
BuildType
|
Type of build used for the operating system. The two primary build types are retail (the build purchased through a software vendor), and checked (test versions of the operating system that include special code to aid in debugging).
|
|
Caption
|
Name of the operating system.
|
|
CodeSet
|
Code page value used by the operating system.
A code page contains a character table used by the operating system to translate strings for different languages. The American National Standards Institute (ANSI) lists values that represent defined code pages. If the operating system does not use an ANSI code page, this member will be set to 0. The CodeSet string can use up to six characters to define the code page value. For example, the code page value for US English is 1252.
|
|
CountryCode
|
Code for the country/region used by the operating system.
Values are based on international phone dialing prefixes (also referred to as IBM country/region codes). The property can use up to six characters to define the country/region code value. For example, the country code for the United States is 1.
|
|
Debug
|
Operating system is a checked (debugged) build.
Checked builds provide error checking, argument verification, and system debugging code. Additional code in a checked binary generates a kernel debugger error message and breaks into the debugger. This helps to immediately determine the cause and location of the error. Performance suffers in the checked build because of the additional code that must be executed. In general, checked builds should be used on test computers, not production computers.
|
|
InstallDate
|
Date the operating system was installed, in UTC format.
|
|
NumberOfLicensedUsers
|
Number of user licenses for the operating system. If unlimited, this is returned as 0. If unknown, this is usually returned as -1.
|
|
Organization
|
Company name of the registered user of the operating system.
|
|
OSLanguage
|
Language version of the operating system installed. Sample values for this property include:
0001 - Arabic
0004 - Chinese
0009 - English
0401 - Arabic (Saudi Arabia)
0402 - Bulgarian
0403 - Catalan
0404 - Chinese (Taiwan)
0405 - Czech
0406 - Danish
0407 - German (Germany)
0408 - Greek
0409 - English (United States)
|
|
OSProductSuite
|
Installed and licensed system product additions to the operating system. Values include the following:
1 - Small Business Server
2 - Enterprise Server
4 - Back Office Server
8 - Communication Server
16 - Terminal Server
32 - Small Business Server (restricted)
64 - Embedded NT
128 - Data Center
|
|
OSType
|
Type of operating system. The most common values include:
16 = WIN95
17 = WIN98
18 = WINNT
19 = WINCE
The value 18 (WINNT) is returned as the OsType for Windows 2000 and Windows XP.
|
|
Primary
|
Boolean value that indicates whether this is the primary operating system. This property is meaningful only on multiple-boot computers that have more than one operating system installed.
|
|
RegisteredUser
|
Name of the registered user of the operating system.
|
|
SerialNumber
|
Serial identification number of the operating system.
|
|
Version
|
Version number of the operating system (for example, 4.0).
|
Scripting Steps
Listing 8.7 contains a script that retrieves the properties of the operating system currently in use on a computer. To carry out this task, the script must perform the following steps:
-
Create a variable to specify the computer name.
-
Use a GetObject call to connect to the WMI namespace root\cimv2, and set the impersonation level to "impersonate."
-
Use the ExecQuery method to query the Win32_OperatingSystem class.
This query returns a collection consisting of the operating system currently in use on the computer.
-
For the only operating system in the collection, echo the values for the specified properties.
Listing 8.7 Retrieving the Properties of the Operating System
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("SELECT * FROM Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Wscript.Echo "Boot Device: " & objOperatingSystem.BootDevice
Wscript.Echo "Build Number: " & objOperatingSystem.BuildNumber
Wscript.Echo "Build Type: " & objOperatingSystem.BuildType
Wscript.Echo "Caption: " & objOperatingSystem.Caption
Wscript.Echo "Code Set: " & objOperatingSystem.CodeSet
Wscript.Echo "Country Code: " & objOperatingSystem.CountryCode
Wscript.Echo "Debug: " & objOperatingSystem.Debug
Wscript.Echo "Install Date: " & objOperatingSystem.InstallDate
Wscript.Echo "Licensed Users: " & _
objOperatingSystem.NumberOfLicensedUsers
Wscript.Echo "Organization: " & objOperatingSystem.Organization
Wscript.Echo "OS Language: " & objOperatingSystem.OSLanguage
Wscript.Echo "OS Product Suite: " & objOperatingSystem.OSProductSuite
Wscript.Echo "OS Type: " & objOperatingSystem.OSType
Wscript.Echo "Primary: " & objOperatingSystem.Primary
Wscript.Echo "Registered User: " & objOperatingSystem.RegisteredUser
Wscript.Echo "Serial Number: " & objOperatingSystem.SerialNumber
Wscript.Echo "Version: " & objOperatingSystem.Version
Next
|