2012-12-13 68 views

回答

4

你需要知道其中多個網關的使用?如果是這樣。從我記得的情況來看,當多個網關可用時,將使用具有最低指標(基於鏈路速度的「成本」)的網關。爲了得到這個,運行以下命令:

Get-WmiObject -Class Win32_IP4RouteTable | 
    where { $_.destination -eq '0.0.0.0' -and $_.mask -eq '0.0.0.0'} | 
    Sort-Object metric1 | select nexthop, metric1, interfaceindex 

如果有開銷相同的多個默認網關,我認爲這是使用網絡適配器的綁定順序決定。我知道得到這個的唯一方法是使用GUI和註冊表。要包含綁定順序,您可以保存腳本輸出,從Win32_networkadapter配置中獲取settingsid(使用interfaceindex標識),然後讀取註冊表項HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Tcpip \ Linkage \ Bind。該鍵列出了它看起來的綁定順序,並且您從win32_networkadapter配置中獲得的settingsid是它們標識設備的GUID。然後使用它們在Bind reg.key中的順序對相同度量的網關進行排序,然後獲得答案。

解釋:Technet Social - NIC adapter binding

1

使用WMI查詢來提取您要查找的數據。下面是一個非常簡單的例子,可以爲第一行變量中指定的設備提供默認網關。這將向設備查詢網絡適配器並在控制檯窗口中顯示查找到的信息(適用於每個適配器) - 拉取適配器索引,適配器描述和默認網關

不應該花費太多時間來擴展這個以處理多個設備,或基於通過輸入文件饋送的列表的處理。

 
$computer = $env:COMPUTERNAME 

Get-WmiObject win32_networkAdapterConfiguration -ComputerName $computer | 
Select index,description,defaultipgateway | 
Format-Table -AutoSize 
6

如果你在PowerShell的V3,就可以使用Get-NetIPConfiguration例如爲:

Get-NetIPConfiguration | Foreach IPv4DefaultGateway 
+0

網/ IP的cmdlet可從Windows Server 2012和Windows 8起。 – argonym

3

我發現它的下面列出的所有活動網關,糾正我,如果我錯了

| DefaultIPGateway(GET-WmiObject可以Win32_NetworkAdapterConfiguration的{$ _ IPEnabled。}?)。

+0

這是正確的,如果這是你所要求的。問題不清楚。 :) –

1

我認爲這將是更多的跨平臺:

Get-NetRoute | 
    where {$_.DestinationPrefix -eq '0.0.0.0/0'} | 
    select { $_.NextHop }