WMIC命令增強工具是基于Windows系统推出的一款强大的wmic命令行工具,包括远程创建进程、获取物理内存数、加入域、启动某服务、获取CPU使用百分比等等,使用命令行就可以完成指定操作了,非常不错,推荐大家下载!

使用教程
第一次執行WMIC命令時,Windows首先要安裝WMIC,然後顯示出WMIC的命令行提示符。在WMIC命令行提示符上,命令以交互的方式執行
执行“wmic”命令启动WMIC命令行环境。这个命令可以在XP或 .NET Server的标准命令行解释器(cmd.exe)、Telnet会话或“运行”对话框中执行。这些启动方法可以在本地使用,也可以通过.NET Server终端服务会话使用。
wimic的運行方式可以有兩種方法:
1、打开wimic进入后输入命令运行,键入wimic后出现wmic:root\cli>时你就可以输入命令了,如输入process显示所有的进程。不知道有什么命令时可以输入用/?来显示帮助。exit 是退出交互模式。具体帮助用法如下:
命令行幫助
命令 例子 说明
/? 或 -? 显示所有全局开关和别名的语法
/ /? /user /? 显示指定全局开关的信息
/? class /? 显示某个命令的信息
/? memcache /? 显示某个别名的信息
/? temperature get /? 显示别名与动词组合的信息
/?:Full irq get /?:Full 显示动词的帮助信息
如:我要查看process命令的幫助,鍵入:process/?後顯示如下:
wmic:root\cli>process /?
PROCESS - 进程管理。
提示: BNF 的别名用法。
( [WMIObject] | [] | [] ) [].
用法:
PROCESS ASSOC []
PROCESS CALL <:method name>[]
PROCESS CREATE
PROCESS DELETE
PROCESS GET [<:property list>] [<:get switches>]
PROCESS LIST [] []
2、用wimic 后面直接跟命令运行,如wmic process 就显示了所有的进程了。这两种运行方法就是:交互模式(Interactive mode)和非交互模式(Non-Interactive mode)
下面我們能過一些實例來說明用法:
顯示進程的詳細信息
输入 process where name="maxthon.exe" list full
將顯示出mxathon.exe進程所有的信息如下:
CommandLine="D:\mytools\Maxthon2\Maxthon.exe"
CSName=CHINA-46B1E8590
Description=Maxthon.exe
ExecutablePath=D:\mytools\Maxthon2\Maxthon.exe
ExecutionState=
Handle=684
HandleCount=2296
InstallDate=
KernelModeTime=3495000000
MaximumWorkingSetSize=1413120
MinimumWorkingSetSize=204800
Name=Maxthon.exe
OSName=Microsoft Windows XP Professional|C:\WINDOWS|
OtherOperationCount=307814
OtherTransferCount=60877207
PageFaults=1367971
PageFileUsage=89849856
ParentProcessId=1924
PeakPageFileUsage=90091520
PeakVirtualSize=385802240
PeakWorkingSetSize=94031872
Priority=8
PrivatePageCount=89849856
ProcessId=684
QuotaNonPagedPoolUsage=43496
QuotaPagedPoolUsage=257628
QuotaPeakNonPagedPoolUsage=72836
QuotaPeakPagedPoolUsage=271372
ReadOperationCount=85656
ReadTransferCount=121015982
SessionId=0
Status=
TerminationDate=
ThreadCount=57
UserModeTime=1778750000
VirtualSize=353206272
WindowsVersion=5.1.2600
WorkingSetSize=93716480
WriteOperationCount=30940
WriteTransferCount=24169673
停止、暫停和運行服務功能
啓動服務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的区别。
caption 显示服务名name服务名称,如: telnet服务的显示名称是telnet 服务名称是tlntsvr,还有Windows Time服务的名称是w32time 显示名称是"Windows Time"要用引号引起来,主要是有一个空格。
好了具体看一下:输入Service where caption="windows time" call startservice后有一个确认输入y就可以了,返回ReturnValue = 0;表示成功
wmic:root\cli>Service where caption="windows time" call startservice
执行 (\\CHINA-46B1E8590\ROOT\CIMV2:Win32_Service.Name="W32Time")->startservice()
方法執行成功。
輸出參數:
instance of __PARAMETERS
{
ReturnValue = 0;
};
wmic:root\cli>
显示出BIOS信息 wmic bios list full
大家可能注意到了上面命令行中还有两个参数list和full。list决定显示的信息格式与范围,它有Brief、Full、Instance、 Status、System、Writeable等多个参数,full只是它的一个参数,也是list的缺省参数,表示显示所有的信息。其他几个参数顾名思义,如Brief表示只显示摘要信息,Instance表示只显示对象实例,Status表示显示对象状态,Writeable表示只显示该对象的可写入的属性信息等。
停止進程的操作
例如,執行下面的命令將關閉正在運行的QQ.exe:
例1、wmic process where name='QQ.exe' call terminate
命令運行結束後,WMIC命令行提示出如下結果:
C:\>wmic process where name='QQ.exe' call terminate
执行 (\\CHINA-46B1E8590\ROOT\CIMV2:Win32_Process.Handle="728")->terminate()
方法執行成功。
輸出參數:
instance of __PARAMETERS
{
ReturnValue = 0;
};
例2、wmic process where name="qq.exe" delete
命令運行結束後,WMIC命令行提示出如下結果:
C:\>wmic process where name="qq.exe" delete
删除范例 \\CHINA-46B1E8590\ROOT\CIMV2:Win32_Process.Handle="2820"
範例刪除成功。
======================================================================
列出所有的进程 wmic process
==================================================================
連接遠程電腦
★★連接遠程的電腦,不過好象對要開一些相應的服務
wmic /node:"192.168.203.131" /password:"" /user:"administrator"
BIOS - 基本输入/输出服务 (BIOS) 管理
★★查看bios版本型號
wmic bios get Manufacturer,Name
WMIC設置IP地址
★★配置或更新IP地址:
wmic nicconfig where index=0 call enablestatic("192.168.1.5"), ("255.255.255.0") ;index=0说明是配置网络接口1。
配置網關(默認路由):
wmic nicconfig where index=0 call setgateways("192.168.1.1"),(1)
COMPUTERSYSTEM - 计算机系统管理
★★查看系統啓動選項,boot的內容
wmic COMPUTERSYSTEM get SystemStartupOptions
★★查看工作組/域
wmic computersystem get domain
★★更改計算機名abc爲123
wmic computersystem where "name='abc'" call rename 123
★★更改工作組google爲MyGroup
wmic computersystem where "name='google'" call joindomainorworkgroup "","","MyGroup",1
CPU - CPU 管理
★★查看cpu型號
wmic cpu get name
DATAFILE - DataFile 管理
★★查找e盤下test目錄(不包括子目錄)下的cc.cmd文件
wmic datafile where "drive='e:' and path='\\test\\' and FileName='cc' and Extension='cmd'" list
★★查找e盤下所有目錄和子目錄下的cc.cmd文件,且文件大小大于1K
wmic datafile where "drive='e:' and FileName='cc' and Extension='cmd' and FileSize>'1000'" list
★★刪除e盤下文件大小大于10M的.cmd文件
wmic datafile where "drive='e:' and Extension='cmd' and FileSize>'10000000'" call delete
★★刪除e盤下test目錄(不包括子目錄)下的非.cmd文件
wmic datafile where "drive='e:' and Extension<>'cmd' and path='test'" call delete
★★複制e盤下test目錄(不包括子目錄)下的cc.cmd文件到e:\,並改名爲aa.bat
wmic datafile where "drive='e:' and path='\\test\\' and FileName='cc' and Extension='cmd'" call copy "e:\aa.bat"
★★改名c:\hello.txt爲c:\test.txt
wmic datafile "c:\\hello.txt" call rename c:\test.txt
★★查找h盤下目錄含有test,文件名含有perl,後綴爲txt的文件
wmic datafile where "drive='h:' and extension='txt' and path like '%\\test\\%' and filename like '%perl%'" get name
DESKTOPMONITOR - 监视器管理
★★獲取屏幕分辨率
wmic DESKTOPMONITOR where Status='ok' get ScreenHeight,ScreenWidth
DISKDRIVE - 物理磁盘驱动器管理
★★獲取物理磁盤型號大小等
wmic DISKDRIVE get Caption,size,InterfaceType
ENVIRONMENT - 系统环境设置管理
★★獲取temp環境變量
wmic ENVIRONMENT where "name='temp'" get UserName,VariableValue
★★更改path環境變量值,新增e:\tools
wmic ENVIRONMENT where "name='path' and username=''" set VariableValue="%path%;e:\tools"
★★新增系統環境變量home,值爲%HOMEDRIVE%%HOMEPATH%
wmic ENVIRONMENT create name="home",username="",VariableValue="%HOMEDRIVE%%HOMEPATH%"
★★刪除home環境變量
wmic ENVIRONMENT where "name='home'" delete
FSDIR - 文件目录系统项目管理
★★查找e盤下名爲test的目錄
wmic FSDIR where "drive='e:' and filename='test'" list
★★刪除e:\test目錄下除過目錄abc的所有目錄
wmic FSDIR where "drive='e:' and path='\\test\\' and filename<>'abc'" call delete
★★刪除c:\good文件夾
wmic fsdir "c:\\good" call delete
★★重命名c:\good文件夾爲abb
wmic fsdir "c:\\good" rename "c:\abb"
LOGICALDISK - 本地储存设备管理
★★獲取硬盤系統格式、總大小、可用空間等
wmic LOGICALDISK get name,Description,filesystem,size,freespace
NIC - 网络界面控制器 (NIC) 管理
OS - 已安装的操作系统管理
★★設置系統時間
wmic os where(primary=1) call setdatetime 20070731144642.555555+480
PAGEFILESET - 页面文件设置管理
★★更改當前頁面文件初始大小和最大值
wmic PAGEFILESET set InitialSize="512",MaximumSize="512"
★★頁面文件設置到d:\下,執行下面兩條命令
wmic pagefileset create name='d:\pagefile.sys',initialsize=512,maximumsize=1024
wmic pagefileset where"name='c:\\pagefile.sys'" delete
PROCESS - 进程管理
★★列出進程的核心信息,類似任務管理器
wmic process list brief
★★結束svchost.exe進程,路徑爲非C:\WINDOWS\system32\svchost.exe的
wmic process where "name='svchost.exe' and ExecutablePath<>'C:\\WINDOWS\\system32\\svchost.exe'" call Terminate
★★新建notepad進程
wmic process call create notepad
PRODUCT - 安装包任务管理
★★安裝包在C:\WINDOWS\Installer目錄下
★★卸載.msi安裝包
wmic PRODUCT where "name='Microsoft .NET Framework 1.1' and Version='1.1.4322'" call Uninstall
★★修複.msi安裝包
wmic PRODUCT where "name='Microsoft .NET Framework 1.1' and Version='1.1.4322'" call Reinstall
SERVICE - 服务程序管理
★★運行spooler服務
wmic SERVICE where name="Spooler" call startservice
★★停止spooler服務
wmic SERVICE where name="Spooler" call stopservice
★★暫停spooler服務
wmic SERVICE where name="Spooler" call PauseService
★★更改spooler服务启动类型[auto|Disabled|Manual] 释[自动|禁用|手动]
wmic SERVICE where name="Spooler" set StartMode="auto"
★★刪除服務
wmic SERVICE where name="test123" call delete
SHARE - 共享资源管理
★★刪除共享
wmic SHARE where name="e$" call delete
★★添加共享
WMIC SHARE CALL Create "","test","3","TestShareName","","c:\test",0
SOUNDDEV - 声音设备管理
wmic SOUNDDEV list
STARTUP - 用户登錄到计算机系统时自动运行命令的管理
★★查看msconfig中的啓動選項
wmic STARTUP list
SYSDRIVER - 基本服务的系统驱动程序管理
wmic SYSDRIVER list
USERACCOUNT - 用户帐户管理
★★更改用戶administrator全名爲admin
wmic USERACCOUNT where name="Administrator" set FullName="admin"
★★更改用戶名admin爲admin00
wmic useraccount where "name='admin" call Rename admin00
================================================獲取補丁信息
★★查看當前系統打了哪些補丁
/node:legacyhost qfe get hotfixid
查看CPU當前的速度
★★cpu當前的速度
wmic cpu get CurrentClockSpeed
遠程計算機的遠程桌面連接
★★WMIC命令开启遠程計算機的遠程桌面連接
执行wmic /node:192.168.1.2 /USER:administrator
PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1
具體格式:
wmic /node:"[full machine name]" /USER:"[domain]\[username]"
PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1
wmic 获取进程名称以及可执行路径:
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.201.131 /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
===========================================================================
批處理的api--WMIC學習體會
在這篇文章裏也許你看不到很多奇特有用的的實際例程,但是呢,授人以魚不如授人以漁,希望我的文章能讓你通俗易懂的了解一些wmic的基本知識,可以有一個學習的興趣,讓自己繼續深研一下wmic。
在WINDOWS\Help目下,wmic.chm文档是这样解释wmi的:Windows Management Instrumentation (WMI) 是“基于 Web 的企业管理倡议 (WBEM)”(这是一个旨在建立在企业网络上访问和共享管理信息的标准的工业倡议)的 Microsoft 的实现。有关 WBEM 的详细信息,请访问 WBEM。XOXWMI 为公用信息模型 (CIM)(该数据模型描述存在于管理环境中的对象)提供完整的支持。WMI 包括对象储备库和 CIM 对象管理器,其中对象储备库是包含对象定义的数据库,对象管理器负责处理储备库中对象的收集和操作并从 WMI 提供程序 (WMI provider) 收集信息。WMI 提供程序 (WMI provider) 在 WMI 和操作系统、应用程序以及其他系统的组件之间充当中介。例如,注冊表提供程序从注冊表中提供信息,而 SNMP 提供程序则从 SNMP 设备中提供数据和事件。提供程序提供关于其组件的信息,也可能提供一些方法,这些方法可以操作可设置的组件、属性,或者操作可能警告您在组件中要发生更改的事件。Windows Management Instrumentation 命令行 (WMIC) 向您提供了简单的 Windows Management Instrumentation (WMI) 命令行界面,这样即可利用 WMI 来管理运行 Windows 的计算机。WMIC 与现有命令行程序和实用程序命令相互操作,且很容易通过脚本或其他面向管理的应用程序来扩展 WMIC。
以上的這些說法太專業了,通俗一點講就是wmic.exe是一個命令行程序,可以用它這個接口來實現在命令行下直接管理計算機軟硬件等方方面面的操作,相當于批處理的api了。
一、wmic的基本命令格式簡析
经常看网上的相关资料的话,读者可能会对wmic有一个基本的认识,不过看得越多估计会越糊涂,起码我是这样认为的。其实简单总结一下,命令格式就是 “wmic+全局开关+别名+wql语句+动词+副词(或者说是动词的参数)+动词开关”而已了。这个命令格式可以根据需要来写全或者写部份格式,我这里依次对格式的每个名称按自己的理解来解释一下,不过肯定完全不符合微软专家的定义,只是让大家弄懂它们而已。
wmic就是wmic.exe,位于windows目录底下,是一个命令行程序。WMIC可以以两种模式执行:交互模式(Interactive mode)和非交互模式(Non-Interactive mode),经常使用Netsh命令行的读者应该非常熟悉这两种模式。
交互模式。如果你在命令提示符下或通過"運行"菜單只輸入WMIC,都將進入WMIC的交互模式,每當一個命令執行完畢後,系統還會返回到WMIC提示符下,如"Root\cli",交互模式通常在需要執行多個WMIC指令時使用。交互模式有時還會對一些敏感的操作要求確認,比如刪除操作,最大限度地防止用戶操作出現失誤。
非交互模式。非交互模式是指將WMIC指令直接作爲WMIC的參數放在WMIC後面,當指令執行完畢後再返回到普通的命令提示符下,而不是進入到WMIC上下文環境中。WMIC的非交互模式主要用于批處理或者其他一些腳本文件中,我在本文中一律用●非交互模式●示例。
开关有以下的全局开关,打入wmic.exe /?可以看到的(这里我们先不讨论每个开关的具体意思,具体用法看示例):
★
/NAMESPACE 别名使用的名称空间路径。
/ROLE 包含此别名定义的角色路径。
/NODE 别名使用的服务器。
/IMPLEVEL 客户模拟级别。
/AUTHLEVEL 客户身份验证级别。
/LOCALE 客户应用的语言识别符。
/PRIVILEGES 启用或禁用所有特权。
/TRACE 将调试信息输出到 stderr。
/RECORD 将所有输入命令和输出写入日志。
/INTERACTIVE 设置或重设交互模式。
/FAILFAST 设置或重置 FailFast 模式。
/USER 会话期间使用的用户。
/PASSWORD 用于会话登錄的密码。
/OUTPUT 为输出重新定向指定模式。
/APPEND 为输出重新定向指定模式。
/AGGREGATE 设置或重置集合模式。
/AUTHORITY Specifies the for the connection.
/?[:<brief|full>] Usage information.
★
至于别名啦,就是给主板、服务、系统、进程啦这些和计算机相关的东东起了个英文名,在wmic.exe /?命令行下也可以看到。
wql语句和我们平常用的注入时的sql语句的语法几乎是一模一样,甚至更简单。一般是where name="xxx" and 之类的,不过有时候要把name=“xxx"这样的格式换成"name='xxx'"或者是where(name='xxx')这样,反正正常情况下不行的话就换个写法。
動詞呢,就那麽簡單幾個assoc、call、CREATE、DELETE、GET、LIST、SET,從英文名字上應當可以看出它們是用來幹什麽的。不過說實話,assoc我真的還沒用到過。
至于副詞(動詞的參數),就是得到用動詞+它的參數得到對象的屬性。像屬于list動詞的副詞,就是顯示個什麽樣的呀,例如顯示詳細狀態或簡要狀態。
動詞開關就好比顯示個橫表格式的或者顯示個豎表格式的或者輸出個什麽樣格式的文件,或者是幾秒來重複顯示信息等等,有的動詞並沒有開關。
二、一步一步來完成我們的wmic命令行
wmic里有个别名是logicaldisk,就是对磁盘进行管理。我们先按照最简单的格式来写,在cmd命令行下输入●wmic logicaldisk list●(wmic.exe+别名+list动词),稍等一会儿屏幕上会出现本地硬盘的各式各样的数据,看上去杂乱无章。这样子太不方便看了,我们来改写一下,改成●wmic logicaldisk list brief●,在list动词后加个brief参数,也就是brief副词,显示的就会很整齐,效果如下:
★
DeviceID brief FreeSpace ProviderName Size VolumeName
A: 2
C: 3 2925694976 6805409792 WINXP
D: 3 1117487104 1759936512 WORK
E: 5
★
大家可能注意到了上面命令行中有动词list和副词brief。list动词决定显示的信息格式与范围,它有Brief、Full、Instance、 Status、System、Writeable等多个参数(副词),full只是它的一个参数,也是list的缺省参数,表示显示所有的信息。其他几个参数顾名思义,如Brief表示只显示摘要信息,Instance表示只显示对象实例,Status表示显示对象状态,Writeable表示只显示该对象的可写入的属性信息等。
我们再来把语句加点东东,在上边磁盘返回信息当中的DeviceID的值为3时表示是本地硬盘的分区,如果是5为光区,为2则是移动磁盘了。我们把语句改一下,加入wql语句,只显示本地磁盘。语句改成●wmic logicaldisk where "DriveType=3" list brief●或者是●wmic logicaldisk where(DriveType=3) list brief●,显示效果都是下边的样子:
★
DeviceID DriveType FreeSpace ProviderName Size VolumeName
C: 3 2925686784 6805409792 WINXP
D: 3 1117487104 1759936512 WORK
★
但是上边的格式呢显示的我们还是不太满意,ProviderName不知是个什么东东也给显示出来了,我们只想要我们想要的东东,像卷标 VolumeName之类的我们也不要它,再把语句改一下,换个get动词,命令改为●wmic logicaldisk where "DriveType=3" get DeviceID,Size,FreeSpace,Description,FileSystem●,返回信息如下:
★
DeviceID,Size,FreeSpace,Description,FileSystem
Description DeviceID FileSystem FreeSpace Size
本地固定磁盘 C: FAT32 2925686784 6805409792
本地固定磁盘 D: FAT 1117487104 1759936512
★
至于get动词后面跟的参数你可以先用list来查看一下就明白了。好了,这回可以得到我们想要的结果了。不过命令里的开关我们还没用到呢,加几个全局开关吧。先来加个/OUTPUT吧,让它把显示信息输出到一个文件中,命令如下:●wmic /output:a.html logicaldisk where "DriveType=3" get DeviceID,Size,FreeSpace,Description,FileSystem●,这样一来刚才屏幕上返回的信息就到当前目录的 a.htm里了。但是a.htm打开看看后,根本就像一个记事本一样,没有任何样式,看起来也不美观,我们给它指定一个样式,就要用到format这个动词开关了,命令改为●wmic /output:a.html logicaldisk where "DriveType=3" get DeviceID,Size,FreeSpace,Description,FileSystem /format:htable●,这样一来a.htm里就花花绿绿的用表格显示我们本地磁盘的信息了。也许你要问,htable是什么东东,其实这是一个文件,你想要上边的a.html什么格式,就可以在C:\WINDOWS\system32\wbem这里找一个你想要的格式的文件名,具体有以下一些文件:
★
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:盘的,不要其它盘的可以做到吗?当然可以,这就要用到wql语句的name这个变量了。你可以先用●wmic logicaldisk list Instance●看到name的具体名字,然后更改上边的wql语句。好啦,我们改一下,改成●wmic /output:a.html logicaldisk where "name='c:'" get DeviceID,Size,FreeSpace,Description,FileSystem /format:htable或者wmic /output:a.html logicaldisk where(name='c:') get DeviceID,Size,FreeSpace,Description,FileSystem /format:htable●就可以了。值得注意的是我们在DriveType=3的没有用到单引号是因为3是数字型的,而c:是字符型的所以要用单引号或双引号。不过要注意的是如果在wql语句中用到了and,请用()或者""把语句引起来。
這樣一來,我們最後的語句基本符合了我文章開頭說的wmic的命令格式是“wmic+開關+別名+wql語名+動詞+副詞(或者說是動詞的參數)+動詞開關”。不過wmic可不只能對本機操作,還可以對遠程機器進行操作,我們再來加三個全局開關,讓我們的這條命令對遠程格式進行操作,命令就是:
●WMIC /node:"192.168.8.100" /user:"administrator" /password:"lcx" /output:a.html logicaldisk where "name='c:'" get DeviceID,Size,FreeSpace,Description,FileSystem /format:htable●
其中node开关表示对哪台机器进行访问,user和password当然是远程机器的用户名和密码了,这个命令有了以上的讲解,大家应当一目了然了吧。到现在为止,我们的动词只用到了get和list,我们再加一个set来改变c:盘的卷标。命令如下:●WMIC logicaldisk where "name='c:'" set VolumeName ="lcx"●,这样大家就更进一步清楚了这个格式的用法。写了这么多字,也许你要问到我wmic最有用的开关是什么,当然是"?"了,如果那个命令不会用,可以用wmic /? 、WMIC logicaldisk /?、WMIC logicaldisk list /?、WMIC logicaldisk set /?这样仪次来查询用法。
三、總結
wmic是很强大的,像开2003的3389一句话就可以做到:●wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1●。不过呢,
這篇文章估計會有讓觀衆上當受騙的感覺,一個wmic的磁盤命令寫了這麽長的篇幅,不過我想有了本文的基礎,你研究wmic其它的別名像進程、服務、bios、主板呀,都會有一個切入點,具體的好的技巧如開3389等就要靠大家去研究發現了。
補充:
Windows WMIC命令详解
rem 查看cpu
wmic cpu list brief
rem 查看物理内存
wmic memphysical list brief
rem 查看逻辑内存
wmic memlogical list brief
rem 查看缓存内存
wmic memcache list brief
rem 查看虚拟内存
wmic pagefile list brief
rem 查看网卡
wmic nic list brief
rem 查看网络协议
wmic netprotocal list brief
【例】將當前系統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
--------------------------------------------------------------------------------
WMIC命令參數幫助參考:
--------------------------------------------------------------------------------
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 服务操作参数管理。