天天看點

DevCon指令

DevCon 是一個帶有内置文檔的指令行實用工具。如果您運作 devcon help 指令,将會出現以下指令清單和描述資訊。devcon help 指令可提供關于任何指令的詳細幫助。使用其中的某些指令,您可以指定遠端目标計算機。如果您在 WOW64 上使用 32 位版的 DevCon,則以下指令有效。

裝置控制台幫助:
devcon.exe [-r] [-m:\\<machine>] <command> [<arg>...]
-r 如果指定它,在指令完成後若需要則重新啟動計算機。
<machine> 是目标計算機的名稱。
<command> 是将要執行的指令(如下所示)。
<arg>...  是指令需要的一個或多個參數。
要擷取關于某一特定指令的幫助,請鍵入:devcon.exe help <command>
classfilter          允許修改類别篩選程式。
classes              列出所有裝置安裝類别。
disable              禁用與指定的硬體或執行個體 ID 比對的裝置。
driverfiles          列出針對裝置安裝的驅動程式檔案。
drivernodes          列出裝置的所有驅動程式節點。
enable               啟用與指定的硬體或執行個體 ID 比對的裝置。
find                 查找與指定的硬體或執行個體 ID 比對的裝置。
findall              查找裝置,包括那些未顯示的裝置。
help                 顯示此資訊。
hwids                列出裝置的硬體 ID。
install              手動安裝裝置。
listclass            列出某一安裝類别的所有裝置。
reboot               重新啟動本地計算機。
remove               删除與特定的硬體或執行個體 ID 比對的裝置。
rescan               掃描以發現新的硬體。
resources            列出裝置的硬體資源。
restart              重新啟動與特定的硬體或執行個體 ID 比對的裝置。
stack                列出預期的裝置驅動程式堆棧。
status               列出裝置的運作狀态。
update               手動更新裝置。
UpdateNI             手動更新裝置,無使用者提示
SetHwID              添加、删除和更改根枚舉裝置的硬體 ID 的順序。
        

DevCon 指令示例

< type="text/javascript">

devcon -m:\\test find pci\*

列出計算機test上的所有已知 PCI 裝置。(通過使用 -m,您可以指定一個目标計算機。您必須使用“程序間通信”(IPC) 通路此計算機。)

devcon-rinstall%WINDIR%\Inf\Netloop.inf *MSLOOP

安裝一個新的 Microsoft 環回擴充卡執行個體。這将建立一個新的根枚舉裝置節點,使用此節點您可以安裝“虛拟裝置”,如環回擴充卡。如果需要重新啟動計算機,此指令還将以安靜模式重新啟動計算機。

devcon classes

列出所有已知的安裝類别。輸出結果包含短的未本地化的名稱(例如,“USB”)和描述性名稱(例如,“通用串行總線控制器”)。

devcon classfilter upper !filter1 !filter2

删除這兩個指定的篩選程式。

devcon classfilter lower !badfilter +goodfilter

用“goodfilter”替換“badfilter”。

devcon driverfiles =ports

列出與ports安裝類别中的每一個裝置關聯的檔案。

devcon disable *MSLOOP

禁用硬體 ID 以“MSLOOP”結尾(包括“*MSLOOP”)的所有裝置。

devcon drivernodes @ROOT\PCI_HAL\PNP0A03

列出裝置“ROOT\PCI_HAL\PNP0A03”的所有相容驅動程式。這可以用來确定為什麼選擇原配的裝置資訊 (.inf) 檔案而不選第三方 .inf 檔案。

devcon enable \'*MSLOOP

啟用硬體 ID 為“*MSLOOP”的所有裝置。單引号訓示必須嚴格按字面解釋硬體 ID(換句話說,星号 [“*”] 真的是一個星号,而不是通配符)。

devcon find *

列出本地計算機上存在的所有裝置的裝置執行個體。

devcon find pci\*

列出本地計算機上所有已知的“外圍元件互連”(PCI) 裝置(如果一個裝置的硬體 ID 以“PCI\”為字首,此指令就認為該裝置是 PCI 裝置)。

devcon find =ports *pnp*

列出存在的作為ports安裝類别的成員而且硬體 ID 中包含“PNP”的裝置。

