PowerShell で特定のネットワーク インターフェイスを再起動する方法

PowerShell で特定のネットワーク インターフェイスを再起動する方法

特定の 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あります。その後、アダプタ オブジェクトを にパイプすることができます。InterfaceIndexGet-NetAdapterRestart-NetAdapter

Get-NetAdapter -InterfaceIndex (Get-NetIPAddress | ? {$_.IPAddress -like '10.212.*'}).InterfaceIndex | Restart-NetAdapter

Where-Objectまた、 intoのエイリアスにも注意してください?。これは、必要に応じて使用できる便利な標準 PowerShell エイリアスです。

関連情報