Windowsに搭載されているPowerShellやコマンドプロンプトにはネットワークを管理する様々なコマンドが用意されている。ここではPowerShellのコマンドレットを中心に、PCのネットワーク設定や利用状況を調べるコマンドなどを紹介する。パソコンがうまく通信できないときに試してみたいコマンドだ。
PCのネットワーク設定を「Get-NetIPAddress」と「ipconfig」で確認
PCがネットワークにつながらない場合、まず確かめたいのがPCの設定だ。例えば「169.254.255.254」といった謎のIPアドレスが割り当てられているかもしれない。これはDHCP(Dynamic Host Configuration Protocol)サーバーから正しくIPアドレスを取得できていない可能性が高いことを意味している。
DHCPによるIPアドレスの取得に失敗すると、APIPA(Automatic Private IP Addressing)という機能が働く。LANで利用できる特別なIPアドレスであるリンクローカルアドレス(169.254.1.0~169.254.254.255)を代わりに設定する機能だ。APIPAでは他の機器が使っているリンクローカルアドレスを調べて、使われていないIPアドレスを見つけたら自分のIPアドレスとして設定する。
こうしたPCのネットワーク設定を確認するコマンドレットが「Get-NetIPAddress」である。コマンドプロンプトでは「ipconfig」が同様のコマンドに相当する。Get-NetIPAddressを実行すると、PCのネットワークインターフェースに割り当てられたIPアドレスや識別番号(InterfaceIndex)といった情報が一覧表示される。ただしPCが複数のネットワークインターフェースを搭載していると、それぞれの情報が多くて見づらい。その際は、
Get-NetIPAddress | select InterfaceAlias, IPAddress
PCに搭載されたネットワークインターフェースのベンダー情報やリンク速度、MAC(Media Access Control)アドレスなどを調べるには「Get-NetAdapter」を使う。例えばLANスイッチと1Gビット/秒で接続したはずなのに遅いといった場合は、100Mビット/秒でつながっている可能性もある。このような場合はLinkSpeedの項目を確認すれば、リンク速度が分かる。
DHCPサーバーからIPアドレスを正しく取得できなかったなら、IPアドレスの再取得を試そう。PowerShellまたはコマンドプロンプトで「ipconfig /renew」を実行する。
ipconfigコマンドでもIPアドレスを正しく取得できない場合は、ネットワークインターフェースを再起動する手もある。PowerShellで、
Restart-NetAdapter -Name "<ネットワークインターフェース名>"
接続された機器を表示する「Get-NetNeighbor」と「arp」
パソコンなどのネットワークに接続した端末は、同じネットワーク内にある機器のIPアドレスとMACアドレスの対応付けを一時的に保持している。これはARP(Address Resolution Protocol)テーブルと呼ばれる。ARPテーブルを表示するのが「Get-NetNeighbor」というコマンドレットだ。実行するとネットワークインターフェースごとに接続している機器のIPアドレスとMACアドレスが表示される。コマンドプロンプトでは「arp -a」で同様の情報を表示できる。
機器を入れ替えたり、同じIPアドレスを引き継ぐ別の機器が稼働したりすると、ARPテーブルを更新しなければならない。ARPテーブルから当該機器を削除するには、
Remove-NetNeighbor -InterfaceIndex "<識別番号>" -IPAddress "<削除する機器のIPアドレス>"
arpコマンドを使う場合は「arp -d <削除する機器のIPアドレス>」でARPテーブルから削除できる。