Windows PowerShell IP構成の始め方

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アドレスをトラブルシューティングまたは収集する場合、pingipconfigsconfigなどの従来のツールを使用できますが、PowerShellコマンドレットを使用すると、このプロセスを自動化できます。

PowerShellを開いて、以下のGet-NetAdapterコマンドレットを実行して、ネットワークアダプターとそのプロパティのリスト(ホストのInterfaceAliasおよびInterfaceIndexなど)を取得します。

Get-NetAdapter
Getting network adapters’ properties

アダプターにはまだIPアドレスオブジェクトがないことに注意してください。使用するアダプターを知っている必要があります。このチュートリアルでは、Ethernetのアダプターエイリアスを使用しています。

アドレスの取得 PowerShell IP構成(Get-NetIPAddress

以前は、単一のコマンドですべてのネットワークインターフェイスをリストアップしました。ただし、Get-NetIPAddress コマンドレットを使用して、プロパティ値とホストの現在のIPアドレスをリストアップすることもできます。

以下のコマンドレット(パラメーターなしで実行)を実行して、各アダプタのアドレスとPowerShell IP設定を表示します。

Get-NetIPAddress
Getting all IP address configurations

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

Get-NetIPAddress -InterfaceAlias Ethernet | Select-Object -Property InterfaceAlias,IPAddress
Finding the IP address assigned to an interface (Ethernet)

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)を確認します。

Get-NetRoute -InterfaceAlias Ethernet | Where-Object -Property RouteMetric -EQ 0 | Select-Object -Property NextHop

通常、DHCPサーバーがゲートウェイアドレスを提供します。このアドレスをこの記事の後でキャプチャする必要があります。

Finding the gateway address assigned to an interface

DNSサーバーのIPアドレスを取得する(Get-DnsClientServerAddress

DNSは内部および外部ネットワークの名前解決に必要です。DNSがないと、ネットワーク上の各ホストのインターネットアドレスを覚えておかなければなりません。

ただし、おそらくホストは既にDHCPを介してDNSを構成している可能性があります。現在の構成を確認するには、Get-DnsClientServerAddress cmdletを使用できます。

Get-DnsClientServerAddress

IPアドレスをテキストファイルにリダイレクトするか、それらを書き留めることで、これらのDNSサーバーアドレスを後で再割り当てする必要があります。

Verifying the current DNS configuration

IPネットワーク構成の取得(Get-NetIPConfiguration

前述の3つのcmdletで学んだ情報が一括で必要な場合、Get-NetIPConfiguration cmdletが役立ちます。このcmdletの特徴の1つは、より焦点を絞った情報を提供することです。

以下のGet-NetIPConfiguration cmdletを実行して、前に実行したcmdletによって収集されたIPネットワーク構成を表示します。

Get-NetIPConfiguration
Getting IP network configurations

Get-NetIPConfigurationコマンドレットは、ネットワークインターフェイスが1つしかない場合は速く動作します。しかし、複数のネットワークインターフェイスがある場合は、コンソールがスクロールするのを防ぐためにプロパティをフィルタリングする必要があります。

IP、ゲートウェイ、およびDNSアドレスの手動設定

これまでに学んだコマンドレットを活用する時が来ました。このチュートリアルでは、Windows Server 2022ホストに静的IPアドレス、ゲートウェイ、およびDNSサーバーを割り当てます。

この時点からのコマンドは、指定されたネットワークアダプターのIPアドレス、ゲートウェイ、およびDNS設定のみを変更します。変更するアダプターごとにこれらの手順を繰り返す必要があります。

1. 管理者としてPowerShellを開き、次のコマンドを実行してサーバー上のネットワークアダプターをリストします。

Get-NetAdapter

インストールされたネットワークアダプターのコマンドを見つける

変更したいネットワークアダプターを特定します。リストに表示されるアダプターの名前またはインデックス番号(つまり、イーサネット)を使用できます。

Current network adapter properties of all installed adapters

次に、以下のNet-NetIPAddressコマンドを実行して、ネットワークアダプターのIPv4アドレスを変更します。 -PrefixLength24は、IPアドレスの最初の24ビットがアドレスのネットワーク部分に使用されていることを示します。以下を適切に置き換えてください:

  • AdapterName – 対象のネットワークアダプターの名前またはインデックス番号。
  • ServerAddress – ネットワークアダプターに追加するIPv4アドレス。
  • GatewayAddress – ゲートウェイアドレスはIPv4アドレスと同じサブネット内にある必要があります。
New-NetIPAddress -InterfaceAlias "[AdapterName]" -IPAddress [ServerAddress] -PrefixLength 24 -DefaultGateway [GatewayAddress]
Setting a new IP address and gateway

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 -InterfaceAlias "[AdapterName]" -ServerAddresses 8.8.8.8, 8.8.4.4

Set-DnsClientServerAddressコマンドレットでは、1つ以上の内部または公開向けDNS IPアドレスを割り当てることができることに注意してください。

4. 最後に、以下のRestart-NetAdapterコマンドを実行してください。このコマンドはコンソールに出力を表示しませんが、ネットワークアダプターを再起動して変更を適用します。おめでとうございます!これで、ネットワークインターフェースを手動でカスタム構成しました。

Restart-NetAdapter -Name Ethernet

ホストが1つのアダプターしか持っていない場合、このチュートリアルのように、接続方法によっては一時的に接続が失われることがあります。この最後のステップは、新しいIPアドレスを使用するために完了する必要があります。

結論

ネットワーク構成を把握することは、健全なネットワークを維持する上で重要です。良いニュースは、PowerShell IP構成コマンドレットから利用可能な4つの基本的なネットワーク構成コマンドについて学んだということです。

この新たな知識を活用して、PowerShell IP構成機能を使用してスクリプトを簡単に作成し、より広範なサーバー構成プロセスの一部として利用できます。

次は何ですか?MTUのようなより高度なオプションの調整や、より多くのルートの追加、またはアダプターを静的アドレスではなくDHCPを使用するようにリセットするなど、試してみてはどうでしょうか?

Source:
https://adamtheautomator.com/powershell-ip-configuration/