
特定の IP アドレスを使用して、PowerShell でネットワーク インターフェイスを再起動しようとしています。次のステートメントを実行しました。
$iface = Get-NetIPAddress | Where-Object -FilterScript { $_.IPAddress -like "10.212*" } | format-wide -Property InterfaceAlias
フォーマット全体のインターフェースを取得しましたが、以下の変数を使用すると正しく動作しません。
Restart-NetAdapter -Name $iface
変数を使用するのは正しい方法でしょうか?
PowerShell バージョン 5 を使用します。
答え1
書式設定コマンドレットは、人間が読みやすい文字列を返しますが、実際のオブジェクトではなくなります。特に、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 エイリアスです。