PowerShell v5.1 测试网络端口



我想检查端口是否在Windows 7上使用PowerShell v5.1打开。

在我的装有PowerShell v5.1的Windows 10笔记本电脑上,我可以使用

Test-NetConnection -ComputerName <IP> -Port <Port>

但是,在我的 Windows 7 笔记本电脑上找不到Test-NetConnection cmdlet。我有Test-Connection可用,但该 cmdlet 不允许我指定端口。

有没有办法在带有PowerShell 5.1的Windows 7上测试网络端口是否打开?如何取回Test-NetConnection cmdlet?

由于System.Net.Sockets.TcpClient端口未打开时似乎会抛出错误,因此我宁愿在此处使用try/catch

$ip = "127.0.0.1"
$port = "80"
try {
    $socket = New-Object System.Net.Sockets.TcpClient($ip, $port)
    if($socket.Connected) {
        "success"
        $socket.Close()
    }
} catch {
    "error"
}

这有点麻烦,但可以做到。ScriptingGuy 在这里做到了。他还在开始时添加了 ping 扫描。

下面的删减版本。如果您不想使用变量,只需手动输入 IP 和端口即可。

$socket = New-Object System.Net.Sockets.TcpClient($ip, $port)
if($socket.Connected) {
    "$ip listening to port $port"
    $socket.Close()
}

测试网络连接在 Win7 中不可用有使用 Win7 Test-NetConnection的答案。

谢谢,蒂姆。

最新更新