Edited at

【自分用メモ】PowerShellによるIPアドレスの設定及び変更

More than 3 years have passed since last update.


◆IPアドレス操作

PowerShellでIPアドレスを設定する場合は、まず、Remove-NetIPAddressしてからNew-NetIPAddressするという手順を踏む。set-NetIPAddressで変更しようとするとエラーになるほか、set-NetIPAddressの際にはデフォルトゲートウェイが指定できないなど、不完全な設定しかできない。


静的に設定したIPアドレスの削除


PowerShellコマンド

Remove-NetIPAddress -InterfaceIndex 13 -IPAddress "192.168.88.88" -DefaultGateway "192.168.88.1"



【解説】

「-InterfaceIndex 13」は、Get-NetAdapterで表示されたifIndex Statusの値なので各環境で読み替える必要あり。

「-IPAddress "192.168.88.88"」は、文字通り、静的に設定した削除対象のIPアドレスなので、各環境で読み替える必要あり。

「-DefaultGateway "192.168.88.1"」は、文字通り、静的に設定した削除対象のデフォルトゲートウェイなので、各環境で読み替える必要あり。

明示的にデフォルトゲートウェイを削除しないと、デフォルトゲートウェイだけ残ってしまう。


静的に設定したDNSサーバの削除


PowerShellコマンド

Set-DnsClientServerAddress -InterfaceIndex 13 -ResetServerAddresses



【解説】

「-InterfaceIndex 13」は、Get-NetAdapterで表示されたifIndex Statusの値なので各環境で読み替える必要あり。

「-ResetServerAddresses」のみで、静的に設定されているDNSサーバがすべてクリアされる。


DHCPで配布されたIPアドレスの削除


PowerShellコマンド

Remove-NetIPAddress -InterfaceIndex 13 -DefaultGateway "172.16.64.1"



【解説】

「-InterfaceIndex 13」は、Get-NetAdapterで表示されたifIndex Statusの値なので各環境で読み替える必要あり。

「-DefaultGateway "172.16.64.1"」は、文字通り、静的に設定した削除対象のデフォルトゲートウェイなので、各環境で読み替える必要あり。

明示的にデフォルトゲートウェイを削除しないと、デフォルトゲートウェイだけ残ってしまう。


静的なIPアドレスの設定


PowerShellコマンド

New-NetIPAddress -InterfaceIndex 13 -IPAddress "192.168.88.88" -AddressFamily IPv4 -PrefixLength 24 -DefaultGateway "192.168.88.1"



【解説】

「-InterfaceIndex 13」は、Get-NetAdapterで表示されたifIndex Statusの値なので各環境で読み替える必要あり。

「-IPAddress "192.168.88.88"」は、文字通り、静的に設定したいIPアドレスなので、各環境で読み替える必要あり。

「-DefaultGateway "192.168.88.1"」は、文字通り、静的に設定したいデフォルトゲートウェイなので、各環境で読み替える必要あり。


静的なDNSサーバの設定


PowerShellコマンド

Set-DnsClientServerAddress -InterfaceIndex 13 -ServerAddresses "192.168.88.1"



【解説】

「-InterfaceIndex 13」は、Get-NetAdapterで表示されたifIndex Statusの値なので各環境で読み替える必要あり。

「-IPAddress "192.168.88.88"」は、文字通り、静的に設定したいDNSサーバなので、各環境で読み替える必要あり。


DHCPによるIP取得の設定


PowerShellコマンド

Set-NetIPInterface -InterfaceIndex 13 -Dhcp Enabled



【解説】

「-InterfaceIndex 13」は、Get-NetAdapterで表示されたifIndex Statusの値なので各環境で読み替える必要あり。


◆ネットワークアダプタの有効・無効

ネットワークの静的IP設定とDHCPによるIP取得の設定をPowerShellから繰り返し行うと、DHCPが降ってこない場合がある。また、ipconfig /renewがすばやく実行されない場合は、ネットワークアダプタを無効としたあと有効とすることで、すぐにipconfig /renew相当の処理が実施される。

しかし、その際、「タスクトレイ」→「ネットワークと共有センター」→「アダプターの設定の変更」または「コントロール パネル」→「ネットワークとインターネット」→「ネットワーク接続」→「アダプターの設定の変更」で、対象のネットワークアダプタを無効→有効する操作は面倒であるため、これもPowerShellで実施する。


ネットワークアダプタの無効操作


PowerShellコマンド

Disable-NetAdapter -Name "eth0"



【解説】

「-Name "eth0"」は、Get-NetAdapterで表示されたName(ネットワークアダプタ名)の値なので各環境で読み替える必要あり。

デフォルトのネットワークアダプタ名は、「ローカルエリア接続 2」等となっており、PowerShellのコマンド入力時に日本語入力の切り替えや途中で半角スペースを入力する必要があるなど面倒であるため、事前に名称を変更する等しておくと楽になる。(PowerShellからネットワークアダプタ名を変更する方法は後で調べる)


ネットワークアダプタの有効操作


PowerShellコマンド

Enable-NetAdapter -Name "eth0"



【解説】

「-Name "eth0"」は、Get-NetAdapterで表示されたName(ネットワークアダプタ名)の値なので各環境で読み替える必要あり。

デフォルトのネットワークアダプタ名は、「ローカルエリア接続 2」等となっており、PowerShellのコマンド入力時に日本語入力の切り替えや途中で半角スペースを入力する必要があるなど面倒であるため、事前に名称を変更する等しておくと楽になる。