在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)