WMIC 入门指导

早在一年以前研究批处理的时候,我就很深切地体会到了WMIC在做系统工程方面有多大的益处。这种益处体现在高度的人性化、互动性和其强大的功能,在批处理方面也大有用武之地。例如,如果要查询explorer.exe实际所在的路径(就是一般说的进程映像路径),无需调用Process Explorer这样的软件,也无需在任务管理器中选择显示指定列,然后费力去寻找具体的某一条,直接在命令行执行如下命令:

wmic process where(description='explorer.exe')

就能得到所需要的信息。再比如,将计算机名由ihenry-pc改成lemon-pc,

wmic computersystem where "name='ihenry-pc'" call rename lemon-pc

应该说这种简便性是无可替代的。近日突然想起系统研究WMIC,遂从technet网站上面查到了零散的一些材料,将他们组织起来,截取相对基础的部分,得到下面这篇文章。如果您是系统工程方面的专家请绕行,如果是普通用户,强烈建议读完本文,对日常系统维护有着很大帮助。

1、WMIC的表现形式

WMIC其实就是WMI用命令行完成的版本。输入wmic后系统会自动安装wmic,无需安装光盘介入,很快就能完成安装。然后您就会得到“wmic:root/cli>”的提示,这样就可以输入命令了。输入的命令需一行一行完成,完成之后返回结果,才能进行下一条指令的输入,这就是一般所说的“交互模式”(Interactive Mode)。

如果在批处理(.bat)里边也需要用到WMIC,则需要参考“非交互模式”(Non-interactive Mode)的方法。具体操作是将WMIC、目标计算机(在同一工作组或域中,可能需要检查权限)、命令放在同一行里边书写。应用格式为:
wmic /node:COMPUTERNAME COMMAND

例如,wmic /node:localhost printer list status 就能返回如

Name Status
Microsoft XPS Document Writer Unknown
Fax Unknown

这样的结果。

2、WMIC动词

WMIC也有自己的动词规范。常见动词有Assoc、Create、Delete、Get、Set等。除此之外,Class、Context、Quit、Exit也是支持的。下面分别介绍一下。

ASSOC
ASSOC显示与指令内容相附属的的内容。比如以下两个例子
group where name='administrators' assoc
os assoc
自己试试看就知道返回结果是什么了。因为此项内容涉及查询,所以所花时间较长。

Create
创建一个新的环境变量。如
environment create name="progloc", username="wkst01/ethanw",variablevalue="%programfiles%/prog01"
针对wkst01/ethanw,创建一个progloc变量指向="%programfiles%/prog01"。

Delete
当然就是Create反过来的情况。使用
environment where(name="progloc") delete
就能把刚才创建的那个环境变量删掉。

Get
获取指定信息。
partition get bootpartition, description, deviceid, bootable
有关分区信息的获取。

Set
这可能是最常用的动词命令,例如
path WIN32_USERACCOUNT where(name="user01") set disabled="true"
把user01这个账户禁用掉。

正如刚才所说,Path、Class、Context、Quit、Exit也支持。Path和Class都意味直接访问一个WMI架构,例如:class WIN32_SOFTWAREELEMENT get。Class和Path区别在于,Class针对Class Definition,Path针对实例本身和它的属性。Context直接显示全局设定,似乎没有命令参数。

Exit和Quit就不用说了,两者用法和含义相同,返回到初始shell。

3、实用工作
正如前面所说,wmic可用在批处理中,与一般命令别无二致,均可使用变量。输出结果还能使用xsl等形式保存,只需要在相应位置添加诸如/format:textvaluelist.xsl这样的命令即可。举个例子:

LISTING 2: Code to Use Variables in a WMIC Batch File
@echo off
if "%1"=="" goto msg
if "%2"=="" goto single
wmic /node:%1, %2 cpu get name,
caption, maxclockspeed,
systemname
/format:textvaluelist.xsl
goto end
:single
wmic /node:%1 cpu get name,
caption, maxclockspeed,
systemname
/format:textvaluelist.xsl
goto end
:msg
echo you must specify at least
one computer name.
:end

Views: 907

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值