devcon find =ports @root\*

列出存在的作為ports安裝類别的成員而且在枚舉樹的“root”分支中的裝置(執行個體 ID 以“root\”為字首)。請注意,有關執行個體 ID 的格式化方式,不應作任何程式設計假定。要确定根裝置,可以檢查裝置狀态位。此功能包括在 DevCon 中是為了幫助進行調試。

devcon findall =ports

列出ports類别的“不存在”的裝置和存在的裝置。這包括已經被删除的裝置、從一個插槽移到另一個插槽的裝置,以及在某些情況下由于 BIOS 改變而被不同地枚舉的裝置。

devcon listclass usb 1394

列出指令中所列的每個類别(本例中是 USB 和 1394)的所有存在的裝置。

devcon remove @usb\*

删除所有 USB 裝置。被删除的裝置列出時将顯示其删除狀态。

devcon rescan

重新掃描以發現新的“即插即用”裝置。

devcon resources =ports

列出由ports安裝類别中的所有裝置使用的資源。

devcon restart =net @\'ROOT\*MSLOOP\0000

重新啟動環回擴充卡“ROOT\*MSLOOP\0000”。指令中的單引号訓示必須按字面解釋執行個體 ID。

devcon hwids=mouse

列出系統中滑鼠類裝置的所有硬體 ID。

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

将硬體 ID beep 賦予舊式蜂鳴裝置。

devcon stack =ports

列出裝置預期的驅動程式堆棧。包括裝置和類别高層/低層篩選程式,以及控制服務。

devcon status @pci\*

列出執行個體 ID 以“pci\”開頭的每一個存在裝置的狀态。

devcon status @ACPI\PNP0501\1

列出特定裝置執行個體的狀态,在本例中是一個進階配置和電源界面 (ACPI) - 枚舉的串行端口。

devcon status @root\rdp_mou\0000

列出 Microsoft 終端伺服器或終端服務滑鼠驅動程式的狀态。

devcon status *PNP05*

列出所有 COM 端口的狀态。

devcon update mydev.inf *pnp0501

更新與硬體 ID*pnp0501嚴格比對的所有裝置,讓它們使用 Mydev.inf 中與硬體 ID*pnp0501關聯的最好的驅動程式。

注意:即使系統上已經存在更好的比對項,這一更新也将強制所有裝置使用 Mydev.inf 中的驅動程式。如果在獲得簽名之前,您想要在開發過程中安裝驅動程式的新版本,則這是很有用的。此更新僅影響與指定的硬體 ID 比對的裝置,不會影響到其子裝置。如果指定的 .inf 檔案未經簽名,則 Windows 可能會顯示一個對話框,提示您确認是否應安裝此驅動程式。如果需要重新啟動計算機,将報告這一情況并且 DevCon 傳回一個級别 1 錯誤。如果指定 -r,在需要重新啟動計算機時就會自動重新開機。

< type="text/javascript">

DevCon 将傳回一個在腳本中使用的錯誤級别:

“0”訓示成功。

“1”訓示需要重新啟動。

“2”訓示失敗。

“3”訓示文法錯誤。

如果您指定 -r 并且需要重新啟動,則在處理完所有裝置後,将在無任何警告資訊的情況下重新啟動。
如果您指定 -m:\\computer并且指令對遠端計算機不起作用,将報告一個錯誤。
為便于互動,DevCon 允許在執行個體 ID 中使用通配符。不要根據一台計算機或一種作業系統版本去推測有關另一台計算機或另一種作業系統版本的執行個體 ID 格式的任何資訊。

;顯示卡

devcon.exe remove =Display

; 顯示卡

devcon.exe remove PCI\CC_03*

; 聲霸卡

devcon.exe remove PCI\CC_04*

; 多媒體 裝置

devcon.exe remove =Media

; 螢幕 裝置

devcon.exe remove =monitor

; 螢幕

devcon.exe remove DISPLAY\*

; 滑鼠

devcon.exe remove =Mouse

; USB 裝置

devcon.exe remove =USB

; USB HOST and SMBus

devcon.exe remove PCI\CC_0C*

; USB存儲卷

devcon.exe remove @USBSTOR\*

