5
7

More than 1 year has passed since last update.

ネットワークトラブルシューティングに役立つPowerShellコマンド

Last updated at Posted at 2023-05-07

ネットワークトラブルシューティングに役立つ主なPowerShellコマンドは以下の通りです。
※私の備忘メモも兼ねた記事です。

Test-NetConnection - ホスト名またはIP アドレスへの接続、ポート接続の状態、ルーティングが正しく構成されているかどうかを確認します。
Test-Connection - ネットワーク上のコンピューターへの ICMP Echo リクエストを送信し、その応答を確認します。
Get-NetAdapter - ローカル コンピューター上のネットワーク アダプターの情報を表示します。
Get-NetIPAddress - ローカル コンピューター上の IP アドレスの情報を表示します。
Get-NetTCPConnection - 現在の TCP 接続の情報を表示します。
Get-NetRoute - ルーティング テーブルの情報を表示します。
Get-NetNeighbor - ネットワーク上の隣接するノードの情報を表示します。
Resolve-DnsName - ドメイン名を解決し、IP アドレスを表示します。

Test-NetConnectionの使用例

Test-NetConnection コマンドレットを使用して、TCP 接続をテストする例です。

Test-NetConnection www.example.com -Port 80

このコマンドを実行すると、www.example.com の TCP ポート 80 に対して接続を試みます。結果は、以下のように表示されます。

Copy code
ComputerName           : www.example.com
RemoteAddress          : 93.184.216.34
RemotePort             : 80
InterfaceAlias         : Ethernet
SourceAddress          : 192.168.1.10
PingSucceeded          : True
PingReplyDetails (RTT) : 31 ms
TcpTestSucceeded       : True

-InformationLevel オプションを使用することで、表示する情報の詳細度を指定することができます。例えば、Detailed を指定すると、より詳細な情報が表示されます。

Test-NetConnection www.example.com -Port 80 -InformationLevel Detailed

このコマンドを実行すると、www.example.com の TCP ポート 80 に対して接続を試みます。結果は、以下のように表示されます。

Copy code
ComputerName           : www.example.com
RemoteAddress          : 93.184.216.34
RemotePort             : 80
InterfaceAlias         : Ethernet
SourceAddress          : 192.168.1.10
PingSucceeded          : True
PingReplyDetails (RTT) : 31 ms
TcpTestSucceeded       : True

-CommonTCPPort オプションを使用することで、一般的な TCP ポート番号を使用して接続を試みることができます。例えば、以下のコマンドは、www.example.com の TCP ポート 80 に対して接続を試みます。

Test-NetConnection www.example.com -CommonTCPPort HTTP

このコマンドを実行すると、www.example.com の TCP ポート 80 に対して接続を試みます。結果は、以下のように表示されます。

Copy code
ComputerName           : www.example.com
RemoteAddress          : 93.184.216.34
RemotePort             : 80
InterfaceAlias         : Ethernet
SourceAddress          : 192.168.1.10
PingSucceeded          : True
PingReplyDetails (RTT) : 31 ms
TcpTestSucceeded       : True

Test-Connectionの使用例

Test-Connection コマンドレットを使用して、ホストに ping を送信して応答を確認する例です。

Test-Connection www.example.com

このコマンドを実行すると、www.example.com に ping を送信し、4回の ping パケットを送信して応答を確認します。結果は、以下のように表示されます。

Source        Destination     IPV4Address      Bytes    Time(ms)
------        -----------     -----------      -----    --------
MyComputer    www.example.com  93.184.216.34    32       32.54
MyComputer    www.example.com  93.184.216.34    32       32.29
MyComputer    www.example.com  93.184.216.34    32       31.87
MyComputer    www.example.com  93.184.216.34    32       31.68

-Count オプションを使用することで、送信する ping パケットの数を指定することができます。例えば、2回の ping パケットを送信して応答を確認する場合は、以下のようにコマンドを実行します。

Test-Connection www.example.com -Count 2

このコマンドを実行すると、www.example.com に対して2回の ping パケットを送信し、応答を確認します。結果は、以下のように表示されます。

