Windows 8 と Windows Server 2012 で確認
MinShell の状態で GUI から IPv6 アドレスを設定する方法がなかったため。
作成 2012.11.09
更新 2012.11.10
更新 2012.11.10
PowerShell で IP アドレスの設定
Netsh コマンドがもうすぐなくなるそうで
Windows Server 2012
netsh interface コマンドを実行すると以下のメッセージが出ます。
C:\>netsh netsh>interface Windows の将来のバージョンで、TCP/IP の Netsh 機能が削除される可能性があります。 現在 TCP/IP の構成および管理に netsh を使用している場合は、Windows PowerShell に 移行することをお勧めします。 TCP/IP を管理するためのコマンドの一覧を表示するには、Windows PowerShell プロンプト に「Get-Command -Module NetTCPIP」と入力してください。 TCP/IP 用の PowerShell コマンドの詳細については、 http://go.microsoft.com/fwlink/?LinkId=217627 を参照してください。というわけで netsh コマンドで実行していたことは今後 PowerShell で実行することになりそうです。
InterfaceIndex の確認
まずは設定先の InterfaceIndex を確認します。
確認したいプロパティだけ取得できます。
PS C:\> Get-NetIPAddress ... 省略 ... IPAddress : 192.168.0.51 InterfaceIndex : 13 InterfaceAlias : イーサネット AddressFamily : IPv4 Type : Unicast PrefixLength : 24 PrefixOrigin : Manual SuffixOrigin : Manual AddressState : Preferred ValidLifetime : Infinite ([TimeSpan]::MaxValue) PreferredLifetime : Infinite ([TimeSpan]::MaxValue) SkipAsSource : False PolicyStore : ActiveStore ... 省略 ...今度は違うやり方で InterfaceIndex を確認してみます。
確認したいプロパティだけ取得できます。
PS C:\> Get-NetIPAddress | Select-Object InterfaceIndex,Interfacealias,IPAddress InterfaceIndex Interfacealias IPAddress -------------- -------------- --------- 49 Bluetooth ネットワーク接続 6 fe80::d55c:bb14:83e0:9264%49 32 VirtualBox Host-Only Network fe80::148f:7cb0:7cc4:d26b%32 13 イーサネット fe80::8eb:c9dd:712a:b583%13 13 イーサネット fd00::1:10 12 Wi-Fi fe80::313d:d3c0:463c:f4ca%12 1 Loopback Pseudo-Interface 1 ::1 49 Bluetooth ネットワーク接続 6 169.254.146.100 32 VirtualBox Host-Only Network 192.168.56.1 13 イーサネット 192.168.0.51 12 Wi-Fi 169.254.244.202 1 Loopback Pseudo-Interface 1 127.0.0.1
IPv6 新規設定
設定を追加します。「管理者として実行する」で PowerShell を起動して実行します。
-DefaultGateway オプションでデフォルトゲートウェイも設定可能です。
-DefaultGateway オプションでデフォルトゲートウェイも設定可能です。
PS C:\> New-NetIPAddress -InterfaceIndex 13 -IPAddress "fd00::1:10" -PrefixLength 64
既存の IPv6 アドレスを削除する
アドレスを削除するには Remove-NetIPAddress を使用します。
削除確認のプロンプトが出てきて既定値が "Y" になっていますが、空で Enter を押しても続行できないので、y を入力して Enter で続行します。
削除確認のプロンプトが出てきて既定値が "Y" になっていますが、空で Enter を押しても続行できないので、y を入力して Enter で続行します。
PS C:\> Remove-NetIPAddress -InterfaceIndex 13 -IPAddress "fd00::1:10" 確認 この操作を実行しますか? Performing operation "Remove" on Target "NetIPAddress -IPv6Address fd00::1:10 -InterfaceIndex 13 -Store Persistent" [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y PS C:\Windows\system32>
既存の IPv6 アドレスを再設定する
上書き再設定の方法は無いようなので、新しいのを追加してから古いのを削除します。
PS C:\> New-NetIPAddress -InterfaceIndex 13 -IPAddress "fd00::1:11" -PrefixLength 64 PS C:\> Remove-NetIPAddress -InterfaceIndex 13 -IPAddress "fd00::1:10"ちなみに、Set-NetIPAddress というコマンドレットがありますが、既存の IP アドレスに対する追加設定のみで、IP アドレスそのものを変更することはできないようです。
DHCP へ変更
DHCP の設定は Set-NetIPInterface にあります。
このコマンド体系は使いにくいと思う。
このコマンド体系は使いにくいと思う。
PS C:\> Set-NetIPInterface -InterfaceIndex 13 -AddressFamily IPv6 -Dhcp Enabled
DNS の設定と削除
IPv4 アドレスと IPv6 アドレスの設定は全く同じコマンドで実行可能ですが、それぞれ独立しています。
DNS サーバーとして "192.168.0.1" と "192.168.0.2" が既に設定されていた場合、"fd00::1" を設定すると、"192.168.0.1" と "192.168.0.2" と "fd00::1" の3つに増えますが、同じ条件で "8.8.8.8" を設定すると、"8.8.8.8" のみになります。つまり、IPv4 のアドレスしか設定されていない状態で IPv6 アドレスを指定すると追加されますが、IPv4 アドレスを指定すると既存の IPv4 アドレスは上書きされるということです。
DNS サーバーとして "192.168.0.1" と "192.168.0.2" が既に設定されていた場合、"fd00::1" を設定すると、"192.168.0.1" と "192.168.0.2" と "fd00::1" の3つに増えますが、同じ条件で "8.8.8.8" を設定すると、"8.8.8.8" のみになります。つまり、IPv4 のアドレスしか設定されていない状態で IPv6 アドレスを指定すると追加されますが、IPv4 アドレスを指定すると既存の IPv4 アドレスは上書きされるということです。
PS C:\> Set-DnsClientServerAddress -InterfaceIndex 13 -ServerAddresses "fd00::1:10","fd00::1:11"削除
PS C:\> Set-DnsClientServerAddress -InterfaceIndex 13 -ResetServerAddresses
タグ: Windows
PowerShell