A common SysAdmin task involves managing a PowerShell IP configuration. Typically, one performs this task using the GUI, which is OK. But PowerShell can do the same job and more, which you can put into scripting.
このチュートリアルでは、PowerShellのいくつかのネットワーク管理コマンドレットを使用して、WindowsホストのIPアドレス、ゲートウェイ、およびDNS設定を管理する方法を学びます。
続けて読み、PowerShell IP構成コマンドでネットワークトラブルシューティングスキルを向上させましょう!
前提条件
このチュートリアルには実演が含まれています。操作するには、モダンなWindows OS上でPowerShellに管理者アクセス権が必要です。このチュートリアルではWindows Server 2022を使用していますが、コマンドはWindows 10バージョン以降でも機能します。
ネットワークアダプターのプロパティの取得(Get-NetAdapter
)
ホストのIPアドレスをトラブルシューティングまたは収集する場合、ping
、ipconfig
、sconfig
などの従来のツールを使用できますが、PowerShellコマンドレットを使用すると、このプロセスを自動化できます。
PowerShellを開いて、以下のGet-NetAdapter
コマンドレットを実行して、ネットワークアダプターとそのプロパティのリスト(ホストのInterfaceAliasおよびInterfaceIndexなど)を取得します。

アダプターにはまだIPアドレスオブジェクトがないことに注意してください。使用するアダプターを知っている必要があります。このチュートリアルでは、Ethernetのアダプターエイリアスを使用しています。
アドレスの取得 PowerShell IP構成(Get-NetIPAddress
)
以前は、単一のコマンドですべてのネットワークインターフェイスをリストアップしました。ただし、Get-NetIPAddress
コマンドレットを使用して、プロパティ値とホストの現在のIPアドレスをリストアップすることもできます。
以下のコマンドレット(パラメーターなしで実行)を実行して、各アダプタのアドレスとPowerShell IP設定を表示します。

次に、次のコマンドを実行して、出力を(Select-Object)を使用してEthernetのInterfaceAlias
とIPAddress
に絞ります。

IPルート情報の取得(Get-NetRoute
)
IPアドレスは、ホストが同じネットワーク上の他のデバイスと通信するために使用されます。しかし、ホストがそのネットワークの外部と通信する必要がある場合はどうなるのでしょうか?
A gateway address is necessary, and the Get-NetRoute
cmdlet is what you need. This cmdlet provides information that previous cmdlets you have learned about do not.
次のGet-NetRoute
コマンドを実行して、Ethernet
インターフェイスの現在のゲートウェイ(NextHop
)を確認します。
通常、DHCPサーバーがゲートウェイアドレスを提供します。このアドレスをこの記事の後でキャプチャする必要があります。

DNSサーバーのIPアドレスを取得する(Get-DnsClientServerAddress
)
DNSは内部および外部ネットワークの名前解決に必要です。DNSがないと、ネットワーク上の各ホストのインターネットアドレスを覚えておかなければなりません。
ただし、おそらくホストは既にDHCPを介してDNSを構成している可能性があります。現在の構成を確認するには、Get-DnsClientServerAddress
cmdletを使用できます。
IPアドレスをテキストファイルにリダイレクトするか、それらを書き留めることで、これらのDNSサーバーアドレスを後で再割り当てする必要があります。

IPネットワーク構成の取得(Get-NetIPConfiguration
)
前述の3つのcmdletで学んだ情報が一括で必要な場合、Get-NetIPConfiguration
cmdletが役立ちます。このcmdletの特徴の1つは、より焦点を絞った情報を提供することです。
以下のGet-NetIPConfiguration
cmdletを実行して、前に実行したcmdletによって収集されたIPネットワーク構成を表示します。

Get-NetIPConfigurationコマンドレットは、ネットワークインターフェイスが1つしかない場合は速く動作します。しかし、複数のネットワークインターフェイスがある場合は、コンソールがスクロールするのを防ぐためにプロパティをフィルタリングする必要があります。
IP、ゲートウェイ、およびDNSアドレスの手動設定
これまでに学んだコマンドレットを活用する時が来ました。このチュートリアルでは、Windows Server 2022ホストに静的IPアドレス、ゲートウェイ、およびDNSサーバーを割り当てます。
この時点からのコマンドは、指定されたネットワークアダプターのIPアドレス、ゲートウェイ、およびDNS設定のみを変更します。変更するアダプターごとにこれらの手順を繰り返す必要があります。
1. 管理者としてPowerShellを開き、次のコマンドを実行してサーバー上のネットワークアダプターをリストします。
インストールされたネットワークアダプターのコマンドを見つける
変更したいネットワークアダプターを特定します。リストに表示されるアダプターの名前またはインデックス番号(つまり、イーサネット)を使用できます。

次に、以下のNet-NetIPAddress
コマンドを実行して、ネットワークアダプターのIPv4アドレスを変更します。 -PrefixLength
の24
は、IPアドレスの最初の24ビットがアドレスのネットワーク部分に使用されていることを示します。以下を適切に置き換えてください:
AdapterName
– 対象のネットワークアダプターの名前またはインデックス番号。ServerAddress
– ネットワークアダプターに追加するIPv4アドレス。GatewayAddress
– ゲートウェイアドレスはIPv4アドレスと同じサブネット内にある必要があります。

New-NetIPAddressコマンドレットに関連するものは、Set-NetIPAddressです。これは既存のIP構成を変更します。一方、Remove-NetIPAddressは構成を削除します。
3. 以下のSet-DnsClientServerAddress
コマンドを実行してください。このコマンドは出力を生成しませんが、DNSサーバーを変更します。ネットワークアダプターの名前(-InterfaceAlias
)またはインデックス番号(-InterfaceIndex
)でAdapterName
を置き換えてください。このコマンドは、ネットワークアダプターのDNSサーバーをGoogleのパブリックDNSサーバーである8.8.8.8
および8.8.4.4
に設定します。ただし、任意の有効なDNSサーバーIPアドレスを指定できます。
Set-DnsClientServerAddressコマンドレットでは、1つ以上の内部または公開向けDNS IPアドレスを割り当てることができることに注意してください。
4. 最後に、以下のRestart-NetAdapter
コマンドを実行してください。このコマンドはコンソールに出力を表示しませんが、ネットワークアダプターを再起動して変更を適用します。おめでとうございます!これで、ネットワークインターフェースを手動でカスタム構成しました。
ホストが1つのアダプターしか持っていない場合、このチュートリアルのように、接続方法によっては一時的に接続が失われることがあります。この最後のステップは、新しいIPアドレスを使用するために完了する必要があります。
結論
ネットワーク構成を把握することは、健全なネットワークを維持する上で重要です。良いニュースは、PowerShell IP構成コマンドレットから利用可能な4つの基本的なネットワーク構成コマンドについて学んだということです。
この新たな知識を活用して、PowerShell IP構成機能を使用してスクリプトを簡単に作成し、より広範なサーバー構成プロセスの一部として利用できます。
次は何ですか?MTUのようなより高度なオプションの調整や、より多くのルートの追加、またはアダプターを静的アドレスではなくDHCPを使用するようにリセットするなど、試してみてはどうでしょうか?
Source:
https://adamtheautomator.com/powershell-ip-configuration/