运行 Windows Management Instrumentation 命令行

运行 Windows Management Instrumentation 命令行

在首次运行 Windows Management Instrumentation 命令行 (WMIC) 时,它将编译别名定义或托管对象格式 (MOF) 文件。每当 MOF 文件发生更改时,WMIC 都会重新编译这些文件并更新储备库。

可选择以交互模式或非交互模式使用 WMIC。下面为您提供了一些有关两种模式的特性和功能的信息:

交互模式

交互模式下的 WMIC 在执行一个命令之后返回 WMIC 命令提示符。Root\cli 是默认 WMIC 角色,当您以交互模式启动时,即处于该状态下。ExitQuit 命令用于退出 WMIC。

交互模式对于要输入一系列 WMIC 命令的情况非常有用。

要在交互模式下启动 WMIC,请参阅在交互模式下运行 WMIC。

下面的示例提供了在使用 WMIC 交互模式的情况下可以在 WMIC 提示符处输入的别名、命令和全局开关:

  • CONTEXT - 列出所有环境变量(全局开关)。
  • OS - 以默认表格格式显示有关操作系统的数据。
  • OS list full - 以 LIST 格式显示 OS 别名数据。
  • /? - 列出可用的环境变量和别名的描述。

    • OS /? - 列出操作系统可用的选项。
    • OS list /? - 指定“list”操作的格式。
    • OS list full /? - 列出可用的开关。
    • OS list full /format /? - 为可用的格式列出关键字。
    • OS call /? - 列出可用的方法(动词)。
    • OS get /? - 列出可用的属性。

非交互模式

非交互模式下的 WMIC 在执行您输入的命令之后退出 WMIC。在命令完成之后返回到 WMIC 命令提示符。WMIC 别名、全局开关或命令也可以在非交互模式下使用。

如果要为一个批处理过程使用 WMIC,或者如果您只需执行一条 WMIC 命令,则非交互模式很有用。

要在非交互模式下启动 WMIC,请参阅在非交互模式下运行 WMIC。

下面的示例显示了如何在非交互模式下运行命令:

  • <PROMPT>wmic os get /format:hform>MyOS.htm

    输出被定向到 html 文件,并返回到起始命令提示符处。
  • <PROMPT>wmic /?

    列出帮助文件,并返回到起始命令提示符处。
使用 WMIC 帮助

使用 WMIC 帮助

WMIC 在命令行上包括联机帮助。在任何级别都可键入 /? 以获取更多的详细信息。通过 /?,您将得到当前角色中可用的全局开关和别名。当 /? 用在别名之后时,您可以得到该别名可用的谓词和开关;当 /? 用在谓词之后时,可以提供该谓词的详细信息。

例如:

有关别名和语法列表,请在命令提示符下键入 wmic 以启动 WMIC 外壳,然后键入:

Windows Management Instrumentation 命令行(MSDN)(WMIC)_解决方案 复制代码
/?

要显示 Process 别名可用的选项,请在 WMIC 外壳中键入:

Windows Management Instrumentation 命令行(MSDN)(WMIC)_解决方案 复制代码
process /?

/?:FULL 将给出所有可用的详细信息。这对于 GET 和 CALL 谓词特别有用。

注意

  • 还可以使用连字符 (-?) 代替正斜杠 (/?)。
  • 对于 PATH 和 CLASS 命令,循序渐进帮助只对于单一 NODE 可用(在本地和远程计算机上)。

WMIC 别名

别名是运行 WMIC 时帮助您访问 WMI 基础结构的一种辅助手段。别名是友好名称,用来捕获与一些特定的任务(如磁盘或网络管理)相关联的 WMI 类别的特征。

别名可用来提供:

  • WMI 类别、属性和方法更清楚的名称。
  • 安排好的属性的有用输出格式。

    输出格式可以包括特定的属性值,或者以对某个具体表示法策略或功能适当的方式进行格式化。例如,别名可能具有“BRIEF”格式,此格式仅列出可通过别名来标识对象可视化的基本属性值。管理数据是以 XML 格式进行检索的,并通过内置或自定义的 XSL 输出格式进行处理。详细信息,请参阅在 WMIC 中创建和编辑格式。

