【问题标题】:PowerShell v5.1 test network portPowerShell v5.1 测试网口
【发布时间】:2017-01-14 01:13:03
【问题描述】:

我想在 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?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    由于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"
    }
    

    【讨论】:

    • 这个也很有用。谢谢!
    • @indyodie,您可以为您喜欢的答案投票,然后选择一个接受(选票附近的绿色复选标记)。
    • 我在两个答案上都按下了向上箭头,但计数没有改变。不确定我做得对,但我正在再试一次。谢谢大家。
    【解决方案2】:

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

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

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

    Test-NetConnection not available in Win7Test-NetConnection使用Win7的答案。

    谢谢,蒂姆。

    【讨论】:

    • 谢谢!我一定已经用谷歌搜索了一个小时,但找不到链接。非常有帮助,谢谢。
    • 很高兴我们可以帮助@indyodie
    猜你喜欢
    • 2016-10-02
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    相关资源
    最近更新 更多