本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Set-NetAdapterAdvancedProperty」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータに接続されたネットワークアダプターの詳細設定の値を変更する「Set-NetAdapterAdvancedProperty」コマンドレットです。
サーバなどに使用される高機能なネットワークアダプターは、ハードウェアに依存する機能をはじめとする多くのチューニング可能な詳細設定を持つと本連載第60回でも紹介しました。「Set-NetAdapterAdvancedProperty」は、この詳細設定値を設定するためのコマンドレットです。
設定値はGUIからでも変更可能ですが、パラメーターチューニングでの設定ミスを防ぐ意味でもスクリプトによる自動設定は有用であり、本コマンドレットは意味があると考えます。
オプション | 意味 |
---|---|
-Name | 設定を変更したいネットワークアダプター名を指定。省略可能 |
-DisplayName | 設定を変更したい詳細設定の表示名を指定。省略可能 |
-DisplayValue | 設定値を指定。省略可能 |
詳細設定を変更するSet-NetAdapterAdvancedPropertyコマンドレットですが、必須パラメーターが存在しないため、オプションを指定せずに実行したり、設定値(DisplayValue)のみを指定して実行したりすることが可能です。
本コマンドレットをオプションを指定せずに実行した場合は、エラー表示のみで終了してしまいます(画面1)。
Set-NetAdapterAdvancedProperty
また、設定値(DisplayValue)のみを指定して実行した場合は、全ての詳細設定値での設定が試みられ、指定した設定値が設定可能な詳細設定値が存在した場合には全て適用されてしまうので注意が必要です(画面2)。
Set-NetAdapterAdvancedProperty -DisplayValue <設定値>
なお、詳細設定値を初期値に戻したい場合には、「Reset-NetAdapterAdvancedProperty」コマンドレットを実行します(画面3)。「-DisplayName」には詳細設定の表示名を指定しますが、ワイルドカード(*)も指定可能です。
Reset-NetAdapterAdvancedProperty -DisplayName <詳細設定の表示名>
イーサネットのフレームサイズを「9018Bytes」に設定する、いわゆる「ジャンボフレーム」の設定は「netsh」コマンドによる設定方法が知られていますが、ネットワークアダプターの詳細設定でフレームサイズの設定値が存在する場合はSet-NetAdapterAdvancedPropertyコマンドレットでも設定可能です。
まずは、本連載第60回で紹介した「Get-NetAdapterAdvancedProperty」コマンドレットでジャンボフレームの設定値が存在するかどうかを確認します。
今回設定を行うネットワークアダプターには「Jumbo Packet」という表示名の詳細設定値を持ち、「Disabled」「4088 Bytes」「9014 Bytes」の3つが設定可能であることが分かっています。今回設定を行ったネットワークアダプターは設定値上FCS(フレームチェックシーケンス)を含まない値を指定するため、9018Bytesのフレームサイズ(MTUサイズ9000Bytes)とする場合には、「9014 Bytes」を指定します(画面4)。
Set-NetAdapterAdvancedProperty -Name <ネットワークアダプター名> -DisplayName <詳細設定の表示名> -DisplayValues <設定値>
上記実行例では、Set-NetAdapterAdvancedPropertyコマンドレット実行前後にnetshコマンドで当該ネットワークアダプターのMTUサイズを確認していますが、コマンドレット実行前には「1500 Bytes」だったMTUサイズが「9000 Bytes」に変更されていることが分かります。
netshコマンドで表示されるMTUサイズは、イーサネットフレームのヘッダ(14Bytes)やFCS(4Bytes)を除いた値で表示されるため、今回のネットワークアダプターの仕様を加味してフレームサイズが「9018 Bytes」に変更されたことが確認できます。
「Large Send Offload V2(IPv4)」と「Large Send Offload V2(IPv6)」の両方といった、共通の文字列を持つ複数の詳細設定値を全て同じ値に変更したいという場合には、ワイルドカード(*)を用いることで1回のコマンドレット実行で完了させることができます。コマンドレットのオプションは前項のコマンドと同じものになりますが、「-DisplayName」でワイルドカードを使用しています(-DisplayName Large Send Offload*)(画面5)。
コマンドレット実行前後のGet-NetAdapterAdvancedPropertyコマンドレットの実行結果から、ワイルドカードで 設定変更できていることが確認できます。
Microsoft MVP for Cloud and Datacenter Management(2012-2023)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.