WMIC 为管理信息的常用类别提供别名。您可以为其他类别添加别名。因此,WMIC 中的别名可以是以下类型:

  • root\cli 名称空间中的默认别名。

    • 对于 WMIC 包括的别名列表,请在 WMIC 命令提示符下输入 /?
    • 有关具体别名的详细信息,请输入: alias_name /?
    • 有关别名架构的详细信息,请键入: Alias alias_name list brief
  • 在 root\cli 名称空间中添加的别名。
  • 在其他名称空间中定义的别名。如果在其他名称空间中定义别名,必须使用 /ROLE 开关来指定与 WMIC 一起使用的名称空间。详细信息,请参阅创建和编辑别名。
WIMC 动词

WMIC 动词

大多数别名支持下列动词。别名还可能支持其他动词。要在 WMIC 中使用动词,请输入别名,后面跟动词。有关“<alias> /?”的详细信息,请参阅帮助中的“别名”。如果别名不支持动词,您将收到“提供程序无法进行尝试的操作”的消息。

 

动词 操作 参数或动词特定的开关 示例

ASSOC

返回查询的结果:Associators of {<wmi object>} 其中 <wmi object> 是“PATH”或“CLASS”命令返回的对象的路径。结果是与对象关联的实例。当 ASSOC 与别名一起使用时,将返回与别名的基础类关联的类。默认情况下,类的输出是 TABLE 格式。请参阅下表中的 /ASSOC 的开关。

也可以是输出文件格式,如 LIST、MOF 或其他。

OS ASSOC

CALL

执行方法。

适当的方法和参数列表。参数列表以逗号定界。使用“SERVICE CALL /?”获得当前别名的可用方法和参数的列表。

SERVICE WHERE CAPTION='TELNET' CALL STARTSERVICE

CREATE

创建一个新实例并为该新实例设置属性值。不能用于创建新的类。

属性赋值,以逗号定界。使用“CREATE /?”获得别名的属性名称列表。

ENVIRONMENT CREATE Name="WMIC_test",VariableValue="WMIC_test_value",UserName="SYSTEM"

Delete

删除当前实例或实例集。不能用于删除类。

/INTERACTIVE(提示确认)或 /NOINTERACTIVE(不提示确认)。

PROCESS WHERE NAME="CALC.EXE" DELETE

GET

获取特定的属性。

属性名或开关。请查看下面 /GET 的开关表。还可以使用“GET /?”获得别名的属性名称和开关列表。

PROCESS GET NAME

LIST

显示数据。LIST 是默认的动词。

请查看下面 LIST 的副词和开关表。

PROCESS LIST BRIEF

SET

属性集操作。

属性赋值,以逗号定界。使用“SET /?”获得别名的属性名称列表。

ENVIRONMENT WHERE Name="WMIC_test" SET VariableValue="WMIC_test_value1"

“List”动词具有下列副词。要在 WMIC 中使用副词,请输入别名,后面跟动词和副词。有关“<alias> /?”的详细信息,请参阅帮助中的“别名”。

 

副词 结果

BRIEF

属性的核心集。

FULL

完整的属性集。这是 LIST 属性的默认集。

INSTANCE

仅限实例路径。

STATUS

对象的状态和相关属性。

SYSTEM

系统属性。

别名专用或用户格式

通过提供不同的属性列表,以及显示属性时将使用的格式,可以定义别名特定的或用户定义的格式。

WRITEABLE

对象的可写入属性。

“List”动词有下列开关。要在 WMIC 中使用动词特定的开关,请输入别名,后面跟一个开关(也可以使用动词和副词)。有关“<alias> /?”的详细信息,请参阅帮助中的“别名”。

 

开关 作用

/TRANSLATE:<translation table>

使用由该命令给出转换表转换输出。BasicXml 和 NoComma 是用 WMIC 包含的转换表。

/EVERY:<interval>

每隔 X 秒就重复该命令,X 是时间间隔。

/FORMAT:<format specifier>

指定关键字或 XSL 文件名对数据进行格式化,请参阅下面注释中的说明。

“Get”动词具有下列开关。

 

开关 作用

/VALUE

使用一个单独行上列出的每个值和该属性的名称对输出进行格式化。

/ALL

输出作为表进行格式化。默认输出格式是 /ALL。

/TRANSLATE:<translation table>

