wmic.exe是WMI 命令行。作为 Windows XP 的一部分发布的 WMI 命令行工具 (wmic.exe) 提供一个到 WMI 基础结构的命令行接口。可以使用 wmic.exe 执行来自命令行的常见 WMI 任务,包括浏览 CIM 和检查 CIM 类定义。有关使用 WMI 命令行工具的信息,参阅 Windows XP 帮助和支持中心内的“使用 WMI 命令行 (WMIC) 工具”

 

一、什么是WMIC?编辑

WMIC是扩展WMI(Windows Management Instrumentation,Windows管理规范),提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,比如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。如果不熟悉C++之类的编程语言或VBScript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要使用WMI管理系统是很困难的。WMIC改变了这种情况,为WMI名称空间提供了一个强大的、友好的命令行接口。
本文将主要介绍我在使用过程中的一些经验,本着实用主义的原则,过多的概念性的东西我就不多介绍了,在用到的时候我再进行一些解释。
和上面的官方定义比起来,还有一个更好理解的解释:WMIC,是一款命令行管理工具。使用WMIC,我们不但可以管理本地计算机,而且还可以管理同一Windows域内的所有远程计算机(需要必要的权限),而被管理的远程计算机不必事先安装WMIC,只需要支持WMI即可。WMIC有一个能够分析、解释和执行从命令行接收的别名(Alias)的引擎,它是一个可执行文件,名为WMIC.exe,这个文件通常位于“c:\windows\system32\wbem”文件夹中(支持WinXP和Win2003系统)。这样就比较好理解了吧,可以使用WMI管理远程计算机,是不是非常有吸引力呀!

二、WMIC能做什么?编辑

可以使用WMIC实现如下的管理任务:
1、本地计算机管理
2、远程单个计算机管理
3、远程多个计算机管理
4、使用远程会话的计算机管理(如Telnet)
5、使用管理脚本的自动管理

三、简单的使用实例编辑

