生產環境 Server 2003 需要重置網卡(如更換 IP、驅動更新、網卡故障恢復)但不允許重啟伺服器。提供兩種命令列方案:netsh(內建、無相依)與 devcon(需 Windows Driver Kit 工具),均可實現網卡停用/啟用自動化。
建立批次檔 RestartLan.bat:
@echo off
rem 適用 Windows Server 2003 / XP
rem 若 XP 缺少 ifmon.dll,可從 Server 2003 複製至 System32
rem 停用網卡(介面名稱需與系統一致,中文預設為「區域連線」或「本地連線」)
netsh interface set interface name="本地連線" admin=DISABLED
rem 稍作等待確保釋放資源
ping -n 3 127.0.0.1 >nul
rem 啟用網卡
netsh interface set interface name="本地連線" admin=ENABLED
echo 網卡已重置完成。
關鍵點: name= 參數必須完全符合「網路連線」資料夾中的介面名稱(含空白),可用 netsh interface show interface 查詢確切名稱。
準備: 從 Windows Driver Kit (WDK) 取得 devcon.exe (32/64 位對應) 放入 %PATH% 目錄(如 C:\Windows\System32)。
建立互動式批次檔 ToggleNIC.bat:
@echo off
echo 請輸入選擇:(N=停用網卡, Y=啟用網卡)
set /p SELECT=
if /i "%SELECT%"=="Y" set SELECT=ENABLE & goto :DO
if /i "%SELECT%"=="N" set SELECT=DISABLE
:DO
for /f "tokens=2 delims=&" %%i in ('devcon find pci* ^| findstr "Fast Ethernet"') do devcon %SELECT% *%%i* >NUL
echo 網卡已 %SELECT% 完成。
pause
原理: devcon find pci* 列舉所有 PCI 設備,findstr "Fast Ethernet" 過濾網卡描述,devcon ENABLE/DISABLE *硬體ID* 執行啟用/停用。可依實際硬體描述調整關鍵字(如 "Gigabit", "Intel", "Broadcom")。
RestartLan.bat,設定每日/每週維護時段。psexec \\ServerIP -u Admin -p Pass -h -d C:\Scripts\RestartLan.bat (Sysinternals PsExec)。掌握 netsh 與 devcon 兩把刷子,實現 Server 2003 網卡熱重置,保障服務連續性與維運彈性。