如何在 Windows XP 和 Windows 2000 中變更網路介面卡的連結順序

文章翻譯 文章翻譯
文章編號: 894564 - 檢視此文章適用的產品。
重要 本文包含有關修改登錄的相關資訊。修改登錄之前,請務必將它備份起來,並瞭解如何在發生問題時還原登錄。如需有關如何備份、還原和修改登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
256986 Microsoft Windows 登錄說明
全部展開 | 全部摺疊

在此頁中

結論

您可能會有數個連接至不同網路的網路連線。或者,可能有使用網路連線清單內第一個連線的程式。您可能想要確定特定網路連線是列在清單的最前面。

當您安裝 Microsoft Windows XP 或 Windows 2000 時,連線順序會因網路介面卡的列舉方式而有所不同。

您可以使用本文所述的方法來重新排列介面卡與連結,以及變更網路介面卡上的介面公制。本文將告訴您,如何執行下列工作:
  • 變更網路介面卡的連結順序
  • 變更網路介面卡上的介面公制
  • 變更 InterfaceMetric 登錄值以建立固定的公制
  • 使用指令碼設定介面公制
  • 在自動安裝期間影響 Windows XP 中的連結順序
  • 變更網路提供者順序

簡介

本文將告訴您,如何在 Microsoft Windows XP 和 Windows 2000 中修改網路介面卡及連結順序,還會說明如何變更網路介面卡上的介面公制。

其他相關資訊

下列是您可能應該到網路介面卡及連結的清單中變更連線順序的情況。這些也是您可能需要變更網路介面卡介面公制的情況。

注意 變更網路介面卡上的介面公制也會產生類似的結果:
  • Windows Sockets gethostbyname API 是用來擷取指派給電腦的 IP 位址。gethostbyname API 會傳回指派給安裝在多重主目錄電腦上所有網路介面卡的 IP 位址清單。如果查詢中傳送的主機名稱為 NULL 或電腦的本機主機名稱,便會傳回此 IP 位址清單。
  • 某些已安裝的協力廠商裝置驅動程式會要求由 gethostbyname API 所傳回的 IP 位址必須依特定順序列出。
  • 當 Windows Sockets 應用程式呼叫 gethostbyname API,將本機主機名稱解析成多重主目錄電腦上的 IP 位址清單時,其傳回清單所依照的順序可能與 [控制台] 顯示的連結順序不相符。或者,也可能會以不符合指派給網路介面卡的 IP 位址順序的順序傳回清單。
  • 您正在部署具備無線網路介面卡及有線網路連線的電腦。當電腦連接到有線網路時,也會啟用無線連線。在某些程式中,這兩種連線都可能引起問題,因此群組原則無法如預期一般運作。
請使用本文的方法來解決或處理這些問題。不過,您要考慮到下列事項:
  • 並沒有在安裝網路介面卡期間自動變更連線順序的方法。
  • 您不能利用指令碼,以程式設計的方式變更執行中電腦的網路介面卡連結順序。
  • 您不能使用「網域命名系統」(DNS) 來變更連線順序或連結順序,因為 DNS 不會遵守排序。
注意 本文會列出執行 Windows XP 和 Windows XP Service Pack 2 之電腦的連結速度及自動公制。

如何變更網路介面卡的連結順序

  1. 按一下 [開始],再按一下 [執行],輸入 ncpa.cpl,然後按一下 [確定]

    您可以在 [網路連線] 視窗的 [區域網路或高速網際網路] 區段中看到可用的連線。
  2. [進階] 功能表上,按一下 [進階設定],然後按一下 [介面卡及連結] 索引標籤。
  3. [連線] 區域中,選取要移到清單中較高位置的連線。請使用箭頭按鈕來移動連線。

    注意
    • [介面卡及連結] 索引標籤會依網路服務存取連線的順序列出連線。這些連線順序可以反映出 TCP/IP 或下一個可用通訊協定連結至網路介面卡的順序。遠端存取連線的連結會套用至所有遠端存取連線。
    • [提供者順序] 索引標籤會列出這台電腦的網路提供者。您可以使用箭頭按鈕來變更存取這些提供者的順序。您可以安排電腦存取網路資訊的順序。提供者及其他連線是依提供者及連線列出的順序被存取。

如何變更網路介面卡上的介面公制

