用powershell打开一个端口

mho*_*321 10 powershell port

Machine A我正在运行端口扫描仪.在Machine B我想在一个有组织的方式来打开和关闭端口.我希望通过powershell完成所有这些工作.

我发现这个脚本可以运行Machine B但是当从Machine A它扫描相同的端口时仍然说它已关闭.

你们中的任何人都知道如何成功打开一个端口 Machine B

Neo*_*isk 20

尽可能避免使用COM.您可以使用TcpListener打开端口:

$Listener = [System.Net.Sockets.TcpListener]9999;
$Listener.Start();
#wait, try connect from another PC etc.
$Listener.Stop();
Run Code Online (Sandbox Code Playgroud)

如果您Stop在调试期间碰巧错过了一个命令 - 只需关闭并重新打开您打开套接字的应用程序 - 应该清除挂起端口.就我而言PowerGUI script editor.

然后使用TcpClient进行检查.

(new-object Net.Sockets.TcpClient).Connect($host, $port)
Run Code Online (Sandbox Code Playgroud)

如果无法连接,则表示防火墙正在阻止它.

编辑:要在收到连接时打印消息,您应该能够使用此代码(基于MSDN上的这篇文章):

#put this code in between Start and Stop calls.
while($true) 
{
    $client = $Listener.AcceptTcpClient();
    Write-Host "Connected!";
    $client.Close();
}
Run Code Online (Sandbox Code Playgroud)

  • 也适用于 Linux (SLES 12 SP 3)。谢谢! (2认同)