PowerShell のポートでリッスンする
このチュートリアルでは、PowerShell でポートをリッスンする方法を示します。
ポートでリッスンする PowerShell
ポートでのリッスンは、PowerShell と段階的なコマンドを使用して実現できます。 PowerShell で [System.Net.Sockets.TcpListener]Port
コマンドを使用してリスナーを初期化できます。
PowerShell を使用してポートでリッスンするには、次の手順に従います。
-
まず、管理者として PowerShell を開く必要があります。 [スタート] メニューで
PowerShell
を検索し、PowerShell アイコンを右クリックして、[管理者として実行] をクリックします。システムが許可を求める場合があります。
はい
をクリックします。 -
次のステップで PowerShell スクリプトを作成します。 次のコマンドを実行します。
New-Item 'C:\Users\Sheeraz\DemoTCPServer.ps1' -type file
上記のコマンドは、パス
C:\Users\Sheeraz
にDemoTCPServer.ps1
という名前の PowerShell ファイルを作成します。 出力を参照してください。Directory: C:\Users\Sheeraz Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 11/3/2022 4:02 PM 0 DemoTCPServer.ps1
-
ファイルが作成されたら、次のステップはスクリプトの編集です。 次のコマンドを実行します。
ise C:\Users\Sheeraz\DemoTCPServer.ps1
上記のコマンドは、PowerShell ISE でファイル
DemoTCPServer.ps1
を編集します。 -
DemoTCPServer.ps1
スクリプトの段階的なプロセスに従います。-
まず、ポート、テキスト ファイル、およびサーバー バナーの変数を初期化します。
-
次に、指定されたポートにエンドポイントを作成します。
-
次に、
New-Object System.Net.Sockets.TcpListener $DemoEndpoint
コマンドを使用して、リスナーを持つ TCP ポートを作成します。 これは、ポートでリッスンするのに役立ちます。 -
TCP ポートを開始します。
-
TCP ポートが TCP クライアントを受け入れることを許可します。
-
TCP クライアントのストリームを作成します。
-
次に、ストリームを使用してライターを作成します。
-
バナーを使用して行を書き込み、ライターをフラッシュします。
-
ここで、ポートでリッスンするストリームを読み取るためのバッファを作成します。
-
ループを使用して、ストリームの各行を読み取ります。
-
ポートでリッスンを実行し、バッファ、ストリーム、および TCP クライアントを破棄します。
-
最後に、TCP ポートを停止します。 これらの手順を PowerShell スクリプト
DemoTCPServer.ps1
に実装しましょう。
```powershell $DemoPort = 8080 $DemoFile = 'C:\Users\Sheeraz\demo.txt' $DemoBanner = "Connection: OK" $DemoEndpoint = New-Object System.Net.IPEndPoint([IPAddress]::Any,$DemoPort) $DemoTCPPort = New-Object System.Net.Sockets.TcpListener $DemoEndpoint $DemoTCPPort.Start() Write-Output "The TCP Port $DemoPort is Open Now" $AcceptIngTcp = $DemoTCPPort.AcceptTcpClient() $Stream = $AcceptIngTcp.GetStream() $DemoWriter = New-Object System.IO.StreamWriter($Stream) $DemoBanner | % { $DemoWriter.WriteLine($_) $DemoWriter.Flush() } while($true) { $DemoBuffer = New-Object System.IO.StreamReader $Stream $DEMOLINE = $DemoBuffer.ReadLine() if ($DEMOLINE -eq "quit") { break } else { $DEMOLINE $DEMOLINE | Out-File $DemoFile -Append } } $DemoBuffer.Dispose() $Stream.Dispose() $AcceptIngTcp.Dispose() $DemoTCPPort.Stop() Write-Output "The TCP Port $DemoPort is Closed" ```
-
スクリプトが作成されたら、保存します。 今度はスクリプトを実行して、リッスン オン ポート操作で TCP ポートを作成します。 次のコマンドを実行します。
PowerShell.exe -ExecutionPolicy Bypass -File C:\Users\Sheeraz\DemoTCPServer.ps1
上記のコマンドは、TCP ポートを開始し、ポートをリッスンします。 コマンドの出力は次のとおりです。
The TCP Port 8080 is Open Now
-
リモート コンピューターの TCP ポートに接続するには、cmd で次の
telnet
コマンドを実行します。 まず、telnet
サービスが有効になっていることを確認します。これは、コントロール パネル
>プログラム
>Windows の機能の有効化または無効化
から確認できます。次のコマンドを参照してください。
telnet 10.10.10.10 8080
-
ここ からダウンロードできる
PuTTY
のようなtelnet
クライアント アプリケーションを使用することもできます。 接続タイプでその他
とTelnet
を選択することを忘れないでください。以下のスクリーンショットを参照してください。
-
IP とポートを挿入し、[開く] をクリックします。
-
これで、このターミナルを使用して、接続を介してデータを送信し、ポートでリッスンできます。 例えば:
This is PowerShell Listen on Port Test
-
上記で送信されたデータは、
'C:\Users\Sheeraz\demo.txt'
というファイルに保存されます。これは、ポートでのリッスンが実行されることを意味します。 -
最後に、TCP 接続を閉じるには、
quit
コマンドを実行します。
-
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook