wmic 是什么
wmic 是计算机管理工具,提供给管理员以命令行的方式管理计算机。在 win10 已经弃用,不过还能用。
执行模式
WMIC 有两种执行模式:交互模式(Interactive mode)和非交互模式(Non-Interactive mode)。
在命令提示符或“运行”窗口中输入"wmic"就进入交互模式,提示符是wmic:root\\cli>
。
非交互模式是指将 WMIC 指令直接作为 WMIC 的参数放在 WMIC 后面,当指令执行完毕后再返回到普通的命令提示符下。
命令格式
命令完整格式:wmic+全局开关+别名+wql语句+动词+副词(或者说是动词的参数)+动词开关
。实际使用时,可写部分格式。
每一部分的含义:
- 别名(alias)是给主板、服务、系统、进程、各种组件设定的名称,用于标识它们。
- wql 语句跟 SQL 语句相似,一般有 where 条件子句:
where name="xx"
或where " name='xx' "
或where (name='xx')
。 - 动词是对别名执行的操作,包括:assoc、call、CREATE、DELETE、GET、LIST、SET。
- 副词即参数列表。
- 动词开关相当于辅助功能,比如显示格式设置。
帮助信息
输入 wmic /?
查看全局开关和当前角色可用的别名。
输入 wmic 别名 /?
查看当前别名可用的动词。
输入 wmic 别名 动词 /?
查看当前别名当前动词可用的参数。
输入 wmic 别名 动词 参数 /?
查看当前别名当前动词可用的开关。
例子
(1)命令:wmic logicaldisk list
。logicaldisk 是磁盘的别名, list 是动词,语句的含义就是显示磁盘的信息。
(2)信息显示杂乱,加一个副词 brief 让信息显示整齐:wmic logicaldisk list brief
:
可以这么认为,副词 brief 修饰动词 list,翻译过来就是:简洁地显示。
list 的副词有 brief、full、instance、status、writeable 等。每个副词的含义:
- full 完整显示,是缺省参数;
- brief 简短显示;
- instance 显示对象实例;
- status 显示对象状态;
- Writeable 只显示该对象的可写入的属性信息。
(3)可以用 list 看下有哪些字段,再用 get 动词获取指定的字段:wmic logicaldisk where drivetype=3 get DeviceID,Size,FreeSpace,Description,FileSystem
(4)用全局开关 /output
把检索到的信息输出到一个文件中:wmic /output:a.html logicaldisk where drivetype=3 get DeviceID,Size,FreeSpace,Description,FileSystem
默认是纯文本格式。
(5)用 list 的开关 /fomat 设置显示格式:wmic logicaldisk where drivetype=3 get DeviceID,Size,FreeSpace,Description,FileSystem /format:htable
htable 表示 html 的表格格式。还有其他格式:
CSV
HFORM
HMOF
HTABLE
HXML
LIST
TABLE
VALUE
htable-sortby
htable-sortby.xsl
texttablewsys
texttablewsys.xsl
wmiclimofformat
wmiclimofformat.xsl
wmiclitableformat
wmiclitableformat.xsl
wmiclitableformatnosys
wmiclitableformatnosys.xsl
wmiclivalueformat
wmiclivalueformat.xsl
这些格式以文件的形式定义在 C:\Windows\System32\wbem\zh-CN 目录下。
(6)如果只想检索 “C:” 盘的信息,用 name=‘x’ 条件:wmic logicaldisk where name='C:' get DeviceID,Size,FreeSpace,Description,FileSystem
想知道对象的名称,可以先用 list instance 查看:wmic logicaldisk list instance
instance 是“实例”的意思,可以认为 instance 是对实体的抽象,例如上面的一个 instance 对应一个分区。对于其他别名,同样可以这么理解。
(7)多个条件用 () 或 “” 括起来:wmic logicaldisk where (name='C:' and drivetype=3) get DeviceID,Size,FreeSpace,Description,FileSystem
(8)set 动词设置磁盘分区的卷标:wmic logicaldisk where name='X:' set volumename='我的磁盘'
(9)wmic 可以操作远程机器,即使远程机器没有 wmic:wmic /node:192.168.1.2 /user:hacke.testlab\administrator /password:a123456! logicaldisk list brief
/node 指定远程机器的地址,/user 输入用户名,/password 输入密码。