Source        Destination     IPV4Address      Bytes    Time(ms)
------        -----------     -----------      -----    --------
MyComputer    www.example.com  93.184.216.34    32       32.54
MyComputer    www.example.com  93.184.216.34    32       32.29

-Quiet オプションを使用することで、結果を表示せずに、成功した場合は $true、失敗した場合は $false を返すこともできます。

Test-Connection www.example.com -Quiet

このコマンドを実行すると、www.example.com に ping を送信し、応答を確認せずに、成功した場合は $true、失敗した場合は $false を返します。

Get-NetAdapterの使用例

Get-NetAdapter コマンドレットを使用して、Windows マシン上のネットワークアダプター情報を取得する例です。

Get-NetAdapter

このコマンドを実行すると、Windows マシンにインストールされているすべてのネットワークアダプターの情報が表示されます。例えば、Ethernet アダプターに関する情報は以下のように表示されます。

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet                  Intel(R) Ethernet Connection I219-V        4 Up           00-11-22-33-44-55    1 Gbps

また、特定のアダプターに関する情報を取得する場合は、-Name オプションを使用します。

Get-NetAdapter -Name Ethernet

このコマンドを実行すると、アダプター名が "Ethernet" のアダプターに関する情報が表示されます。

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet                  Intel(R) Ethernet Connection I219-V        4 Up           00-11-22-33-44-55    1 Gbps

さらに、特定のステータスに関する情報を取得する場合は、-Status オプションを使用します。

Get-NetAdapter -Status Up

このコマンドを実行すると、ステータスが "Up" のアダプターに関する情報が表示されます。同様に、ステータスが "Down" のアダプターに関する情報を取得する場合は、-Status Down と指定します。

Get-NetIPAddressの使用例

Get-NetIPAddress コマンドレットを使用して、Windows マシン上の IP アドレス情報を取得する例です。

Get-NetIPAddress

このコマンドを実行すると、Windows マシンに設定されているすべての IP アドレス情報が表示されます。例えば、IPv4 アドレスに関する情報は以下のように表示されます。

IPAddress         : 192.168.1.100
InterfaceIndex    : 4
InterfaceAlias    : Ethernet
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Dhcp
SuffixOrigin      : Dhcp
AddressState      : Preferred
ValidLifetime     : 23:59:25
PreferredLifetime : 23:59:25
SkipAsSource      : False
PolicyStore       : ActiveStore

また、特定のインターフェイスに関する情報を取得する場合は、-InterfaceIndex オプションを使用します。

Get-NetIPAddress -InterfaceIndex 4

このコマンドを実行すると、インターフェイス番号が 4 のインターフェイスに関する IP アドレス情報が表示されます。

IPAddress         : 192.168.1.100
InterfaceIndex    : 4
InterfaceAlias    : Ethernet
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Dhcp
SuffixOrigin      : Dhcp
AddressState      : Preferred
ValidLifetime     : 23:59:25
PreferredLifetime : 23:59:25
SkipAsSource      : False
PolicyStore       : ActiveStore

さらに、特定のアドレスファミリーに関する情報を取得する場合は、-AddressFamily オプションを使用します。

Get-NetIPAddress -AddressFamily IPv6

このコマンドを実行すると、IPv6 アドレスに関する情報が表示されます。同様に、IPv4 アドレスに関する情報を取得する場合は、-AddressFamily IPv4 と指定します。

Get-NetTCPConnectionの使用例

Get-NetTCPConnection コマンドレットを使用して、Windows マシン上の TCP コネクション情報を取得する例です。

Get-NetTCPConnection

このコマンドを実行すると、Windows マシン上で現在開いているすべての TCP コネクション情報が表示されます。例えば、特定のローカルポート番号に関する情報は以下のように表示されます。

LocalAddress                        LocalPort RemoteAddress                       RemotePort State       AppliedSetting OwningProcess
------------                        --------- -------------                       ---------- -----       -------------- ------------
192.168.1.100                       56708     192.0.2.1                           443        Established                  3164

また、特定の状態にある TCP コネクション情報を取得する場合は、-State オプションを使用します。

Get-NetTCPConnection -State Established

このコマンドを実行すると、現在「Established」(接続されている)状態の TCP コネクション情報が表示されます。

