Windowsネットワークのトラブルシューティングに時にPowershellだけでもいろいろな事が実は確認できます。
中でもTest-NetConnectionコマンドレットは使い方を覚えておくと、役立つ場面があるため主要な機能を紹介します。
また実はTest-NetConnectionコマンドレットでICMPも送れる事は、意外と気づいていない人も多いのではないでしょうか。(ping 8.8.8.8等と半ば無意識で手が動く様な世代の人は特に。)
1. Test-NetConnectionコマンドレットとは
Test-NetConnectionコマンドレットは、Windows PowerShellで提供されるネットワーク診断ツールです。このコマンドレットを使用することで、特定のホスト名、IPアドレス、ポート番号に対して、ネットワーク接続の状態を確認することができます。
2. Test-NetConnectionコマンドレットの使い方
2-1. ホスト名またはIPアドレスの確認
ホスト名またはIPアドレスを確認するには、以下のようにコマンドを入力します。
Test-NetConnection <ホスト名またはIPアドレス>
例えば、google.comのIPアドレスを確認する場合は、以下のようにコマンドを入力します。
Test-NetConnection google.com
ポートを指定しないで、このようにやると次のような結果が得られ、pingも取り合えず打ってくれます。
PS C:\> Test-NetConnection google.com RemoteAddress : 142.251.222.46 InterfaceAlias : Wi-Fi SourceAddress : 192.168.1.5 PingSucceeded : True PingReplyDetails (RTT) : 5 ms
2-2. ポート番号を指定した疎通確認(TCP)
ポート番号を指定して疎通確認確認するには、以下のようにコマンドを入力します。
Test-NetConnection -Port <ポート番号> <ホスト名またはIPアドレス>
例えば、google.comの80番ポートに対して接続可能かどうかを確認する場合は、以下のようにコマンドを入力します。
Test-NetConnection -Port 80 google.com
2-3. 詳細情報の取得
最初のコマンドに「-InformationLevel Detailed」を加えると少しだけ詳しい情報が取れます。
Test-NetConnection <ホスト名またはIPアドレス> -InformationLevel Detailed
実行結果サンプルはこちら。名前解決の結果や、ルート情報を明示的に出してくれています。
PS C:\> Test-NetConnection google.com -InformationLevel Detailed ComputerName : google.com RemoteAddress : 172.217.26.238 NameResolutionResults : 172.217.26.238 InterfaceAlias : Wi-Fi SourceAddress : 192.168.1.5 NetRoute (NextHop) : 192.168.1.1 PingSucceeded : True PingReplyDetails (RTT) : 5 ms
ちなみにIPアドレスを指定して実施すると、次のようにDNS逆引きまでやってくれます。
PS C:\> Test-NetConnection 172.217.26.238 -InformationLevel Detailed ComputerName : 172.217.26.238 RemoteAddress : 172.217.26.238 NameResolutionResults : 172.217.26.238 bom05s09-in-f14.1e100.net nrt12s51-in-f14.1e100.net InterfaceAlias : Wi-Fi SourceAddress : 192.168.1.5 NetRoute (NextHop) : 192.168.1.1 PingSucceeded : True PingReplyDetails (RTT) : 5 ms
2-4. TraceRouteの実行
TraceRouteを実行するには、以下のようにコマンドを入力します。
Test-NetConnection -TraceRoute <ホスト名またはIPアドレス>
3. まとめ
Test-NetConnectionコマンドレットを使うことで、ホスト名、IPアドレス、ポート番号に関する情報やPingテスト、TraceRouteの結果を簡単に取得できるため、ネットワークの問題の解決に役立ちます。
個人的には(ping 8.8.8.8の方が早いので手作業時にはあまり役には立たないものの)Test-NetConnectionコマンドでICMPも打てるのはむしろ知らなかったので発見でした。
Powershellのコマンドレットだと戻り値がオブジェクトで取得できるのでスクリプト内でpingの結果を使ったり加工したりする場合は、こちらの方が適していそうです。
【参考】
"Test-NetConnection (Microsoft.PowerShell.Core)" - https://docs.microsoft.com/en-us/powershell/module/nettcpip/test-netconnection?view=windowsserver2019-ps
"Test-NetConnection: How to Use It and What It Does" by Steve Larner - https://www.howtogeek.com/355664/test-netconnection-how-to-use-it-and-what-it-does/
【キーワード】
Test-NetConnectionコマンドレット、Windows PowerShell、ネットワーク、トラブルシューティング、ホスト名、IPアドレス、ポート番号、Pingテスト、TraceRoute
0 件のコメント:
コメントを投稿