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
と入力して、各ネットワークインターフェースに割り当てられたIPアドレスを一覧表示する。

Get-NetIPAddressにパラメーターを付与して実行した結果
Get-NetIPAddressにパラメーターを付与して実行した結果
[画像のクリックで拡大表示]

 PCに搭載されたネットワークインターフェースのベンダー情報やリンク速度、MAC(Media Access Control)アドレスなどを調べるには「Get-NetAdapter」を使う。例えばLANスイッチと1Gビット/秒で接続したはずなのに遅いといった場合は、100Mビット/秒でつながっている可能性もある。このような場合はLinkSpeedの項目を確認すれば、リンク速度が分かる。

Get-NetAdapterでリンク速度を確認できる
Get-NetAdapterでリンク速度を確認できる
[画像のクリックで拡大表示]

 DHCPサーバーからIPアドレスを正しく取得できなかったなら、IPアドレスの再取得を試そう。PowerShellまたはコマンドプロンプトで「ipconfig /renew」を実行する。

 ipconfigコマンドでもIPアドレスを正しく取得できない場合は、ネットワークインターフェースを再起動する手もある。PowerShellで、

Restart-NetAdapter -Name "<ネットワークインターフェース名>"
を実行する。ネットワークインターフェース名には、Get-NetAdapterコマンドレットを入力した際に「Name」の欄に表示された文字列を指定する。

接続された機器を表示する「Get-NetNeighbor」と「arp」

 パソコンなどのネットワークに接続した端末は、同じネットワーク内にある機器のIPアドレスとMACアドレスの対応付けを一時的に保持している。これはARP(Address Resolution Protocol)テーブルと呼ばれる。ARPテーブルを表示するのが「Get-NetNeighbor」というコマンドレットだ。実行するとネットワークインターフェースごとに接続している機器のIPアドレスとMACアドレスが表示される。コマンドプロンプトでは「arp -a」で同様の情報を表示できる。

Get-NetNeighborでARPテーブルを表示した様子
Get-NetNeighborでARPテーブルを表示した様子
[画像のクリックで拡大表示]

 機器を入れ替えたり、同じIPアドレスを引き継ぐ別の機器が稼働したりすると、ARPテーブルを更新しなければならない。ARPテーブルから当該機器を削除するには、

Remove-NetNeighbor -InterfaceIndex "<識別番号>" -IPAddress "<削除する機器のIPアドレス>"
というコマンドレットを使う。例えば識別番号が「15」のネットワークインターフェースが接続している機器の中で、IPアドレスが「192.168.0.150」の機器をARPテーブルから削除する場合は、「 Remove-NetNeighbor -InterfaceIndex "15" -IPAddress "192.168.0.150"」と入力すればよい。

Remove-NetNeighborのコマンドレットを実行した様子
Remove-NetNeighborのコマンドレットを実行した様子
[画像のクリックで拡大表示]

 arpコマンドを使う場合は「arp -d <削除する機器のIPアドレス>」でARPテーブルから削除できる。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。