警告 如果您使用「登錄編輯程式」或其他方法不當地修改登錄,可能會發生嚴重問題。這些問題可能會需要您重新安裝作業系統才能解決。Microsoft 不保證可以解決這些問題。請自行承擔修改登錄的一切風險。 如果您是使用 TCP/IP 做為傳輸通訊協定,則可以變更網路介面卡上的介面公制,因為 TCP/IP 會使用介面公制來決定順序。您可以變更介面公制,讓所有的 TCP/IP 連線優先使用某個網路介面卡。網路連線的介面公制 (IPConnectionMetric) 會在 IP 路由表中顯示使用路由的成本。路由是從介面設定所衍生。成本會在 IP 路由表中成為那些路由的 [公制] 欄位值。如果 IP 路由表中有多個相近的、通往目的端路徑的路由,則會使用公制最低的路由。有效值的範圍為 1 到 9999。

如果要檢視 IP 路由表,請在命令提示字元輸入 route print。 如需有關在 Windows XP 中,針對 IP 路由使用自動公制功能的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
299540 網際網路通訊協定路由自動公制功能之說明
如果要變更介面公制,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],輸入 ncpa.cpl,然後按一下 [確定]

    [網路連線] 視窗的 [區域網路或高速網際網路] 區段會顯示可用的連線。
  2. 用滑鼠右鍵按一下您想要變更的網路介面卡,按一下 [內容],然後按一下 [一般] 索引標籤。
  3. [這個連線使用下列項目] 方塊中,選取 [Internet Protocol (TCP/IP)]。接著,按一下 [內容]
  4. [Internet Protocol (TCP/IP) 內容] 對話方塊中,按一下 [一般] 索引標籤,然後按一下 [進階]
  5. [IP 設定] 索引標籤上,按一下以清除 [自動公制] 核取方塊。接著,在 [介面公制] 方塊中輸入值。

    注意 在 Windows 2000 中,將 [介面公制] 方塊的值,從預設值 1 變更為不同的值。[自動公制] 核取方塊就會不見。

如何變更 InterfaceMetric 登錄值以建立固定的公制

警告 如果您使用「登錄編輯程式」或其他方法不當地修改登錄,可能會發生嚴重問題。這些問題可能會需要您重新安裝作業系統才能解決。Microsoft 不保證可以解決這些問題。請自行承擔修改登錄的一切風險。 在 Windows XP 或 Windows 2000 中,不需使用路由命令,即可建立固定的公制。您可以變更下列登錄機碼然後重新啟動電腦,建立固定公制。建立固定的公制之後,您可以將特定網路介面卡設定為最低公制,以便優先使用該網路介面卡。

注意 每個網路介面卡各自具有不同的 InterfaceMetric 登錄值。

InterfaceMetric 登錄值位於下列登錄機碼中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<GUID>
請依下列方式設定登錄值:
名稱:InterfaceMetric
類型:REG_DWORD
數值資料:A number from 1 to 9999

可決定 NetCfgInstanceId 的值

在此登錄機碼中,GUID 是網路介面卡的 NetCfgInstanceId 值。如果要確定第一個網路介面卡的 NetCfgInstanceId 值,請檢視下列登錄子機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0001\NetCfgInstanceId
如果要確定第二個網路介面卡的 NetCfgInstanceId 值,請檢視下列登錄子機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0002\NetCfgInstanceId
其他所有網路介面卡的值則依上述登錄機碼中、倒數第二個資料夾所示的編號循序類推。或者,如果要檢視所有已安裝的網路介面卡,請找出並展開下列登錄子機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
查看 DriverDesc 的值,即可識別網路介面卡。

在 Windows 2000 中,InterfaceMetric 登錄值無法決定優先使用的網路介面卡。優先選取的網路介面卡還必須視介面的初始化順序而定。各次啟動過程中的介面初始化順序通常是一樣的。不過,還是難保每次啟動的介面初始化順序都會相同。

在 Windows XP 和 Windows 2000 中,請將慣用的網路介面卡的公制設定為比其他介面卡的公制更低。設定較低的公制,就代表該網路介面卡具有較高的優先順序。公制在決定網路介面卡順序方面佔有優先權。您可以在 TCP/IP 內容中設定公制。

下列資訊指示您必須用來設定慣用網路介面卡公制的設定:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0001\
名稱:DriverDesc
數值資料:3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible)

名稱:NetCfgInstanceId
類型:REG_SZ
數值資料:{93396AAE-BCC4-49B4-BCDA-27CC97E9D97F}
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{93396AAE-BCC4-49B4-BCDA-27CC97E9D97F}\
名稱:InterfaceMetric
類型:REG_DWORD

範例路由公制和連結速度