; USB裝置

devcon.exe remove @USB\*

; 人機接口裝置

devcon.exe remove @HID\*

; 列印 裝置

devcon.exe remove =Printer

; 網絡 裝置

devcon.exe remove =Net

; 網卡

devcon.exe remove PCI\CC_02*

; Modem 裝置

devcon.exe remove =Modem

; 端口

devcon.exe remove =ports

; 遊戲端口

devcon.exe remove PCI\CC_09*

; 磁盤驅動器

devcon.exe remove =DiskDrive

; 磁盤卷

devcon.exe remove =Volume

; 磁盤卷

devcon.exe remove @STORAGE\*

; CDROM 裝置

devcon.exe remove =CDROM

; IDE裝置

devcon.exe remove @ide\*

; IDE 通道

devcon.exe remove @PCIIDE\*

; SCSI 裝置

devcon.exe remove =SCSIAdapter

; 晶片組

devcon.exe remove PCI\CC_0604*

; CPU

devcon.exe remove ACPI\Processor

; 其它裝置

devcon.exe remove @acpi\*

devcon.exe remove @ACPI_HAL\*

devcon.exe remove @PCI\*

devcon.exe remove @ROOT\DMIO\*

devcon.exe remove @ROOT\FTDISK\*

devcon.exe remove @ROOT\RDP*

devcon.exe remove @ROOT\DISPLAY\*

devcon.exe remove @LPTENUM\*

附:

     windows XP機器上裝有兩塊PCI網卡,一個連接配接内網,一個連接配接外網,要實作安全切換(即上内網時禁用外網,上外網時禁用内網)。

  DevCon.exe是一個指令行下使用的裝置管理程式。它可以啟用、禁用、重新開機、更新、删除、查詢單個或一組裝置,它還提供與裝置驅動開發者有關的資訊,這些資訊在Windows裝置管理器中是得不到的。

  DevCon.exe可以用在windowsXp、2000、2003中,不适用于Windows95/98/ME。

  DevCon.exe不随Windows分發,可以在微軟網站上下載下傳并免費使用。

  微軟網站中有一篇專門闡述該程式的技術文章:

  http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q311272#top#top

  DevCon.exe下載下傳位址:

  http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe

  下載下傳下來的DevCon.exe是一個壓縮檔案,解壓縮後,有兩個檔案:

  I386\DevCon.exe  在32位的windows作業系統下使用

  Ia64\DevCon.exe  在64位的windows作業系統下使用

用法舉例:

1、檢視幫助

  DevCon.exe /?

  DevCon.exe help find

2、檢視所有PCI網卡的ID(注意:=号左面有1個空格,右邊沒有)

   devcon.exe find =net pci\*

3、禁用指定網卡(=号前後要有1個空格)

   devcon.exe disable = net pci\ID

注意:ID從第1個字元到&字元即可。比如:

devcon.exe disable = net PCI\VEN_13F0

4、啟用指定網卡

   devcon.exe enable = net pci\ID

注意:ID從第1個字元到&字元即可。比如:

devcon.exe  enable = net PCI\VEN_10EC

步驟提示:

1、先把内網網卡和外網網卡配置好(IP位址、子網路遮罩、DNS位址、網關位址等),

察看各網卡的PCI編号。方法(以windows XP為例):

(1)開始-->控制台-->管理工具-->計算機管理-->裝置管理器

(2)察看右邊窗格中的“網絡擴充卡”,輕按兩下各個網卡的名稱,檢視其資訊(如下圖),得到網卡ID。

2、再建兩個批處理檔案進行内外網切換(注意:要先禁用相應的網卡,再啟用相應的網卡,以保證安全)

假設内網網卡的ID是VEN_13F0,外網網卡的ID是VEN_10EC。

(1)切換到内網(LocalLan.bat)

devcon.exe disable = net PCI\VEN_10EC

devcon.exe  enable = net PCI\VEN_13F0

(2)切換到外網(Internet.bat)

devcon.exe disable = net PCI\VEN_13F0

devcon.exe  enable = net PCI\VEN_10EC

3、在桌面或工作列給這兩個批處理檔案建個快捷方式,即可。 

DevCon指令