我想检查端口是否在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
的答案。
谢谢,蒂姆。