[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】ポート確認を Test-NetConnection コマンドレットで行うサンプル



更新日:2022/03/13


ポート確認を行う


TCP/IPを装備した機器からネットワーク経由でTCP/IP機器に接続しようとした場合、どうしても接続できない場合があると思います。
ログインできないのではなく、そもそもネットワーク的に接続できないということです。

そのような場合は古くは telnet コマンドでチェックすることが可能でした。

例えば Webサーバ (10.0.0.1) へ HTTPS (443) 接続を確認するには以下のコマンドを使用します。

telnet 10.0.0.1 443



但しWindows 10 ではデフォルトでは telnet クライアント(telnet.exe) はインストールされていません。別途追加する必要があります。

参考:
telnet クライアント (telnet.exe) を導入する方法

しかしPowershell の Test-NetConnection コマンドレットを使用すればtelnet なしでも確認が可能です。

ポート確認をTest-NetConnectionコマンドレットで行う


Powershell の Test-NetConnectionコマンドレットでポート確認を行う方法を紹介します。

例えば Webサーバ (10.0.0.1) へ HTTPS (443) 接続を確認するには以下のコマンドを使用します。
Powershell から実行しています。

PS C:\> Test-NetConnection 10.0.0.1 -Port 443 ComputerName : 10.0.0.1
RemoteAddress : 10.0.0.1
RemotePort : 443
InterfaceAlias : Wi-Fi
SourceAddress : 10.0.0.100
TcpTestSucceeded : True



TcpTestSucceeded が True の場合は物理的にTCPレベルではネットワークは接続されているようです。要するにオープンしている指定した番号のポートに接続可能ということです。
TcpTestSucceeded が False の場合は TCP レベルで接続できないようです。 この場合は以下のケースが考えられます。

・ポートが開いていない。
・ネットワークの経路で接続できていない。


もしコマンドプロンプトから実行する場合は以下コマンドを実行します。

C:\>powershell Test-NetConnection 10.0.0.1 -Port 443



リモートデスクトップでリモートデスクトップサーバに接続できない場合は以下コマンドで確認します。(RDPのポートは3389)

PS C:\> Test-NetConnection 10.0.0.1 -port 3389



もし TcpTestSucceeded : True と表示されれば10.0.0.1 でリモートデスクトップのポートは開いていることとなります。
開いているのとログイン可能ということは全く別物です。別途認証を受けてログインして初めて使えるようになります。


SSH サーバの場合はポート22で確認します。

PS C:\> Test-NetConnection 10.0.0.1 -port 22




FTPの場合はポート21で確認します。

PS C:\> Test-NetConnection 10.0.0.1 -port 21



参考:
Test-NetConnection(Microsoftサイト)






[Powershell FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018