运行 Powershell 脚本中的 netstat

Running netstat from within Powershell script

我正在尝试在我的 Windows 7 笔记本电脑上监控 F5 VPN 客户端 运行ning 已建立连接。我设计了一个简单的 Powershell 脚本,该脚本将利用 "netstat" 命令来查找特定的字符串变量,该变量仅在建立连接时可用。我正计划使用 Microsoft 的任务计划程序每隔一段时间触发脚本以监视连接/字符串变量。

如果我运行在Powershellwindow下面的netstat命令,它returns的信息就好了:

    PS C:\tmp> $c = netstat -ban | select-string "F5FltSrv"; $c.count
    9

但如果我 运行 在 Powershell 脚本中使用类似的运算符和变量,它会一直返回“0”(零),因此它会失败。

这是我正在使用的实际 Powershell 脚本:

    $VPN = netstat -ban | select-string "F5FltSvr"

    Write-Host "DEBUG: " $VPN.count

    if($VPN.count -gt 7) {
    Write-Host "F5 VPN Session is enabled." -b Green
    exit
    }
    else {
    Write-Host "F5 VPN Session is down!" -b Red -f Yellow
    }

执行时

    PS C:\tmp> .\F5_VPN_Check.ps1
    0
    F5 VPN Session is down!

谁能告诉我脚本哪里有问题? Powershell window 是 运行 管理员权限并且 UAC 已关闭。

会不会是打错了?而不是这个:

$VPN = netstat -ban | select-string "F5FltSvr"

你想要这个:

$VPN = netstat -ban | select-string "F5FltSrv"

至少您使用的示例是有效的。注意 SvrSrv.

之间的差异