作成 2012.11.09
更新 2012.11.10
PowerShell で IP アドレスの設定
Windows 8 と Windows Server 2012 で確認
MinShell の状態で GUI から IPv6 アドレスを設定する方法がなかったため。
目次
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 オプションでデフォルトゲートウェイも設定可能です。
PS C:\> New-NetIPAddress -InterfaceIndex 13 -IPAddress "fd00::1:10" -PrefixLength 64
既存の IPv6 アドレスを削除する
アドレスを削除するには Remove-NetIPAddress を使用します。
削除確認のプロンプトが出てきて既定値が "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 アドレスは上書きされるということです。
PS C:\> Set-DnsClientServerAddress -InterfaceIndex 13 -ServerAddresses "fd00::1:10","fd00::1:11"
削除
PS C:\> Set-DnsClientServerAddress -InterfaceIndex 13 -ResetServerAddresses

©2004-2017 UPKEN IPv4