系統平台: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