こんにちは、Windows インフラエンジニア ばにゃです。
本記事では、PowerShellを使用して指定ポートが空いているか疎通確認をする方法について解説します。
結論として、Test-NetConnection コマンドを実行することで確認可能です。
Test-NetConnection <接続先の端末> -Port <ポート番号>
もしくは Test-NetConnection の省略形である TNC コマンドでも確認可能です。
tnc <接続先の端末> -Port <ポート番号>
もう少し詳細について知りたい方は以降に記載する内容も確認してください。
前提となる環境
本記事では、以下のような環境を例として記載します。この環境で私自身が実機動作確認済みの手順となります。
- Windows 10
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
- Windows 10
- Windows 8.1
Test-NetConnection コマンド
ポートの疎通確認を行なう方法
接続先端末のIPアドレスが 10.0.0.1、確認したいポートが 22 の場合、PowerShellより実行するコマンドは以下の通りです。
Test-NetConnection 10.0.0.1 -Port 22
ポートが開いているかどうかは、実行結果の TcpTestSucceeded の値を確認します。True ならば開いている、False ならば開いていないと判断します。
指定ポートが開いている場合、以下のような結果が返ってきます。
ComputerName : 10.0.0.1
RemoteAddress : 10.0.0.1
RemotePort : 22
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.1.1
TcpTestSucceeded : True
指定ポートが開いていない場合、以下のような結果が返ってきます。
ComputerName : 10.0.0.1
RemoteAddress : 10.0.0.1
RemotePort : 22
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.1.1
PingSucceeded : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : False
True or False のみを返す
以下のように -InformationLevel Quiet を付けて実行します。
Test-NetConnection 10.0.0.1 -Port 22 -InformationLevel Quiet
この場合、結果として Ture or Flase のみが返ってきます。
SMB / HTTP / RDP / WINRM ポートを確認
SMB (445) / HTTP (80) / RDP (3389) / WINRM (5985) のポートが開いているかを確認したい場合は、以下のようなコマンドでも可能です。
Test-NetConnection 10.0.0.1 -CommonTCPPort SMB
Test-NetConnection 10.0.0.1 -CommonTCPPort HTTP
Test-NetConnection 10.0.0.1 -CommonTCPPort RDP
Test-NetConnection 10.0.0.1 -CommonTCPPort WINRM
Googleに対してポート443が開いているかを確認
試しに google.co.jp に対して ポート443が開いているのかを確認してみます。
Test-NetConnection google.co.jp -Port 443
ComputerName : google.co.jp
RemoteAddress : xxx.xxx.xxx.xxx
RemotePort : 443
InterfaceAlias : Wi-Fi
SourceAddress : xxx.xxx.xxx.xxx
TcpTestSucceeded : True
結果は True、ポート443は開いています。
参考情報
Microsoft ドキュメント
Test-NetConnection コマンドについては、Microsoft の以下サイトも参考にしてください。
- Test-NetConnection (NetTCPIP)
https://docs.microsoft.com/en-us/powershell/module/nettcpip/test-netconnection?view=win10-ps
関連書籍
PowerShell 6.0 まで対応している PowerShell 関連の書籍です。現状で 6.0 まで対応している数少ない書籍のため、PowerShell の学習におすすめです。
コメント