使用由该命令给出转换表转换输出。BasicXml 和 NoComma 是用 WMIC 包含的转换表。

/EVERY:<interval>

每隔 X 秒就返回一次值,X 是时间间隔。

/FORMAT:<format specifier>

指定关键字或 XSL 文件名对数据进行格式化,请参阅下面注释中的说明。

“Assoc”动词具有下列开关。

 

开关 作用

/RESULTCLASS:<classname>

与源对象相关联的返回终结点必须属于指定的类别或从此派生。

/RESULTROLE:<rolename>

返回的终结点必须在与源对象的关联中扮演一个特殊的角色。

/ASSOCCLASS:<assocclass>

返回的终结点必须通过指定的类别或其派生的类别与源相关联。

注意

  • 对于“LIST”和“GET”动词,可使用格式说明符来指定 XSL 文件的名称或标准格式“TABLE”或“LIST”。“/FORMAT:TABLE”等同于“/ALL”(默认的输出格式)。
  • 可以将 MOF 格式化输出捕获到文件(使用“/RECORD”开关),而且可以在其他计算机上使用 Mofcomp.exe 编译该文件,并将其导入到其他系统上的 WMI。然而,要确保可以为其他计算机相应地编辑计算机特定的属性。
  • /FORMAT 和 /TRANSLATE 开关的顺序很重要。如果 /TRANSLATE 跟在 /FORMAT 后面,则对输出进行格式处理,然后进行转换。如果 /FORMAT 跟在 /TRANSLATE 后面,则对输出进行转换,然后再进行格式处理。

示例

下列示例阐述了动词及其副词和开关的有效使用方法。

  • PROCESS GET NAME /FORMAT:XML.XSL /TRANSLATE:BASICXML

    进程名以 XML 格式进行输出。如果不使用“/TRANSLATE”开关,则这些值周围的字符将显示为其 HTML 等效字符。
  • PROCESS WHERE Handle="0" ASSOC

    返回与特定的对象关联的实例(不同于与别名关联的类)。
WMIC 开关

WMIC 开关

全局开关用于设置 WMIC 环境的默认值。可通过输入 CONTEXT 命令查看由全局开关设置的当前条件值。

 

开关 条件 可能值 默认值

/NAMESPACE

别名通常使用的命名空间。

任意命名空间

root\cimv2

/ROLE

WMIC 通常在其中查找别名和其他 WMIC 信息的命名空间。当此角色更改时,WMIC 交互式命令提示符将随之更改,以与角色匹配。默认情况下,WMIC 只有一个角色 (\\root\cli),因此只有在您具有定义了其他角色的管理产品,或者只有已在您单位中创建了其他角色的情况下,您才有开关角色。

包含别名的任何命名空间。

root\cli

/NODE

计算机名称,以逗号分隔。将针对在此值中列出的所有计算机同步执行所有命令。文件名必须以“@”作前缀。必须使用逗号将文件内的计算机名隔开,或者将计算机名置于不同的行,也可以同时采用这两种方式。

任何计算机名,一个包含计算机名的列表,或者内含计算机名的文件。

本地计算机名称

/IMPLEVEL

模拟级别

匿名、标识、模拟、委派

模拟

/AUTHLEVEL

身份验证等级

默认、无、连接、呼叫、Pkt、Pktintegrity、Pktprivacy

Pktprivacy

/LOCALE

区域设置

MS_409(英语),MS_411(日语),MS_40B(芬兰语)等等。

安装 WMIC 时计算机用于显示的默认的文字。

/PRIVILEGES

启用所有特权。

ENABLE 或 DISABLE

启用

/TRACE

将显示用于执行 WMIC 命令的所有功能的成功或失败信息。

ON 或 OFF

关闭

/RECORD

将所有输出信息写入 XML 文件。输出信息还将在命令提示符处显示。

文件名

未设置,无默认文件名。

/INTERACTIVE

删除命令时,系统通常要求用户进行确认。

ON 或 OFF

OFF 表示使用 NON-INTERACTIVE 模式,而 ON 表示使用 INTERACTIVE 模式。

/FAILFAST

