从Powershell脚本中运行netstat

时间:2015-07-10 00:25:01

标签: powershell powershell-v4.0

我正在尝试监控在其建立连接时在我的Windows 7笔记本电脑上运行的F5 VPN客户端。我设计了一个简单的Powershell脚本,该脚本利用“netstat”命令查找仅在建立连接时可用的某个字符串变量。我计划使用Microsoft的Task Scheduler来经常触发脚本来监视连接/字符串变量。

如果我在Powershell窗口中运行以下netstat命令,它会返回正确的信息:

    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窗口正在运行管理员权限并且UAC已关闭。

1 个答案:

答案 0 :(得分:1)

这可能是拼写错误吗?而不是:

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

你想要这个:

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

至少那是你用过的例子。请注意SvrSrv之间的差异。