2013-07-04 82 views
0

我正嘗試構建一個Windows批處理腳本,該腳本基於網關IP捕獲網絡接口的名稱,然後重命名接口。我無法捕獲接口名稱,這是一個隨機字符串。在Windows中,我可以通過運行一個管道netsh命令獲取所需的信息:PowerShell/Windows腳本:獲取包含指定網關IP地址的接口名稱IP

C:\Users\Administrator>netsh interface ipv4 dump | findstr "nexthop=2.2.2.1" 

add route prefix=0.0.0.0/0 interface="Management" nexthop=2.2.2.1 publish=yes 

如何可以解析爲接口的字符串,如顯示在輸出?

我也嘗試在PowerShell中使用以下命令的組合進行實驗,但沒有多少運氣。我將不勝感激任何援助,或向正確的方向推動。

get-wmiObject -Query "select NetConnectionID from Win32_NetworkAdapter" 
get-wmiObject -Query "select DefaultIPgateway from Win32_NetworkAdapterConfiguration" 

編輯:我已經開始與wmic實驗。鑑於DefaultIPGateway是nicConfig的一部分,並且NetConnectionID是nic的一部分,無論如何,我可以得到這個工作嗎?

wmic nic where "DefaultIPgateway=2.2.2.1" get NetConnectionID 

回答

0

也許你可以使用InterfaceIndex連結這個對象:

get-wmiObject -Query "select InterfaceIndex from Win32_NetworkAdapter" 
get-wmiObject -Query "select InterfaceIndex from Win32_NetworkAdapterConfiguration" 

InterfaceIndex 數據類型:SINT32 訪問類型:讀/寫這個路由的下一跳 IP地址。此屬性中的值與Win32_NetworkAdapter和Win32_NetworkAdapterConfiguration實例中InterfaceIndex屬性中的值相同,該值表示路由下一跳的網絡接口。 對於綁定到使用廣播介質實現的接口的路由,此字段的值是該接口上的代理IP地址。從 描述:http://msdn.microsoft.com/en-us/library/windows/desktop/aa394162(v=vs.85).aspx

像這樣

$index = get-wmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { ($_.DefaultIPGateway -eq "2.2.2.1") } | Select-object InterfaceIndex 
get-wmiObject -Class Win32_NetworkAdapter | Where-Object { ($_.InterfaceIndex -eq $index.InterfaceIndex) } | Select NetConnectionId 
+0

正是我需要的。謝謝! – Matt