在尝试对 /NODE 计算机执行 WMIC 命令之前,是否对这些计算机进行检查。当 FAILFAST 为 ON 时,WMIC 在向 /NODE 开关中的计算机发送 WMIC 命令之前,会对它们执行 Ping 命令。如果这些计算机未响应 Ping 命令,则不对它们执行 WMIC 命令。

ON 或 OFF

OFF

/USER

访问 /NODE 计算机或者访问用别名指定的计算机时 WMIC 使用的用户名。系统将提示您输入密码。用户名不能用于本地计算机。

任意用户名。

未设置

/PASSWORD

访问 /NODE 计算机时 WMIC 使用的密码(可能包括本地计算机)。该密码在命令行中可见。

任意密码

未设置

/OUTPUT

指定输出重定向的模式。所有的输出将只被定向到给定的目标。输出不会显示在命令行中。在输出开始之前,将清除目标。

STDOUT、CLIPBOAR 或文件名。STDOUT 代表命令行。Clipboard 代表 Windows 剪贴板。然后可将输出信息粘贴到任何能以已生成格式接收数据的程序中。详细信息,请参阅下面的注释。

STDOUT

/APPEND

指定输出重定向的模式。所有的输出将只被定向到给定的目标。输出不会显示在命令行中。在输出开始之前,将不清除目标。新的输出信息将被添加到目标当前内容的末尾。

STDOUT、CLIPBOARD 或文件名。STDOUT 代表命令行。Clipboard 代表 Windows 剪贴板。然后可将输出信息粘贴到任何能以已生成格式接收数据的程序中。详细信息,请参阅下面的注释。

STDOUT

/AGGREGATE

LISTGET/EVERY 开关一同使用。如果将 AGGREGATE 设置为 ON,那么在 NODE 属性中的所有计算机响应或超时之后,LISTGET 将显示其结果。如果将 AGGREGATE 设置为 OFF,LISTGET 在被收到之后将立即显示其结果。

ON 或 OFF

ON

/AUTHORITY

为连接指定颁发类型。

如果将 IMPLEVEL 开关设置为 Delegate(如,/IMPELEVEL:Delegate),则需要设置该开关。其中包含颁发定义字符串:"kerberos:TargetDomainName\TargetComputerName"。要成功进行该设置,需要在域控制器上启用计算机的信任委派。

未设置

 

开关 示例

/NAMESPACE

/NAMESPACE:\\root 或 /NAMESPACE:SMS

/ROLE

/ROLE:\\root

/NODE

/NODE:"TESTSERVER1","TESTSERVER2",@"C:\COMPUTERLIST.TXT"

/IMPLEVEL

/IMPLEVEL:Impersonate

/AUTHLEVEL

/AUTHLEVEL:default

/LOCALE

/LOCALE:MS_411

/PRIVILEGES

/PRIVILEGES:ENABLE

/TRACE

/TRACE:ON

/RECORD

/RECORD:output.xml

/INTERACTIVE

/INTERACTIVE:ON

/FAILFAST

/FAILFAST:ON

/USER

/USER:JSMITH or /USER:""(重新将用户名和密码设置为无)。

/PASSWORD

/PASSWORD:PASSWORD

/OUTPUT

/OUTPUT:CLIPBOARD

/APPEND

/APPEND:CLIPBOARD

/AGGREGATE

/AGGREGATE:OFF

/AUTHORITY

/AUTHORITY:"kerberos:TargetDomainName\TargetComputerName"

注意

  • 要浏览可能的 ROLE 和 NAMESPACE 命名空间,请使用 WMIC PATH __NAMESPACE 命令。要查看其他命名空间中可用的命名空间,请使用 /NAMESPACE 开关更改目标命名空间。例如,使用 /NAMESPACE:\\root 命令可更改 ROOT 命名空间。
  • GETLISTASSOC 谓词具有WIMC 动词。
  • /APPEND/OUTPUT 开关会互相冲突(它们用于指定将结果发送到不同的位置)。如果它们互相冲突,系统将按照 /OUTPUT 的设置执行(/APPEND 指定将结果定向到文件的情况除外)。在这种情况下,结果将显示到 /OUTPUT/APPEND 目标。
  • 开关可以与命令在同一行上使用。例如,您可以使用 /NODE:"SERVER1" SERVICE 命令以获取 SERVER1 所提供的所有服务的列表。/NODE 开关的工作方式如上文所述,所有后续的命令也都被应用到 SERVER1。但是,如果 /OUTPUT/APPEND 与命令在同一行上使用,/OUTPUT/APPEND 所指定的结果重定向只适用于该命令。后续命令的结果将被定向到在此之前由 OUTPUT 和 APPEND 开关所指定的目标。
  • 要重置开关,请将其值设为 ""。例如:/NODE:"" NODE 设置回当前的计算机名称。

