Win32_Environment类

Win32_EnvironmentWMI 类表示Windows计算机系统上的环境或系统环境设置。 查询此类将返回在以下项中找到的环境变量:

\ HKEY_LOCAL_MACHINE系统\CurrentControlSet\控制\Sessionmanager\环境

and

\ HKEY_USERS< userEnvironment>\

以下语法从托管对象格式 (MOF) 代码中简化,包括所有继承的属性。 属性按字母顺序列出,而不是按 MOF 顺序列出。

语法

[Dynamic, Provider("CIMWin32"), Privileges("SeRestorePrivilege"), UUID("{8502C4D2-5FBB-11D2-AAC1-006008C78BC7}"), SupportsCreate, CreateBy("PutInstance"), SupportsDelete, DeleteBy("DeleteInstance"), SupportsUpdate, AMENDMENT]
class Win32_Environment : CIM_SystemResource
{
  string   Caption;
  string   Description;
  datetime InstallDate;
  string   Status;
  string   Name;
  boolean  SystemVariable;
  string   UserName;
  string   VariableValue;
};

成员

Win32_Environment类包含以下类型的成员:

属性

Win32_Environment类具有这些属性。

Caption

数据类型: 字符串

访问类型:只读

限定符: MaxLen (64) , DisplayName (“Caption”)

对象的简短文本说明。

此属性继承自 CIM_ManagedSystemElement

说明

数据类型: 字符串

访问类型:只读

限定符: DisplayName (“Description”)

对象的文本说明。

此属性继承自 CIM_ManagedSystemElement

InstallDate

数据类型: datetime

访问类型:只读

限定符: MappingStrings (“MIF。DMTF|ComponentID|001.5“) , DisplayName (”安装日期“)

指示对象安装的时间。 缺少值并不表示未安装对象。

此属性继承自 CIM_ManagedSystemElement

名称

数据类型: 字符串

访问类型:读/写

限定符: 重写 (“Name”) , MappingStrings (“Win32Registry|System\\CurrentControlSet\\Control\\Session Manager\\Environment“)

指定基于Windows环境变量的名称的字符串。 通过指定尚不存在的变量的名称,应用程序会创建新的环境变量。

示例:“Path”

Status

数据类型: 字符串

访问类型:只读

限定符: MaxLen (10) , DisplayName (“Status”)

指示对象的当前状态的字符串。 可以定义操作和非操作状态。 操作状态可以包括“确定”、“已降级”和“Pred Fail”。 “Pred Fail”表示元素正常运行,但预测故障 (例如启用了 SMART 的硬盘驱动器) 。

非操作状态可能包括“错误”、“正在启动”、“正在停止”和“服务”。 “服务”可在磁盘镜像重新加密、重新加载用户权限列表或其他管理工作期间应用。 并非所有此类工作都处于联机状态,但托管元素既不是“正常”,也不是在其他状态之一。

此属性继承自 CIM_ManagedSystemElement

包括以下值:

确定 (“确定”)

错误 (“错误”)

降级 (“已降级”)

未知 (“未知”)

Pred Fail (“Pred Fail”)

启动 (“启动”)

停止 (“停止”)

服务 (“服务”)

(“强调 ”)

NonRecover (“NonRecover ”)

无联系人 (“无联系人”)

Lost Comm (“Lost Comm”)

SystemVariable

数据类型: 布尔值

访问类型:只读

限定符: MappingStrings (“Win32Registry|System\\CurrentControlSet\\Control\\Session Manager\\Environment“)

指示变量是否为系统变量。 系统变量由操作系统设置,独立于用户环境设置。

UserName

数据类型: 字符串

访问类型:只读

限定符: keyMaxLen (260) 、 MappingStrings (“Win32Registry|System\\CurrentControlSet\\Control\\Session Manager\\Environment“)

环境设置的所有者的名称。 对于特定于基于Windows的系统 (的设置,它设置为 <SYSTEM>,而不是默认用户设置的特定用户) 和 <DEFAULT>。

示例:“JSmith”

VariableValue

数据类型: 字符串

访问类型:读/写

限定符: MappingStrings (“Win32Registry|System\\CurrentControlSet\\Control\\Session Manager\\Environment“)

基于Windows环境变量的占位符变量。 文件系统目录等信息可以从计算机更改为计算机。 操作系统将占位符替换为这些占位符。

示例:“%SystemRoot%”

备注

Win32_Environment类派生自 CIM_SystemResource。 可以使用此类查找特殊文件夹的路径,例如远程计算机上的 System 文件夹或 Program 文件。 一些示例包括:windir、systemroot、programfiles 和 userprofile。 Win32_Environment 基本上返回可在以下项中找到的内容:

\ HKEY_LOCAL_MACHINE系统\CurrentControlSet\控制\Sessionmanager\环境

and

\ HKEY_USERS< userEnvironment>\

使用此类的调用过程必须在注册表所在的计算机上具有 SE_RESTORE_NAME 特权。 例如,如果在本地计算机上枚举此类,则运行应用程序的帐户必须具有此权限。 有关详细信息,请参阅 执行特权操作

示例

计算机 Perl 示例中 的列表环境变量 使用 WMI 返回有关计算机上所有环境变量的信息。

以下 VBScript 代码示例枚举本地计算机上的环境变量。

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colVar = objWMIService.ExecQuery("Select * from Win32_Environment")
For Each objVar in colVar
    Wscript.Echo "Description: " & objVar.Description & VBNewLine _
               & "Name: " & objVar.Name & VBNewLine _
               & "System Variable: " & objVar.SystemVariable & VBNewLine _
               & "User Name: " & objVar.UserName & VBNewLine _
               & "Variable Value: " & objVar.VariableValue 
Next

以下 VBScript 代码示例将名为BUILD_TYPE的环境变量更改为用户输入的值。 该脚本假定BUILD_TYPE变量已存在。 如果该脚本不存在,则脚本将结束。 检查输入值:它必须是“Build1”、“Build2”或“Build3”,并且不接受其他值。 VBScript UCase 函数使输入不区分大小写。 如果键入的内容不是三个可接受的值之一,脚本将结束。

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Environment")
Found = False
For Each objItem in colItems
    If objItem.Name = "BUILD_TYPE" Then
    Found = True
    Change = UCase(InputBox("BUILD_TYPE currently = " & objItem.VariableValue & VBNewLine _
                          & "Change options are Build1, Build2, Build3 "))
        If UCase(Change) = "BUILD1" OR Change = "BUILD2" OR Change = "BUILD3" Then
            objItem.VariableValue = Change
            objItem.Put_
        WScript.Echo "BUILD_TYPE changed to " & objItem.VariableValue
        Else 
        WScript.Echo "No input or unacceptable input." & " No change to BUILD_TYPE"
        End If
    End If
Next
If Found = False Then
    WScript.Echo "User-defined environment variable BUILD_TYPE not found."
End If

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
命名空间
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

另请参阅

CIM_SystemResource

操作系统类