1、运行WMIC
打开“开始”-“运行”栏,输入“WMIC”就可以启动wmic了,如图1。第一次运行时,会显示WMIC正在安装,请稍等。几秒钟后就会出现如图2所示的命令提示符了。
2、初试WMIC下的命令
在窗口下输入●process●执行看看,结果如图3所示,列出了正在运行的进程和调用进程的路径。当然了,我们也可以输入●process list brief●来查看更详细的信息,比如进程名称、ID、优先级等。更重要的是,对于现在有些可以在任务管理器里隐藏进程的木马,要想在wmic里隐藏,可就没那么容易了,它会成为你查杀木马的好帮手。
现在只是知道了路径,如果怀疑某一进程,想查看它的详细信息又该怎么办呢?那输入●process name=‘jqs.exe’list full●就可以了,jqs是我安装java后新增加的一个进程,大家在测试时也可以选用别的,如图4。我们还可以使用以下命令来进程:●process where name=’jqs.exe’delete●,回车后就会提示我们是否删除,如图5。这里将delete换成“call terminate”也可以达到同样的效果。
在wmic下如何查看BIOS信息呢?我们输入●bios list full●,是使用的命令吧,不用重启电脑就可以知道你现在使用的电脑的BIOS信息了,如图6。
除此之外,wmic还有停止、暂停和运行服务的功能:启动服务startservice,停止服务stopservice,暂停服务pauseservice。具体的命令使用格式就是:
●Service where caption=”windows time” call stopservice●--停止服务
●Service where caption=”windows time” call startservice●--启动服务
●Service where name=”w32time” call stopservice●--停止服务,注意name和caption的区别。
●wmic process call create shutdown.exe●--关闭本地计算机。
想要知道更多的命令,直接在命令行下输入“/?”,就可以获得详细的帮助信息了,如图7。
很多人制作的批处理或者脚本功能都是调用wmi实现的,它所具有的查看功能非常强大,尤其是安装了WMIC的电脑可以连接到任何一台安装了WMI的电脑,被连接的电脑不需要安装WMIC。比如我们要查看局域网内所有计算机的进程,监视对方计算机进程等,至于其他更多的功能就请读者自己去挖掘吧
C:\Documents and Settings\Lihongtao>wmic /?
[global switches] <command>
有效的全局开关有:
/NAMESPACE 别名使用的名称空间路径。
/ROLE 包含此别名定义的角色路径。
/NODE 别名使用的服务器。
/IMPLEVEL 客户模拟级别。
/AUTHLEVEL 客户身份验证级别。
/LOCALE 客户应用的语言识别符。
/PRIVILEGES 启用或禁用所有特权。
/TRACE 将调试信息输出到 stderr。
/RECORD 将所有输入命令和输出写入日志。
/INTERACTIVE 设置或重设交互模式。
/FAILFAST 设置或重置 FailFast 模式。
/USER 会话期间使用的用户。
/PASSWORD 用于会话登录的密码。
/OUTPUT 为输出重新定向指定模式。
/APPEND 为输出重新定向指定模式。
/AGGREGATE 设置或重置集合模式。
/AUTHORITY Specifies the <authority type> for the connection.
/?[:<BRIEF|FULL>] 用法信息。
有关具体全局开关的信息,请输入: switch-name /?
当前角色有下列别名。:
ALIAS - 访问本地机器上的别名
BASEBOARD - 基板 (也叫母板或系统板) 管理。
BIOS - 基本输入/输出服务 (BIOS) 管理。
BOOTCONFIG - 启动配置管理。
CDROM - CD-ROM 管理。
COMPUTERSYSTEM - 计算机系统管理。
CPU - CPU 管理。
CSPRODUCT - SMBIOS 的计算机系统产品信息。
DATAFILE - DataFile 管理。
DCOMAPP - DCOM 程序管理。
DESKTOP - 用户桌面管理。
DESKTOPMONITOR - 监视器管理。
DEVICEMEMORYADDRESS - 设备内存地址管理。
DISKDRIVE - 物理磁盘驱动器管理。
DISKQUOTA - NTFS 卷磁盘空间使用情况。
DMACHANNEL - 直接内存访问(DMA)频道管理。
ENVIRONMENT - 系统环境设置管理。
FSDIR - 文件目录系统项目管理。
GROUP - 组帐户管理。
IDECONTROLLER - IDE 控制器管理。
IRQ - 间隔请求线 (IRQ) 管理。
JOB - 提供对使用计划服务安排的工作的访问。
LOADORDER - 定义执行依存的系统服务管理。
LOGICALDISK - 本地储存设备管理。
LOGON - 登录会话。
MEMCACHE - 缓存内存管理。
MEMLOGICAL - 系统内存管理 (配置布局和内存可用性)。
MEMPHYSICAL - 计算机系统物理内存管理。
NETCLIENT - 网络客户端管理。
NETLOGIN - (某一用户的)网络登录信息管理。
NETPROTOCOL - 协议 (和其网络特点) 管理。
NETUSE - 活动网络连接管理。
NIC - 网络界面控制器 (NIC) 管理。
NICCONFIG - 网络适配器管理。
NTDOMAIN - NT 域管理。
NTEVENT - NT 事件日志的项目
NTEVENTLOG - NT 时间日志文件管理。
ONBOARDDEVICE - 母板(系统板)内置普通设适配器设备的管理。
OS - 已安装的操作系统管理。
PAGEFILE - 虚拟内存文件对调管理。
PAGEFILESET - 页面文件设置管理。
PARTITION - 物理磁盘分区区域的管理。
PORT - I/O 端口管理。
PORTCONNECTOR - 物理连接端口管理。
PRINTER - 打印机设备管理。
PRINTERCONFIG - 打印机设备配置管理。
PRINTJOB - 打印工作管理。
PROCESS - 进程管理。
PRODUCT - 安装包任务管理
QFE - 快速故障排除。
QUOTASETTING - 设置卷的磁盘配额信息。
RECOVEROS - 当操作系统失败时,将从内存收集的信息。
REGISTRY - 计算机系统注册表管理。
SCSICONTROLLER - SCSI 控制器管理。
SERVER - 服务器信息管理。
SERVICE - 服务程序管理。
SHARE - 共享资源管理。
SOFTWAREELEMENT - 安装在系统上的软件产品元素的管理。
SOFTWAREFEATURE - SoftwareElement 的软件产品组件的管理。
SOUNDDEV - 声音设备管理。
STARTUP - 用户登录到计算机系统时自动运行命令的管理。
SYSACCOUNT - 系统帐户管理。
SYSDRIVER - 基本服务的系统驱动程序管理
SYSTEMENCLOSURE - 物理系统封闭管理。
SYSTEMSLOT - 包括端口、插口、附件和主要连接点的物理连接点管理。
TAPEDRIVE - 磁带驱动器管理。
TEMPERATURE - 温度感应器的数据管理 (电子温度表)。
TIMEZONE - 时间区域数据管理。
UPS - 不可中断的电源供应 (UPS) 管理。
USERACCOUNT - 用户帐户管理。
VOLTAGE - 电压感应器 (电子电量计) 数据管理。
VOLUMEQUOTASETTING - 将某一磁盘卷与磁盘配额设置关联。
WMISET - WMI 服务操作参数管理。
有关具体别名的信息,请输入: alias /?
CLASS - 按 ESC 键回到完整的 WMI 架构。
PATH - 按 ESC 键回到完整的 WMI 对象路径。
CONTEXT - 显示所有全局开关的状态。
QUIT/EXIT - 退出此程序。
有关 CLASS/PATH/CONTEXT 更多的信息,输入: (CLASS | PATH | CONTEXT) /?
C:\Documents and Settings\Lihongtao>
WMIC 实例教程2008-10-27 17:29wmic 获取进程名称以及可执行路径:
wmic process get name,executablepath
wmic 删除指定进程(根据进程名称):
wmic process where name="qq.exe" call terminate
或者用
wmic process where name="qq.exe" delete
wmic 删除指定进程(根据进程PID):
wmic process where pid="123" delete
wmic 创建新进程
wmic process call create "C:\Program Files\Tencent\QQ\QQ.exe"
在远程机器上创建新进程:
wmic /node:192.168.1.10 /user:administrator /password:123456 process call create cmd.exe
关闭本地计算机
wmic process call create shutdown.exe
重启远程计算机
wmic /node:192.168.1.10/user:administrator /password:123456 process call create "shutdown.exe -r -f -m"
更改计算机名称
wmic computersystem where "caption='%ComputerName%'" call rename newcomputername
更改帐户名
wmic USERACCOUNT where "name='%UserName%'" call rename newUserName
wmic 结束可疑进程(根据进程的启动路径)
wmic process where "name='explorer.exe' and executablepath<>'%SystemDrive%\\windows\\explorer.exe'" delete
wmic 获取物理内存
wmic memlogical get TotalPhysicalMemory|find /i /v "t"
wmic 获取文件的创建、访问、修改时间
@echo off
for /f "skip=1 tokens=1,3,5 delims=. " %%a in ('wmic datafile where name^="c:\\windows\\system32\\notepad.exe" get CreationDate^,LastAccessed^,LastModified') do (
set a=%%a
set b=%%b
set c=%%c
echo 文件: c:\windows\system32\notepad.exe
echo.
echo 创建时间: %a:~0,4% 年 %a:~4,2% 月 %a:~6,2% 日 %a:~8,2% 时 %a:~10,2% 分 %a:~12,2% 秒
echo 最后访问: %b:~0,4% 年 %b:~4,2% 月 %b:~6,2% 日 %b:~8,2% 时 %b:~10,2% 分 %b:~12,2% 秒
echo 最后修改: %c:~0,4% 年 %c:~4,2% 月 %c:~6,2% 日 %c:~8,2% 时 %c:~10,2% 分 %c:~12,2% 秒
)
echo.
pause
wmic 全盘搜索某文件并获取该文件所在目录
for /f "skip=1 tokens=1*" %i in ('wmic datafile where "FileName='qq' and extension='exe'" get drive^,path') do (set "qPath=%i%j"&@echo %qPath:~0,-3%)
获取屏幕分辨率 wmic DESKTOPMONITOR where Status='ok' get ScreenHeight,ScreenWidth
wmic PageFileSet set InitialSize="512",MaximumSize="512"
设置虚拟内存到E盘,并删除C盘下的页面文件,重启计算机后生效
wmic PageFileSet create name="E:\\pagefile.sys",InitialSize="1024",MaximumSize="1024"
wmic PageFileSet where "name='C:\\pagefile.sys'" delete
获得进程当前占用的内存和最大占用内存的大小:
wmic process where caption='filename.exe' get WorkingSetSize,PeakWorkingSetSize
以KB为单位显示
@echo off
for /f "skip=1 tokens=1-2 delims= " %%a in ('wmic process where caption^="conime.exe" get WorkingSetSize^,PeakWorkingSetSize') do (
set /a m=%%a/1024
set /a mm=%%b/1024
echo 进程conime.exe现在占用内存:%m%K;最高占用内存:%mm%K
)
pause
远程打开计算机远程桌面
wmic /node:%pcname% /USER:%pcaccount% PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1
posted on 2016-01-29 16:56  何石-博客  阅读(1255)  评论(0编辑  收藏  举报