WMIC 命令

下列命令在任何时候都可以使用:

 

命令 意图

CLASS

退出 WMIC 的默认别名模式并以 WMI 架构直接访问类。

PATH

退出 WMIC 的默认别名模式并以 WMI 架构直接访问实例。

CONTEXT

显示所有全局开关的当前值。

QUIT

退出 WMIC。

EXIT

退出 WMIC。

WMIC 疑难解答

疑难解答

您有什么问题?

  • 参数无效
  • 值映射不包含该属性的输入值。
  • 与计算机或节点的失败连接上的 RPC 错误
  • 查询失败或太慢
  • 输出的行和列不对齐。
  • WMIC 的本地化版本不可用 [在一些多语言用户界面 (MUI) 或语言界面包中]
  • Windows XP Professional 上的 XSL 文件不支持阵列
  • 输入参数是 OBJECT 类型

参数无效

原因:参数名称拼写错误,或者参数不适用于所涉及的对象。要求的参数也可能丢失 — 这可能包括项值或可写入的值。

解决方案:在创建环境变量时必须指定名称、用户名和变量值。

值映射不包含该属性的输入值。

原因:可能是所需要的参数未在查询中使用。

解决方案:可以通过参考相应的托管对象格式 (MOF) 文件中的架构信息、方法的描述限定符,或参考方法的 MSDN 描述,解释输入参数的值。

可以使用 WMIC 检索一些架构信息,例如:

  • wmic:root\cli>alias OS list full /format:table
  • wmic:root\cli>process call /?:full

与计算机或节点的失败连接上的 RPC 错误。

原因:计算机或节点的防火墙被设置为阻止拨入的电话。

解决方案:

  • Ping 计算机的 IP 地址,以判断该计算机是否可用。
  • 禁用计算机上的防火墙。

原因:计算机有 UNIX、Linux、Windows 95、Windows 98、Windows Millennium Edition 或 Windows NT 4 操作系统,而这些操作系统没有提供启用网络的 WMI 或 WBEM 支持。

解决方案:

  • 在操作系统中启用 WMI 或 WBEM 支持。
  • 部署具有启用网络的 WMI 或 WBEM 支持的操作系统。

查询失败或太慢

原因:查询没有足够的参数。

解决方案:使用 Named 参数或 WHERE 子句缩小查询。例如:

  • wmic:root\cli>Alias OS list brief
  • wmic:root\cli>nteventlog application get /format:list
  • wmic:root\cli>UserAccount where "Domain='DomainName' and Name='UserName'" get /all

输出的行和列不对齐。

原因:显示空间太小。

解决方案:

  • 增大命令 (CMD) 窗口的屏幕缓冲区大小。
  • 使用 WordPad.exe(而不是记事本)打开大的文本文件。
  • 在查询上使用更多条件以只显示所需要的信息。
  • 使用自定义 XSL 文件显示自定义格式。

WMIC 的本地化版本不可用 [在一些多语言用户界面 (MUI) 或语言界面包中]

原因:安装了操作系统的本地化版本。

解决方案:使用 /LOCALE:ms_409 开关将英语区域设置为默认值。

Windows XP Professional 上的 XSL 文件不支持阵列

原因:操作系统不支持 XSL 文件阵列。

解决方案: 使用 XSL 从 Windows Server 2003 家族查询其他计算机,包括 Windows XP Professional

输入参数是 OBJECT 类型

原因:对于 OBJECT 类型的输入参数,还没有实现全面支持。默认值(空字符串:"")是目前支持的唯一值。

解决方案:使用下面的命令为三个用户设置 c:\test 目录的共享:

Windows Management Instrumentation 命令行(MSDN)(WMIC)_解决方案 复制代码
WMIC SHARE CALL Create "","test","3","TestShareName","","c:\test",0