Открытие порта с помощью 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();
}