Windows XP 會自動根據連結速度來設定相對的路由公制,如下所示。
摺疊此表格展開此表格
公制說明
10大於每秒 200 百萬位元 (Mbps) 的連線速度公制
20介於 20 Mbps 和 200 Mbps 之間的連線速度公制
30介於 4 Mbps 和 20 Mbps 之間的連線速度公制
40介於每秒 500 千位元 (Kbps) 和 4 Mbps 之間的連線速度公制
50小於或等於 500 Kbps 的連線速度公制
如需詳細資訊以及包含 Windows XP Service Pack 2 電腦的連結速度與公制的更新表,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
299540 網際網路通訊協定路由自動公制功能之說明
Windows 2000 不會自動設定相對路由公制。請使用下列 netsh 命令來確認每個使用中介面的目前設定。如果要執行這項操作,請在命令提示字元輸入下列命令:
netsh interface ip show address
這個命令會產生類似下列的輸出:
介面 "區域連線" 的設定    已啟用 DHCP:是    介面公制: 0

介面 "無線連線" 的設定    已啟用 DHCP:是    介面公制:35
注意 輸出中顯示介面公制值為 0,即表示是使用自動公制。

如需有關如何修改網路介面卡 IP 連線公制的詳細資訊,請造訪下列 Microsoft 網站:
http://www.microsoft.com/technet/scriptcenter/scripts/network/client/modify/nwmovb25.mspx
如需有關 Microsoft Windows Management Instrumentation (WMI) 網路工作的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn2.microsoft.com/en-us/library/aa394595.aspx
如需有關 Win32_NetworkAdapterConfiguration WMI 類別的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn2.microsoft.com/en-us/library/aa394217.aspx

如何使用指令碼設定介面公制

Microsoft 僅提供示範性的程式設計範例,不做任何明示或默示的保證。其中包括 (但不限) 其適售性與適合某特定用途之默示擔保。本文假設您對於示範所用的程式設計語言,以及用來建立和偵錯程序的工具相當熟悉。Microsoft 技術支援工程師可以協助說明特定程序的功能,但無法修改這些範例以提供附加功能或建構程序來滿足您的特定需求。
下列指令碼會使用 Win32_NetworkAdapterConfiguration WMI 類別。這個類別代表網路介面卡的屬性與工作方式。這個類別會使用 SetIPConnectionMetric 方法,來為無線網路連線設定與此 IP 網路介面卡相關的路由公制。這個方法是 Windows XP 中的新方法。

如果要使用指令碼,請將下列程式碼複製到文字檔,再將檔案另存成 Set_Wireless_NIC_IPMetric.vbs,然後執行指令碼。
==== snip - Start of script code Set_Wireless_NIC_IPMetric.vbs script ====
On Error Resume Next

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

regValueDataMetric = "35"

Set colItems = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapter Where NetConnectionID = 'Wireless Network Connection'")

For Each objItem in colItems
strMACAddress = objItem.MACAddress
Wscript.Echo "MACAddress: " & strMACAddress
Next

Set colNetCard = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

For Each objNetCard in colNetCard
If objNetCard.MACAddress = strMACAddress Then
For Each strIPAddress in objNetCard.IPAddress
Wscript.Echo "Description: " & objNetCard.Description
Wscript.Echo "IP Address: " & strIPAddress
Wscript.Echo "IPConnectionMetric: " & objNetCard.IPConnectionMetric
objNetCard.SetIPConnectionMetric(regValueDataMetric)
Next
End If
Next
==== snip - End of VBS script ====

如何在自動安裝期間影響 Windows XP 中的連結順序

您無法在自動安裝期間變更連線順序,也沒有程式設計的方法可以針對執行中的電腦變更其網路介面卡的連結順序。當您想要利用程式設計的方式,將某個區域連線移到另一個區域連線的前頭時,無法進行這項變更確實帶來難題。不過,至今尚無文件記載可以用來變更介面卡順序的程式設計方法。

sysprep 命令可以移除任何網路設定,並且會在您執行命令時重新設定網路設定。因為 sysprep 命令會把資料寫入許多登錄設定及檔案,所以使用 sysprep 命令來強制變更連結順序,不大可行。

不過,如果您想要在自動安裝期間影響連結順序,倒是可以嘗試在 Sysprep.inf 檔案中指定一個網路介面卡。如果您指定了區域網路 (LAN) 介面卡,並在安裝後將偵測其他介面卡的工作交由「隨插即用」功能執行,Windows 就會將 LAN 介面卡放在連結清單的最前面。 如需有關如何停用網路連結的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
263241 How to Disable Network Bindings Using the [Netbindings] Section

Microsoft Windows Driver Development Kit 中的 Bindview 範例

