什么是WMIC
WMIC是扩展WMI(Windows Management Instrumentation,Windows管理规范),提供了从命令行接口和批命令脚本执行系统管理的支持。
和上面的官方定义比起来,还有一个更好理解的解释:WMIC,是一款命令行管理工具。
使用WMIC,我们不但可以管理本地计算机,而且还可以管理同一Windows域内的所有远程计算机(需要必要的权限),而被管理的远程计算机不必事先安装WMIC,只需要支持WMI即可。
WMIC能做什么
可以使用WMIC实现如下的管理任务:
- 本地计算机管理
- 远程单个计算机管理
- 远程多个计算机管理
- 使用远程会话的计算机管理(如Telnet)
- 使用管理脚本的自动管理
WMIC使用
运行WMIC打开“开始”-“运行”栏,输入“WMIC”就可以启动wmic了。
第一次运行时,会显示WMIC正在安装,请稍等,安装完后就可以使用了。
WMIC下的命令在窗口下输入process
执行看看,列出了正在运行的进程和调用进程的路径。
当然了,我们也可以输入process list brief
来查看更详细的信息,比如进程名称、ID、优先级等。
更重要的是,对于现在有些可以在任务管理器里隐藏进程的木马,要想在wmic里隐藏,可就没那么容易了,它会成为你查杀木马的好帮手。
现在只是知道了路径,如果怀疑某一进程,想查看它的详细信息又该怎么办呢?
那输入process where name=‘xx.exe’ list full
就可以了。
我们还可以使用以下命令来杀死进程:process where name=’xx.exe’ delete
,回车后就会提示我们是否删除,这里将delete换成call terminate
也可以达到同样的效果。
在wmic下如何查看BIOS信息呢?我们输入bios list full
,很实用的命令吧,不用重启电脑就可以知道你现在使用的电脑的BIOS信息了。
除此之外,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的区别。
想要知道更多的命令,直接在命令行下输入/?
,就可以获得详细的帮助信息了。
很多人制作的批处理或者脚本功能都是调用wmi实现的,它所具有的查看功能非常强大,尤其是安装了WMIC的电脑可以连接到任何一台安装了WMI的电脑,被连接的电脑不需要安装WMIC。
比如我们要查看局域网内所有计算机的进程,监视对方计算机进程等,至于其他更多的功能就请读者自己去挖掘吧。
常用命令
- BIOS – 基本输入/输出服务 (BIOS) 管理。
- BOOTCONFIG – 启动配置管理。
- COMPUTERSYSTEM – 计算机系统管理。
- CPU – CPU 管理。DESKTOP – 用户桌面管理。
- DISKDRIVE – 物理磁盘驱动器管理。
- ENVIRONMENT – 系统环境设置管理。
- FSDIR – 文件目录系统项目管理。
- GROUP – 组帐户管理。
- JOB – 提供对使用计划服务安排的工作的访问。
- LOGON – 登录会话。
- MEMCACHE – 缓存内存管理。
- MEMLOGICAL – 系统内存管理 (配置布局和内存可用性)。
- MEMPHYSICAL – 计算机系统物理内存管理。
- NETCLIENT – 网络客户端管理。
- NNETPROTOCOL – 协议 (和其网络特点) 管理。
- NICCONFIG – 网络适配器管理。
- OS – 已安装的操作系统管理。
- PAGEFILE – 虚拟内存文件对调管理。
- PARTITION – 物理磁盘分区区域的管理。
- PROCESS – 进程管理。
- PRODUCT – 安装包任务管理。
- REGISTRY – 计算机系统注册表管理。
- SHARE – 共享资源管理。
- STARTUP – 用户登录到计算机系统时自动运行命令的管理。
- SYSACCOUNT – 系统帐户管理。
- TIMEZONE – 时间区域数据管理。
- USERACCOUNT – 用户帐户管理。
实例
系统环境变量
# 创建系统环境变量 wmic ENVIRONMENT create name="MyPath",username="<system>",VariableValue="MyValue" # 修改环境变量 wmic ENVIRONMENT where "name='MyPath' and username='<system>'" set VariableValue="ChangedValue" # 删除环境变量 wmic ENVIRONMENT where "name='MyPath'" delete
进程
# 获取进程名称以及可执行路径: wmic process get name,executablepath # 删除指定进程(根据进程名称): wmic process where name="qq.exe" call terminate # 或者 wmic process where name="qq.exe" delete # 删除指定进程(根据进程PID): wmic process where pid="123" delete # 结束可疑进程(根据进程的启动路径) wmic process where "name='explorer.exe' and executablepath<>'%SystemDrive%\\windows\\explorer.exe'" delete # 创建新进程 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 memlogical get TotalPhysicalMemory|find /i /v "t" # 获取屏幕分辨率 wmic DESKTOPMONITOR where Status='ok' get ScreenHeight,ScreenWidthwmic PageFileSet set InitialSize="512",MaximumSize="512" # 查看cpu wmic cpu list brief # 查看物理内存 wmic memphysical list brief # 查看逻辑内存 wmic memlogical list brief # 查看缓存内存 wmic memcache list brief # 查看虚拟内存 wmic pagefile list brief # 查看网卡 wmic nic list brief # 查看网络协议 wmic netprotocal list brief
文件操作
获取文件的创建、访问、修改时间
@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
全盘搜索某文件并获取该文件所在目录
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%)
其他
设置虚拟内存到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
检测是否插入U盘的批处理
@echo off ((wmic logicaldisk where "drivetype=2" get name|find "无可用范例")>nul 2>nul)||for /f "skip=1 tokens=* delims=" %%i in ('wmic logicaldisk where "drivetype=2" get name') do echo U盘盘符是 %%i pause
将当前系统BIOS,CPU,主板等信息输出到一个HTML网页文件
::得到系统信息.bat,运行bat文件即可 ::系统信息输出到HTML文件,查看帮助: wmic /? ::wmic [系统参数名] list [brief|full] /format:hform >|>> [文件名] wmic bios list brief /format:hform > PCinfo.html wmic baseboard list brief /format:hform >>PCinfo.html wmic cpu list full /format:hform >>PCinfo.html wmic os list full /format:hform >>PCinfo.html wmic computersystem list brief /format:hform >>PCinfo.html wmic diskdrive list full /format:hform >>PCinfo.html wmic memlogical list full /format:hform >>PCinfo.html PCinfo.html
人若是看透了自己,
便不会小看别人。
《骆驼祥子》
——老舍
评论
还没有任何评论,你来说两句吧!