我正在尝试使用具有特定 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 别名,您可以根据需要使用它。