我正在尝试监控在其建立连接时在我的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已关闭。
答案 0 :(得分:1)
这可能是拼写错误吗?而不是:
$VPN = netstat -ban | select-string "F5FltSvr"
你想要这个:
$VPN = netstat -ban | select-string "F5FltSrv"
至少那是你用过的例子。请注意Svr
和Srv
之间的差异。