wmic的文件使用詳解
作者:
www.sec5… 文章來(lái)源:互聯(lián)網(wǎng) 點(diǎn)擊數:39 更新時(shí)間:2008-11-30 10:08:29
--------------------------------------------------------------------------------
執行“wmic”命令啟動(dòng)WMIC命令行環(huán)境。這個(gè)命令可以在XP或 .NET Server的標準命令行解釋器(cmd.exe)、Telnet會(huì )話(huà)或“運行”對話(huà)框中執行。這些啟動(dòng)方法可以在本地使用,也可以通過(guò).NET Server終端服務(wù)會(huì )話(huà)使用。
第一次執行WMIC命令時(shí),Windows首先要安裝WMIC,然后顯示出WMIC的命令行提示符。在WMIC命令行提示符上,命令以交互的方式執行。
wimic的運行方式可以有兩種法:
1、搞入wimic進(jìn)入后輸入命令運行,鍵入wimic后出現wmic:root\cli>時(shí)你就可以輸入命令了,如輸入process顯示所有的進(jìn)程。不知道有什么命令時(shí)可以輸入用/?來(lái)顯示幫助。exit 是退出交互模式。具體幫助用法如下:
命令行幫助
命令 例子 說(shuō)明
/? 或 -? 顯示所有全局開(kāi)關(guān)和別名的語(yǔ)法
/ /? /user /? 顯示指定全局開(kāi)關(guān)的信息
/? class /? 顯示某個(gè)命令的信息
/? memcache /? 顯示某個(gè)別名的信息
/? temperature get /? 顯示別名與動(dòng)詞組合的信息
/?:Full irq get /?:Full 顯示動(dòng)詞的幫助信息
如:我要查看process命令的幫助,鍵入:process/?后顯示如下:
wmic:root\cli>process /?
PROCESS - 進(jìn)程管理。
提示: BNF 的別名用法。
(<alias> [WMIObject] | <alias> [<path where>] | [<alias>] <path where>) [<verb clause>].
用法:
PROCESS ASSOC [<format specifier>]
PROCESS CALL <method name> [<actual param list>]
PROCESS CREATE <assign list>
PROCESS DELETE
PROCESS GET [<property list>] [<get switches>]
PROCESS LIST [<list format>] [<list switches>]
2、用wimic 后面直接跟命令運行,如wmic process 就顯示了所有的進(jìn)程了。這兩種運行方法就是:交互模式(Interactive mode)和非交互模式(Non-Interactive mode)
下面我們能過(guò)一些實(shí)例來(lái)說(shuō)明用法:
=====================================================================
顯示進(jìn)程的詳細信息
輸入 process where name="maxthon.exe" list full
將顯示出mxathon.exe進(jìn)程所有的信息如下:
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
******************************************************************************
停止、暫停和運行服務(wù)功能
啟動(dòng)服務(wù)startservice,
停止服務(wù)stopservice,
暫停服務(wù)pauseservice
Service where caption="windows time" call stopservice ------停止服務(wù)
Service where caption="windows time" call startservice ------啟動(dòng)服務(wù)
Service where name="w32time" call stopservice ------停止服務(wù),注意name和caption的區別。
caption 顯示服務(wù)名name服務(wù)名稱(chēng),如: telnet服務(wù)的顯示名稱(chēng)是telnet 服務(wù)名稱(chēng)是tlntsvr,還有Windows Time服務(wù)的名稱(chēng)是w32time 顯示名稱(chēng)是"Windows Time"要用引號引起來(lái),主要是有一個(gè)空格。
好了具體看一下:輸入Service where caption="windows time" call startservice后有一個(gè)確認輸入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
大家可能注意到了上面命令行中還有兩個(gè)參數list和full。list決定顯示的信息格式與范圍,它有Brief、Full、Instance、 Status、System、Writeable等多個(gè)參數,full只是它的一個(gè)參數,也是list的缺省參數,表示顯示所有的信息。其他幾個(gè)參數顧名思義,如Brief表示只顯示摘要信息,Instance表示只顯示對象實(shí)例,Status表示顯示對象狀態(tài),Writeable表示只顯示該對象的可寫(xiě)入的屬性信息等。
************************************************************************=====================
停止進(jìn)程的操作
例如,執行下面的命令將關(guān)閉正在運行的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命令行提示出如下結果:
==================================================================
連接遠程電腦
★★連接遠程的電腦,不過(guò)好象對要開(kāi)一些相應的服務(wù)
wmic /node:"192.168.203.131" /password:"" /user:"administrator"
BIOS - 基本輸入/輸出服務(wù) (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說(shuō)明是配置網(wǎng)絡(luò )接口1。
配置網(wǎng)關(guān)(默認路由):
wmic nicconfig where index=0 call setgateways("192.168.1.1"),(1)
COMPUTERSYSTEM - 計算機系統管理
★★查看系統啟動(dòng)選項,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盤(pán)下test目錄(不包括子目錄)下的cc.cmd文件
wmic datafile where "drive='e:' and path='\\test\\' and FileName='cc' and Extension='cmd'" list
★★查找e盤(pán)下所有目錄和子目錄下的cc.cmd文件,且文件大小大于1K
wmic datafile where "drive='e:' and FileName='cc' and Extension='cmd' and FileSize>'1000'" list
★★刪除e盤(pán)下文件大小大于10M的.cmd文件
wmic datafile where "drive='e:' and Extension='cmd' and FileSize>'10000000'" call delete
★★刪除e盤(pán)下test目錄(不包括子目錄)下的非.cmd文件
wmic datafile where "drive='e:' and Extension<>'cmd' and path='test'" call delete
★★復制e盤(pán)下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盤(pán)下目錄含有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 - 物理磁盤(pán)驅動(dòng)器管理
★★獲取物理磁盤(pán)型號大小等
wmic DISKDRIVE get Caption,size,InterfaceType
ENVIRONMENT - 系統環(huán)境設置管理
★★獲取temp環(huán)境變量
wmic ENVIRONMENT where "name='temp'" get UserName,VariableValue
★★更改path環(huán)境變量值,新增e:\tools
wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;e:\tools"
★★新增系統環(huán)境變量home,值為%HOMEDRIVE%%HOMEPATH%
wmic ENVIRONMENT create name="home",username="<system>",VariableValue="%HOMEDRIVE%%HOMEPATH%"
★★刪除home環(huán)境變量
wmic ENVIRONMENT where "name='home'" delete
FSDIR - 文件目錄系統項目管理
★★查找e盤(pán)下名為test的目錄
wmic FSDIR where "drive='e:' and filename='test'" list
★★刪除e:\test目錄下除過(guò)目錄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 - 本地儲存設備管理
★★獲取硬盤(pán)系統格式、總大小、可用空間等
wmic LOGICALDISK get name,Description,filesystem,size,freespace
NIC - 網(wǎng)絡(luò )界面控制器 (NIC) 管理
OS - 已安裝的操作系統管理
★★設置系統時(shí)間
wmic os where(primary=1) call setdatetime 20070731144642.555555+480
PAGEFILESET - 頁(yè)面文件設置管理
★★更改當前頁(yè)面文件初始大小和最大值
wmic PAGEFILESET set InitialSize="512",MaximumSize="512"
★★頁(yè)面文件設置到d:\下,執行下面兩條命令
wmic pagefileset create name='d:\pagefile.sys',initialsize=512,maximumsize=1024
wmic pagefileset where"name='c:\\pagefile.sys'" delete
PROCESS - 進(jìn)程管理
★★列出進(jìn)程的核心信息,類(lèi)似任務(wù)管理器
wmic process list brief
★★結束svchost.exe進(jìn)程,路徑為非C:\WINDOWS\system32\svchost.exe的
wmic process where "name='svchost.exe' and ExecutablePath<>'C:\\WINDOWS\\system32\\svchost.exe'" call Terminate
★★新建notepad進(jìn)程
wmic process call create notepad
PRODUCT - 安裝包任務(wù)管理
★★安裝包在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 - 服務(wù)程序管理
★★運行spooler服務(wù)
wmic SERVICE where name="Spooler" call startservice
★★停止spooler服務(wù)
wmic SERVICE where name="Spooler" call stopservice
★★暫停spooler服務(wù)
wmic SERVICE where name="Spooler" call PauseService
★★更改spooler服務(wù)啟動(dòng)類(lèi)型[auto|Disabled|Manual] 釋[自動(dòng)|禁用|手動(dòng)]
wmic SERVICE where name="Spooler" set StartMode="auto"
★★刪除服務(wù)
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 - 用戶(hù)登錄到計算機系統時(shí)自動(dòng)運行命令的管理
★★查看msconfig中的啟動(dòng)選項
wmic STARTUP list
SYSDRIVER - 基本服務(wù)的系統驅動(dòng)程序管理
wmic SYSDRIVER list
USERACCOUNT - 用戶(hù)帳戶(hù)管理
★★更改用戶(hù)administrator全名為admin
wmic USERACCOUNT where name="Administrator" set FullName="admin"
★★更改用戶(hù)名admin為admin00
wmic useraccount where "name='admin" call Rename admin00
================================================獲取補丁信息
★★查看當前系統打了哪些補丁
/node:legacyhost qfe get hotfixid
查看CPU當前的速度
★★cpu當前的速度
wmic cpu get CurrentClockSpeed
遠程計算機的遠程桌面連接
★★WMIC命令開(kāi)啟遠程計算機的遠程桌面連接
執行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 獲取進(jìn)程名稱(chēng)以及可執行路徑:
wmic process get name,executablepath
wmic 刪除指定進(jìn)程(根據進(jìn)程名稱(chēng)):
wmic process where name="qq.exe" call terminate
或者用
wmic process where name="qq.exe" delete
wmic 刪除指定進(jìn)程(根據進(jìn)程PID):
wmic process where pid="123" delete
wmic 創(chuàng )建新進(jìn)程
wmic process call create "C:\Program Files\Tencent\QQ\QQ.exe"
在遠程機器上創(chuàng )建新進(jìn)程:
wmic /node:192.168.201.131 /user:administrator /password:123456 process call create cmd.exe
關(guān)閉本地計算機
wmic process call create shutdown.exe
重啟遠程計算機
wmic /node:192.168.1.10/user:administrator /password:123456 process call create "shutdown.exe -r -f -m"
更改計算機名稱(chēng)
wmic computersystem where "caption='%ComputerName%'" call rename newcomputername
更改帳戶(hù)名
wmic USERACCOUNT where "name='%UserName%'" call rename newUserName
wmic 結束可疑進(jìn)程(根據進(jìn)程的啟動(dòng)路徑)
wmic process where "name='explorer.exe' and executablepath<>'%SystemDrive%\\windows\\explorer.exe'" delete
wmic 獲取物理內存
wmic memlogical get TotalPhysicalMemory|find /i /v "t"
wmic 獲取文件的創(chuàng )建、訪(fǎng)問(wèn)、修改時(shí)間
@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 創(chuàng )建時(shí)間: %a:~0,4% 年 %a:~4,2% 月 %a:~6,2% 日 %a:~8,2% 時(shí) %a:~10,2% 分 %a:~12,2% 秒
echo 最后訪(fǎng)問(wèn): %b:~0,4% 年 %b:~4,2% 月 %b:~6,2% 日 %b:~8,2% 時(shí) %b:~10,2% 分 %b:~12,2% 秒
echo 最后修改: %c:~0,4% 年 %c:~4,2% 月 %c:~6,2% 日 %c:~8,2% 時(shí) %c:~10,2% 分 %c:~12,2% 秒
)
echo.
pause
wmic 全盤(pán)搜索某文件并獲取該文件所在目錄
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盤(pán),并刪除C盤(pán)下的頁(yè)面文件,重啟計算機后生效
wmic PageFileSet create name="E:\\pagefile.sys",InitialSize="1024",MaximumSize="1024"
wmic PageFileSet where "name='C:\\pagefile.sys'" delete
獲得進(jìn)程當前占用的內存和最大占用內存的大?。?/div>
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 進(jìn)程conime.exe現在占用內存:%m%K;最高占用內存:%mm%K
)
pause
遠程打開(kāi)計算機遠程桌面
wmic /node:%pcname% /USER:%pcaccount% PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1
===========================================================================
批處理的api--WMIC學(xué)習體會(huì )
在這篇文章里也許你看不到很多奇特有用的的實(shí)際例程,但是呢,授人以魚(yú)不如授人以漁,希望我的文章能讓你通俗易懂的了解一些wmic的基本知識,可以有一個(gè)學(xué)習的興趣,讓自己繼續深研一下wmic。
在WINDOWS\Help目下,wmic.chm文檔是這樣解釋wmi的:Windows Management Instrumentation (WMI) 是“基于 Web 的企業(yè)管理倡議 (WBEM)”(這是一個(gè)旨在建立在企業(yè)網(wǎng)絡(luò )上訪(fǎng)問(wèn)和共享管理信息的標準的工業(yè)倡議)的 Microsoft 的實(shí)現。有關(guān) WBEM 的詳細信息,請訪(fǎng)問(wèn) WBEM。XOXWMI 為公用信息模型 (CIM)(該數據模型描述存在于管理環(huán)境中的對象)提供完整的支持。WMI 包括對象儲備庫和 CIM 對象管理器,其中對象儲備庫是包含對象定義的數據庫,對象管理器負責處理儲備庫中對象的收集和操作并從 WMI 提供程序 (WMI provider) 收集信息。WMI 提供程序 (WMI provider) 在 WMI 和操作系統、應用程序以及其他系統的組件之間充當中介。例如,注冊表提供程序從注冊表中提供信息,而 SNMP 提供程序則從 SNMP 設備中提供數據和事件。提供程序提供關(guān)于其組件的信息,也可能提供一些方法,這些方法可以操作可設置的組件、屬性,或者操作可能警告您在組件中要發(fā)生更改的事件。Windows Management Instrumentation 命令行 (WMIC) 向您提供了簡(jiǎn)單的 Windows Management Instrumentation (WMI) 命令行界面,這樣即可利用 WMI 來(lái)管理運行 Windows 的計算機。WMIC 與現有命令行程序和實(shí)用程序命令相互操作,且很容易通過(guò)腳本或其他面向管理的應用程序來(lái)擴展 WMIC。
以上的這些說(shuō)法太專(zhuān)業(yè)了,通俗一點(diǎn)講就是wmic.exe是一個(gè)命令行程序,可以用它這個(gè)接口來(lái)實(shí)現在命令行下直接管理計算機軟硬件等方方面面的操作,相當于批處理的api了。
一、wmic的基本命令格式簡(jiǎn)析
經(jīng)??淳W(wǎng)上的相關(guān)資料的話(huà),讀者可能會(huì )對wmic有一個(gè)基本的認識,不過(guò)看得越多估計會(huì )越糊涂,起碼我是這樣認為的。其實(shí)簡(jiǎn)單總結一下,命令格式就是“wmic+全局開(kāi)關(guān)+別名+wql語(yǔ)句+動(dòng)詞+副詞(或者說(shuō)是動(dòng)詞的參數)+動(dòng)詞開(kāi)關(guān)”而已了。這個(gè)命令格式可以根據需要來(lái)寫(xiě)全或者寫(xiě)部份格式,我這里依次對格式的每個(gè)名稱(chēng)按自己的理解來(lái)解釋一下,不過(guò)肯定完全不符合微軟專(zhuān)家的定義,只是讓大家弄懂它們而已。
wmic就是wmic.exe,位于windows目錄底下,是一個(gè)命令行程序。WMIC可以以?xún)煞N模式執行:交互模式(Interactive mode)和非交互模式(Non-Interactive mode),經(jīng)常使用Netsh命令行的讀者應該非常熟悉這兩種模式。
交互模式。如果你在命令提示符下或通過(guò)"運行"菜單只輸入WMIC,都將進(jìn)入WMIC的交互模式,每當一個(gè)命令執行完畢后,系統還會(huì )返回到WMIC提示符下,如"Root\cli",交互模式通常在需要執行多個(gè)WMIC指令時(shí)使用。交互模式有時(shí)還會(huì )對一些敏感的操作要求確認,比如刪除操作,最大限度地防止用戶(hù)操作出現失誤。
非交互模式。非交互模式是指將WMIC指令直接作為WMIC的參數放在WMIC后面,當指令執行完畢后再返回到普通的命令提示符下,而不是進(jìn)入到WMIC上下文環(huán)境中。WMIC的非交互模式主要用于批處理或者其他一些腳本文件中,我在本文中一律用●非交互模式●示例。
開(kāi)關(guān)有以下的全局開(kāi)關(guān),打入wmic.exe /?可以看到的(這里我們先不討論每個(gè)開(kāi)關(guān)的具體意思,具體用法看示例):
★
/NAMESPACE 別名使用的名稱(chēng)空間路徑。
/ROLE 包含此別名定義的角色路徑。
/NODE 別名使用的服務(wù)器。
/IMPLEVEL 客戶(hù)模擬級別。
/AUTHLEVEL 客戶(hù)身份驗證級別。
/LOCALE 客戶(hù)應用的語(yǔ)言識別符。
/PRIVILEGES 啟用或禁用所有特權。
/TRACE 將調試信息輸出到 stderr。
/RECORD 將所有輸入命令和輸出寫(xiě)入日志。
/INTERACTIVE 設置或重設交互模式。
/FAILFAST 設置或重置 FailFast 模式。
/USER 會(huì )話(huà)期間使用的用戶(hù)。
/PASSWORD 用于會(huì )話(huà)登錄的密碼。
/OUTPUT 為輸出重新定向指定模式。
/APPEND 為輸出重新定向指定模式。
/AGGREGATE 設置或重置集合模式。
/AUTHORITY Specifies the <authority type> for the connection.
/?[:<BRIEF|FULL>] Usage information.
★
至于別名啦,就是給主板、服務(wù)、系統、進(jìn)程啦這些和計算機相關(guān)的東東起了個(gè)英文名,在wmic.exe /?命令行下也可以看到。
wql語(yǔ)句和我們平常用的注入時(shí)的sql語(yǔ)句的語(yǔ)法幾乎是一模一樣,甚至更簡(jiǎn)單。一般是where name="xxx" and 之類(lèi)的,不過(guò)有時(shí)候要把name=“xxx"這樣的格式換成"name='xxx'"或者是where(name='xxx')這樣,反正正常情況下不行的話(huà)就換個(gè)寫(xiě)法。
動(dòng)詞呢,就那么簡(jiǎn)單幾個(gè)assoc、call、CREATE、DELETE、GET、LIST、SET,從英文名字上應當可以看出它們是用來(lái)干什么的。不過(guò)說(shuō)實(shí)話(huà),assoc我真的還沒(méi)用到過(guò)。
至于副詞(動(dòng)詞的參數),就是得到用動(dòng)詞+它的參數得到對象的屬性。像屬于list動(dòng)詞的副詞,就是顯示個(gè)什么樣的呀,例如顯示詳細狀態(tài)或簡(jiǎn)要狀態(tài)。
動(dòng)詞開(kāi)關(guān)就好比顯示個(gè)橫表格式的或者顯示個(gè)豎表格式的或者輸出個(gè)什么樣格式的文件,或者是幾秒來(lái)重復顯示信息等等,有的動(dòng)詞并沒(méi)有開(kāi)關(guān)。
二、一步一步來(lái)完成我們的wmic命令行
wmic里有個(gè)別名是logicaldisk,就是對磁盤(pán)進(jìn)行管理。我們先按照最簡(jiǎn)單的格式來(lái)寫(xiě),在cmd命令行下輸入●wmic logicaldisk list●(wmic.exe+別名+list動(dòng)詞),稍等一會(huì )兒屏幕上會(huì )出現本地硬盤(pán)的各式各樣的數據,看上去雜亂無(wú)章。這樣子太不方便看了,我們來(lái)改寫(xiě)一下,改成●wmic logicaldisk list brief●,在list動(dòng)詞后加個(gè)brief參數,也就是brief副詞,顯示的就會(huì )很整齊,效果如下:
★
DeviceID brief FreeSpace ProviderName Size VolumeName
A: 2
C: 3 2925694976 6805409792 WINXP
D: 3 1117487104 1759936512 WORK
E: 5
★
大家可能注意到了上面命令行中有動(dòng)詞list和副詞brief。list動(dòng)詞決定顯示的信息格式與范圍,它有Brief、Full、Instance、Status、System、Writeable等多個(gè)參數(副詞),full只是它的一個(gè)參數,也是list的缺省參數,表示顯示所有的信息。其他幾個(gè)參數顧名思義,如Brief表示只顯示摘要信息,Instance表示只顯示對象實(shí)例,Status表示顯示對象狀態(tài),Writeable表示只顯示該對象的可寫(xiě)入的屬性信息等。
我們再來(lái)把語(yǔ)句加點(diǎn)東東,在上邊磁盤(pán)返回信息當中的DeviceID的值為3時(shí)表示是本地硬盤(pán)的分區,如果是5為光區,為2則是移動(dòng)磁盤(pán)了。我們把語(yǔ)句改一下,加入wql語(yǔ)句,只顯示本地磁盤(pán)。語(yǔ)句改成●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
★
但是上邊的格式呢顯示的我們還是不太滿(mǎn)意,ProviderName不知是個(gè)什么東東也給顯示出來(lái)了,我們只想要我們想要的東東,像卷標VolumeName之類(lèi)的我們也不要它,再把語(yǔ)句改一下,換個(gè)get動(dòng)詞,命令改為●wmic logicaldisk where "DriveType=3" get DeviceID,Size,FreeSpace,Description,FileSystem●,返回信息如下:
★
DeviceID,Size,FreeSpace,Description,FileSystem
Description DeviceID FileSystem FreeSpace Size
本地固定磁盤(pán) C: FAT32 2925686784 6805409792
本地固定磁盤(pán) D: FAT 1117487104 1759936512
★
至于get動(dòng)詞后面跟的參數你可以先用list來(lái)查看一下就明白了。好了,這回可以得到我們想要的結果了。不過(guò)命令里的開(kāi)關(guān)我們還沒(méi)用到呢,加幾個(gè)全局開(kāi)關(guān)吧。先來(lái)加個(gè)/OUTPUT吧,讓它把顯示信息輸出到一個(gè)文件中,命令如下:●wmic /output:a.html logicaldisk where "DriveType=3" get DeviceID,Size,FreeSpace,Description,FileSystem●,這樣一來(lái)剛才屏幕上返回的信息就到當前目錄的a.htm里了。但是a.htm打開(kāi)看看后,根本就像一個(gè)記事本一樣,沒(méi)有任何樣式,看起來(lái)也不美觀(guān),我們給它指定一個(gè)樣式,就要用到format這個(gè)動(dòng)詞開(kāi)關(guān)了,命令改為●wmic /output:a.html logicaldisk where "DriveType=3" get DeviceID,Size,FreeSpace,Description,FileSystem /format:htable●,這樣一來(lái)a.htm里就花花綠綠的用表格顯示我們本地磁盤(pán)的信息了。也許你要問(wèn),htable是什么東東,其實(shí)這是一個(gè)文件,你想要上邊的a.html什么格式,就可以在C:\WINDOWS\system32\wbem這里找一個(gè)你想要的格式的文件名,具體有以下一些文件:
★
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
★
還有人也許要問(wèn)了,我只想顯示c:盤(pán)的,不要其它盤(pán)的可以做到嗎?當然可以,這就要用到wql語(yǔ)句的name這個(gè)變量了。你可以先用●wmic logicaldisk list Instance●看到name的具體名字,然后更改上邊的wql語(yǔ)句。好啦,我們改一下,改成●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的沒(méi)有用到單引號是因為3是數字型的,而c:是字符型的所以要用單引號或雙引號。不過(guò)要注意的是如果在wql語(yǔ)句中用到了and,請用()或者""把語(yǔ)句引起來(lái)。
這樣一來(lái),我們最后的語(yǔ)句基本符合了我文章開(kāi)頭說(shuō)的wmic的命令格式是“wmic+開(kāi)關(guān)+別名+wql語(yǔ)名+動(dòng)詞+副詞(或者說(shuō)是動(dòng)詞的參數)+動(dòng)詞開(kāi)關(guān)”。不過(guò)wmic可不只能對本機操作,還可以對遠程機器進(jìn)行操作,我們再來(lái)加三個(gè)全局開(kāi)關(guān),讓我們的這條命令對遠程格式進(jìn)行操作,命令就是:
●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開(kāi)關(guān)表示對哪臺機器進(jìn)行訪(fǎng)問(wèn),user和password當然是遠程機器的用戶(hù)名和密碼了,這個(gè)命令有了以上的講解,大家應當一目了然了吧。到現在為止,我們的動(dòng)詞只用到了get和list,我們再加一個(gè)set來(lái)改變c:盤(pán)的卷標。命令如下:●WMIC logicaldisk where "name='c:'" set VolumeName ="lcx"●,這樣大家就更進(jìn)一步清楚了這個(gè)格式的用法。寫(xiě)了這么多字,也許你要問(wèn)到我wmic最有用的開(kāi)關(guān)是什么,當然是"?"了,如果那個(gè)命令不會(huì )用,可以用wmic /? 、WMIC logicaldisk /?、WMIC logicaldisk list /?、WMIC logicaldisk set /?這樣儀次來(lái)查詢(xún)用法。
三、總結
wmic是很強大的,像開(kāi)2003的3389一句話(huà)就可以做到:●wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1●。不過(guò)呢,
這篇文章估計會(huì )有讓觀(guān)眾上當受騙的感覺(jué),一個(gè)wmic的磁盤(pán)命令寫(xiě)了這么長(cháng)的篇幅,具體的奇淫技巧卻沒(méi)有看到。不過(guò)我想有了本文的基礎,你研究wmic其它的別名像進(jìn)程、服務(wù)、bios、主板呀,都會(huì )有一個(gè)切入點(diǎn),具體的好的技巧如開(kāi)3389等就要靠大家去研究發(fā)現了。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。