wmic.exe

wmic.exe是WMI 命令行。作為 Windows XP 的一部分發布的 WMI 命令行工具 (wmic.exe) 提供一個到 WMI 基礎結構的命令行接口。可以使用 wmic.exe 執行來自命令行的常見 WMI 任務,包括瀏覽 CIM 和檢查 CIM 類定義。有關使用 WMI 命令行工具的信息,參閱 Windows XP 幫助和支持中心內的“使用 WMI 命令行 (WMIC) 工具”

基本介紹

  • 中文名:wmic.exe
  • 含義:WMI 命令行
  • 實質: XP 的一部分發布
定義,功能,使用實例,

定義

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實現如下的管理任務:
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

熱門詞條

聯絡我們