LocalAddress                        LocalPort RemoteAddress                       RemotePort State       AppliedSetting OwningProcess
------------                        --------- -------------                       ---------- -----       -------------- ------------
192.168.1.100                       56708     192.0.2.1                           443        Established                  3164

さらに、特定のプロセスによって所有される TCP コネクション情報を取得する場合は、-OwningProcess オプションを使用します。

Get-NetTCPConnection -OwningProcess 3164

このコマンドを実行すると、プロセス ID が 3164 のプロセスによって所有される TCP コネクション情報が表示されます。

Get-NetRouteの使用例

Get-NetRoute コマンドレットを使用して、Windows マシンのルーティングテーブルを取得する例です。

Get-NetRoute

このコマンドを実行すると、Windows マシンのすべてのルート情報が表示されます。例えば、IPv4 アドレス 192.168.0.0/24 に関する情報は以下のように表示されます。

ifIndex DestinationPrefix                        NextHop              RouteMetric ifMetric PolicyStore
------- -----------------                        -------              ----------- -------- -----------
21      192.168.0.0/24                           192.168.0.1                  256       35 ActiveStore

また、特定の IP アドレスに関する情報を取得する場合は、-DestinationPrefix オプションを使用します。

Get-NetRoute -DestinationPrefix 192.168.0.0/24

このコマンドを実行すると、IPv4 アドレス 192.168.0.0/24 に関するルート情報が表示されます。

ifIndex DestinationPrefix                        NextHop              RouteMetric ifMetric PolicyStore
------- -----------------                        -------              ----------- -------- -----------
21      192.168.0.0/24                           192.168.0.1                  256       35 ActiveStore

さらに、インターフェースのエイリアスを指定して情報を取得する場合は、-InterfaceAlias オプションを使用します。

Get-NetRoute -InterfaceAlias "イーサネット"

このコマンドを実行すると、イーサネットに関するルート情報が表示されます。

Get-NetNeighborの使用例

Get-NetNeighbor コマンドレットを使用して、Windows マシンの近隣情報を取得する例です。

Get-NetNeighbor

このコマンドを実行すると、Windows マシンのすべての近隣情報が表示されます。例えば、IPv4 アドレス 192.168.0.1 に関する情報は以下のように表示されます。

ifIndex IPAddress                              LinkLayerAddress      State       PolicyStore
------- ---------                              ----------------      -----       -----------
14      fe80::20c:29ff:fe22:b55b%14              00-0c-29-22-b5-5b    Unreachable ActiveStore
6       192.168.0.1                            00-0c-29-22-b5-5b    Permanent  ActiveStore

また、特定の IP アドレスに関する情報を取得する場合は、-IPAddress オプションを使用します。

Get-NetNeighbor -IPAddress 192.168.0.1

このコマンドを実行すると、IP アドレス 192.168.0.1 に関する近隣情報が表示されます。

ifIndex IPAddress                              LinkLayerAddress      State       PolicyStore
------- ---------                              ----------------      -----       -----------
6       192.168.0.1                            00-0c-29-22-b5-5b    Permanent  ActiveStore

さらに、インターフェースのエイリアスを指定して情報を取得する場合は、-InterfaceAlias オプションを使用します。

Get-NetNeighbor -InterfaceAlias "イーサネット"
このコマンドを実行すると、イーサネットに関する近隣情報が表示されます。

Resolve-DnsNameの使用例

Resolve-DnsName コマンドレットを使用して example.com の A レコードを解決する例です。

Resolve-DnsName example.com

このコマンドを実行すると、example.com の A レコードの情報が表示されます。

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
example.com                                    A      3600  Answer     93.184.216.34

また、特定の DNS サーバーを使用して問い合わせる場合は、-Server オプションを使用します。

Resolve-DnsName example.com -Server 8.8.8.8

このコマンドを実行すると、Google Public DNS を使用して example.com の A レコードの情報が表示されます。

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
example.com                                    A      3515  Answer     93.184.216.34

さらに、すべての DNS レコードを表示する場合は、-AllRecords オプションを使用します。

Resolve-DnsName example.com -AllRecords

このコマンドを実行すると、example.com のすべての DNS レコードの情報が表示されます。

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7