使用devcon禁用啟用網卡


系統平台:win2003 

情況描述: 機器上裝有兩塊網卡,8136和8139,網卡A使用靜態IP,連接內部辦公網,網卡B使用DHCP,連接互聯網。切換兩個網絡時,需要先禁用一個網卡,啟用另一個網卡。來回點鼠標太麻煩,所以想到用命令行。

操作目的:便捷切換內外網

操作方法:

嘗試過的方法

  (1)netsh interface,該命令下有enable和disable,但對LAN端口不起作用。

  (2)Power Shell,微軟推出的增強命令行工具,類似bash,支持腳本,功能強大。個人認為肯定可以。但我畢竟是外行,學起來頭疼。

  (3)使用devcon。需要注意的是搞清楚硬件ID(hardware ID)和范例ID(Instance ID)的區別,同時使用必須的轉義字符。

   正確方法是:

   Step1 運行devcon hwids pci\* > pci_device.txt

   該命令將所有PCI設備的全部ID(范例ID、硬件ID、兼容ID等等)輸出到一個文本文件中,這樣可以直接粘貼那一長串范例ID,不用手打了。

   Step2 編輯pci_device.txt 找到相關設備。下面是我機器上該部分的內容:

PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\3&61AAA01&0&50
    Name: Realtek RTL8139 Family PCI Fast Ethernet NIC #2
    Hardware ID's:(硬件ID)
        PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10
        PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC
        PCI\VEN_10EC&DEV_8139&CC_020000
        PCI\VEN_10EC&DEV_8139&CC_0200
    Compatible ID's:(兼容ID)
        PCI\VEN_10EC&DEV_8139&REV_10
        PCI\VEN_10EC&DEV_8139
        PCI\VEN_10EC&CC_020000
        PCI\VEN_10EC&CC_0200
        PCI\VEN_10EC
        PCI\CC_020000
        PCI\CC_0200

最上面最長的那一行『PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\3&61AAA01&0&50』就是唯一標識該網卡的 范例ID

    Step3 禁用網卡,運行下列命令:

   devcon /r disable "@PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\3&61AAA01&0&50" 

或者簡單點,干脆禁用所有帶DEV_8139字符的設備:devcon disable *DEV_8139*

注意

所有范例ID前必須加@字符;將disable改為enable就是啟用;由於設備范例 ID 包含 & 字符 (&),因此它們應包含在引號中;可以包含 /r 參數,該參數會在必要時重新啟動系統以使設置生效。如果有多個設備,每個設備實例 ID 與其他設備實例 ID 之間用一個空格分隔。比如:

devcon /r disable "@USB\ROOT_HUB\4&2A40B465&0" "@USB\ROOT_HUB\4&7EFA360&0" "@USB\VID_045E&PID_0039\5&29F428A4&0&2"

詳情參閱:http://technet.microsoft.com/zh-cn/library/ff544746

 

 

 以下是我自己編寫的一個批處理文本

__________________________________________________________________________

@echo off& mode con cols=80 lines=20& color 3f 

echo ●●●●●●●●●●●●

echo ●  1:啟用撥號網卡 禁用內網網卡,撥號

echo ●  2:斷開ADSL網絡 

echo ●  3:啟用內網網卡 禁用撥號,連內網

echo ●  4:15秒后關閉電腦

echo ●  5:退出

echo ●●輸入數字后,回車 ●●

 

set /p answer=

if %answer%==1 goto 1

if %answer%==2 goto 2

if %answer%==3 goto 3

if %answer%==4 goto 4

if %answer%==5 goto 5

 

:1 

echo 啟用撥號網卡,並禁用局域網網卡,請稍等……

devcon disable = "@PCI\VEN_10EC&DEV_8136&SUBSYS_301A17AA&REV_01"

devcon enable = "@PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10"

echo 正在撥號……

Rasdial "寬帶連接" 063100492203 776143

echo -----------------------------------

echo 設置完成,按任意鍵打開聯網直報平台!

pause 

start "" "http://zb.stats-sd.gov.cn/dr/queryLoginInfo.do"

goto end

 

:2

Rasdial "寬帶連接" /disconnect

goto end

  

:3

echo 啟用局域網網卡,並禁用撥號網卡,請稍等……

devcon enable = "@PCI\VEN_10EC&DEV_8136&SUBSYS_301A17AA&REV_01"

devcon disable = "@PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10"

echo 正在自動獲取IP……

netsh interface ip set address name="板載網卡" dhcp

netsh interface ip set dns name="板載網卡" dhcp

echo --------------------------------

echo 設置完成!按任意鍵打開sina mail!

pause 

start "" "http://mail.sina.com"

goto end

 

:4

shutdown -s -t 15

goto end

 

:5

goto end

 

:adsl

Rasdial "寬帶連接" 063100492203 776143

echo 撥號成功,按任意鍵打開聯網直報平台!

pause

start "" "http://zb.stats-sd.gov.cn/dr/queryLoginInfo.do"

goto end

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM