第一次執行WMIC命令時,Windows首先要安裝WMIC,然后顯示出WMIC的命令行提示符。在WMIC命令行提示符上,命令以交互的方式執行執行“wmic”命令啟動WMIC命令行環境。這個命令可以在XP或 .NET Server的標準命令行解釋器(cmd.exe)、Telnet會話或“運行”對話框中執行。這些啟動方法可以在本地使用,也可以通過.NET Server終端服務會話使用。第一次執行WMIC命令時,Windows首先要安裝WMIC,然后顯示出WMIC的命令行提示符。在WMIC命令行提示符上,命令以交互的方式執行。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 的別名用法。(<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 DELETEPROCESS GET [<property list>] [<get switches>]PROCESS LIST [<list format>] [<list switches>]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-46B1E8590Description=Maxthon.exeExecutablePath=D:\mytools\Maxthon2\Maxthon.exeExecutionState=Handle=684HandleCount=2296InstallDate=KernelModeTime=3495000000MaximumWorkingSetSize=1413120MinimumWorkingSetSize=204800Name=Maxthon.exeOSName=Microsoft Windows XP Professional|C:\WINDOWS|OtherOperationCount=307814OtherTransferCount=60877207PageFaults=1367971PageFileUsage=89849856ParentProcessId=1924PeakPageFileUsage=90091520PeakVirtualSize=385802240PeakWorkingSetSize=94031872Priority=8PrivatePageCount=89849856ProcessId=684QuotaNonPagedPoolUsage=43496QuotaPagedPoolUsage=257628QuotaPeakNonPagedPoolUsage=72836QuotaPeakPagedPoolUsage=271372ReadOperationCount=85656ReadTransferCount=121015982SessionId=0Status=TerminationDate=ThreadCount=57UserModeTime=1778750000VirtualSize=353206272WindowsVersion=5.1.2600WorkingSetSize=93716480WriteOperationCount=30940WriteTransferCount=24169673******************************************************************************停止、暫停和運行服務功能啟動服務startservice,停止服務stopservice,暫停服務pauseserviceService 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,NameWMIC設置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為123wmic computersystem where "name='abc'" call rename 123★★更改工作組google為MyGroupwmic computersystem where "name='google'" call joindomainorworkgroup "","","MyGroup",1CPU - CPU 管理★★查看cpu型號wmic cpu get nameDATAFILE - DataFile 管理★★查找e盤下test目錄(不包括子目錄)下的cc.cmd文件wmic datafile where "drive='e:' and path='\\test\\' and FileName='cc' and Extension='cmd'" list★★查找e盤下所有目錄和子目錄下的cc.cmd文件,且文件大小大于1Kwmic 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.batwmic datafile where "drive='e:' and path='\\test\\' and FileName='cc' and Extension='cmd'" call copy "e:\aa.bat"★★改名c:\hello.txt為c:\test.txtwmic 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 nameDESKTOPMONITOR - 監視器管理★★獲取屏幕分辨率wmic DESKTOPMONITOR where Status='ok' get ScreenHeight,ScreenWidthDISKDRIVE - 物理磁盤驅動器管理★★獲取物理磁盤型號大小等wmic DISKDRIVE get Caption,size,InterfaceTypeENVIRONMENT - 系統環境設置管理★★獲取temp環境變量wmic ENVIRONMENT where "name='temp'" get UserName,VariableValue★★更改path環境變量值,新增e:\toolswmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;e:\tools"★★新增系統環境變量home,值為%HOMEDRIVE%%HOMEPATH%wmic ENVIRONMENT create name="home",username="<system>",VariableValue="%HOMEDRIVE%%HOMEPATH%"★★刪除home環境變量wmic ENVIRONMENT where "name='home'" deleteFSDIR - 文件目錄系統項目管理★★查找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文件夾為abbwmic fsdir "c:\\good" rename "c:\abb"LOGICALDISK - 本地儲存設備管理★★獲取硬盤系統格式、總大小、可用空間等wmic LOGICALDISK get name,Description,filesystem,size,freespaceNIC - 網絡界面控制器 (NIC) 管理OS - 已安裝的操作系統管理★★設置系統時間wmic os where(primary=1) call setdatetime 20070731144642.555555+480PAGEFILESET - 頁面文件設置管理★★更改當前頁面文件初始大小和最大值wmic PAGEFILESET set InitialSize="512",MaximumSize="512"★★頁面文件設置到d:\下,執行下面兩條命令wmic pagefileset create name='d:\pagefile.sys',initialsize=512,maximumsize=1024wmic pagefileset where"name='c:\\pagefile.sys'" deletePROCESS - 進程管理★★列出進程的核心信息,類似任務管理器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 notepadPRODUCT - 安裝包任務管理★★安裝包在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 ReinstallSERVICE - 服務程序管理★★運行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 deleteSHARE - 共享資源管理★★刪除共享wmic SHARE where name="e$" call delete★★添加共享WMIC SHARE CALL Create "","test","3","TestShareName","","c:\test",0SOUNDDEV - 聲音設備管理wmic SOUNDDEV listSTARTUP - 用戶登錄到計算機系統時自動運行命令的管理★★查看msconfig中的啟動選項wmic STARTUP listSYSDRIVER - 基本服務的系統驅動程序管理wmic SYSDRIVER listUSERACCOUNT - 用戶帳戶管理★★更改用戶administrator全名為adminwmic USERACCOUNT where name="Administrator" set FullName="admin"★★更改用戶名admin為admin00wmic 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:administratorPATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1具體格式:wmic /node:"[full machine name]" /USER:"[domain]\[username]"PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1wmic 獲取進程名稱以及可執行路徑:wmic process get name,executablepathwmic 刪除指定進程(根據進程名稱):wmic process where name="qq.exe" call terminate或者用wmic process where name="qq.exe" deletewmic 刪除指定進程(根據進程PID):wmic process where pid="123" deletewmic 創建新進程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 newUserNamewmic 結束可疑進程(根據進程的啟動路徑)wmic process where "name='explorer.exe' and executablepath<>'%SystemDrive%\\windows\\explorer.exe'" deletewmic 獲取物理內存wmic memlogical get TotalPhysicalMemory|find /i /v "t"wmic 獲取文件的創建、訪問、修改時間@echo offfor /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=%%aset b=%%bset c=%%cecho 文件: c:\windows\system32\notepad.exeecho.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.pausewmic 全盤搜索某文件并獲取該文件所在目錄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,ScreenWidthwmic 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 offfor /f "skip=1 tokens=1-2 delims= " %%a in ('wmic process where caption^="conime.exe" get WorkingSetSize^,PeakWorkingSetSize') do (set /a m=%%a/1024set /a mm=%%b/1024echo 進程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 <authority type> 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 VolumeNameA: 2C: 3 2925694976 6805409792 WINXPD: 3 1117487104 1759936512 WORKE: 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 VolumeNameC: 3 2925686784 6805409792 WINXPD: 3 1117487104 1759936512 WORK★但是上邊的格式呢顯示的我們還是不太滿意,ProviderName不知是個什么東東也給顯示出來了,我們只想要我們想要的東東,像卷標 VolumeName之類的我們也不要它,再把語句改一下,換個get動詞,命令改為●wmic logicaldisk where "DriveType=3" get DeviceID,Size,FreeSpace,Description,FileSystem●,返回信息如下:★DeviceID,Size,FreeSpace,Description,FileSystemDescription 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這里找一個你想要的格式的文件名,具體有以下一些文件:★CSVHFORMHMOFHTABLEHXMLLISTTABLEVALUEhtable-sortbyhtable-sortby.xsltexttablewsystexttablewsys.xslwmiclimofformatwmiclimofformat.xslwmiclitableformatwmiclitableformat.xslwmiclitableformatnosyswmiclitableformatnosys.xslwmiclivalueformatwmiclivalueformat.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 查看cpuwmic cpu list briefrem 查看物理內存wmic memphysical list briefrem 查看邏輯內存wmic memlogical list briefrem 查看緩存內存wmic memcache list briefrem 查看虛擬內存wmic pagefile list briefrem 查看網卡wmic nic list briefrem 查看網絡協議wmic netprotocal list brief【例】將當前系統BIOS,CPU,主板等信息輸出到一個HTML網頁文件,命令如下:::得到系統信息.bat,運行bat文件即可::系統信息輸出到HTML文件,查看幫助: wmic /?::wmic [系統參數名] list [brief|full] /format:hform >|>> [文件名]wmic bios list brief /format:hform > PCinfo.htmlwmic baseboard list brief /format:hform >>PCinfo.htmlwmic cpu list full /format:hform >>PCinfo.htmlwmic os list full /format:hform >>PCinfo.htmlwmic computersystem list brief /format:hform >>PCinfo.htmlwmic diskdrive list full /format:hform >>PCinfo.htmlwmic memlogical list full /format:hform >>PCinfo.htmlPCinfo.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 服務操作參數管理。
?