Microsoft Windows Driver Development Kit (DDK) 中的 Bindview 範例會示範如何使用 INetCfg API 來連結與取消連結網路介面卡。這些 API 記載於 Windows DDK。Bindview 範例位於下列位置:
\WINDDK\build\Src\Network\Config\Bindview
雖然連結與取消連結網路介面卡並不難,但是移動網路介面卡連結卻是個複雜的工作。並沒有可以用來移動網路介面卡連結的 API。不過,您可以使用 INetCfg API 撰寫獨立的應用程式來移動網路介面卡連結。如果要這麼做,您必須列舉安裝在介面卡上所有元件的所有連結。接著,必須移動每個連結的連結路徑,讓每個連結緊接出現於另一個連結之前。

如需有關 INetCfg 介面的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/NetXP_r/hh/NetXP_r/ntfrf_82fdd57e-4ee5-4ec5-93f3-b661bf2a7093.xml.asp
您可以列舉所有的介面卡,並且可以列舉連結到每個網路介面卡的任何項目。最後,您還可以使用 INetCfgComponentBindings API 來取消元件的連結。

注意 舊版的 DDK 如 Microsoft Windows 2000 DDK 和 Windows XP Gold DDK 中包含示範這些 API 的 SNetCfg 範例。

變更網路提供者順序

您也可以變更網路提供者順序,以便優先選擇特定的重新導向程式。這些重新導向程式包括伺服器訊息區 (SMB,Server Message Block)、Web Distributed Authoring and Versioning (WebDAV) 以及 Novell NetWare Client for Windows。下列是和重新導向程式有關的登錄子機碼。
摺疊此表格展開此表格
重新導向程式登錄子機碼
SMBLanmanWorkstation
WebDAVWebClient
Novell NetWare Client for WindowsNetwareRedirector/NetwareWorkstation
您可以在 [控制台] 中變更網路提供者順序。如需詳細資訊,請參閱<如何變更網路介面卡的連結順序>一節。或者,也可以修改登錄來變更網路提供者順序。如果要修改登錄以變更網路提供者順序,請變更下列登錄機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order
下列是可用來變更提供者順序的設定:
名稱:ProviderOrder
類型:REG_SZ
數值資料:LanmanWorkstation,WebClient,RDPNP

?考

如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
263241 How to Disable Network Bindings Using the [Netbindings] Section
299540 網際網路通訊協定路由自動公制功能之說明
311272 The DevCon command-line utility functions as an alternative to Device Manager
260937 Some WMI Properties and Methods Are Not Published in the Directory Service Schema
827536 An IP multicast may not be sent correctly from Windows 2000, Windows XP, or Windows Server 2003
171320 How to Change the IP Address List Order Returned
164023 Applications Calling GetHostByName() for the Local Host Name May See the List of IP Addresses In an Order that Does Not Match the Binding Order.
229762 Specifying Multiple Network Adapters in Unattended Setup
268781 Description of the Netset.exe tool from the Windows 2000 Resource Kit
242468 如何使用 Netsh.exe 工具和命令行切換指令
827536 An IP multicast may not be sent correctly from Windows 2000, Windows XP, or Windows Server 2003
271369 Statically-Entered TCP/IP Settings Are Not Present After Sysprep
216937 System Preparation Tool and Answer File Usage
如需有關 Microsoft Windows Server 2003 TCP/IP 實作的詳細資訊,請造訪下列 Microsoft 網站:
http://technet2.microsoft.com/WindowsServer/en/library/823ca085-8b46-4870-a83e-8032637a87c81033.mspx?mfr=true
如需有關網路設定介面的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/NetXP_r/hh/NetXP_r/ntfrf_576cf882-8f3b-4ce6-a8d8-e02e9d5e6783.xml.asp
如需有關 INetCfg 介面的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/NetXP_r/hh/NetXP_r/ntfrf_82fdd57e-4ee5-4ec5-93f3-b661bf2a7093.xml.asp
如需有關 INetCfgComponentBindings 介面的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/NetXP_r/hh/NetXP_r/ntfrf_00843591-a306-4d7e-aafa-7221d4871458.xml.asp
如需有關 INetCfgComponentBindings::MoveBefore 方法的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/NetXP_r/hh/NetXP_r/ntfrf_71d3ec90-572f-4a0b-b02b-70410712e640.xml.asp

屬性

文章編號: 894564 - 上次校閱: 2007年2月14日 - 版次: 4.2
這篇文章中的資訊適用於:
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
關鍵字:?
kbhowto kbinfo KB894564
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com