Открытие порта с помощью powershell

On Machine A Я запускаю сканер портов. On Machine B Я хотел бы открыть и закрыть порты организованным образом. Я надеюсь сделать все это с помощью PowerShell.

нашел этой скрипт для запуска на Machine B однако при сканировании того же порта из Machine A Он все еще говорит, что он закрыт.

кто-нибудь знает, как я могу успешно открыть порт на Machine B

1 ответов


избегайте COM, Если это возможно. Вы можете использовать TcpListener открыть порт:

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

если вы пропустили Stop команда во время отладки - просто закройте и повторно откройте приложение, из которого вы открыли сокет-подвесной порт должен быть очищен. В моем случае это было PowerGUI script editor.

затем использовать TcpClient чтобы проверить его.

(new-object Net.Sockets.TcpClient).Connect($host, $port)

если вы не можете подключиться, означает, что брандмауэр блокирует он.

EDIT: чтобы распечатать сообщение при получении соединения, вы должны иметь возможность использовать этот код (на основе эта статья из MSDN):

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