
我正在嘗試使用特定 IP 位址透過 powershell 重新啟動網路介面。我做了以下聲明:
$iface = Get-NetIPAddress | Where-Object -FilterScript { $_.IPAddress -like "10.212*" } | format-wide -Property InterfaceAlias
獲得了格式範圍的接口,但使用下面的變數無法正常工作。
Restart-NetAdapter -Name $iface
這是使用變數的正確方法嗎?
使用 powershell 版本 5。
答案1
格式化 cmdlet 傳回字串,這些字串非常適合人們閱讀,但不再是實際的物件。特別是,Format-Wide
添加了幾個可能令人困惑的換行符Restart-NetAdapter
。
產生的物件Get-NetIPAddress
具有一個InterfaceIndex
屬性,我們可以使用該屬性從 取得網路適配器物件Get-NetAdapter
。然後適配器物件可以透過管道傳輸到Restart-NetAdapter
.
Get-NetAdapter -InterfaceIndex (Get-NetIPAddress | ? {$_.IPAddress -like '10.212.*'}).InterfaceIndex | Restart-NetAdapter
Where-Object
另請注意into的別名?
- 這是一個方便的標準 PowerShell 別名,您可以根據需要使用它。