运行 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"
至少您使用的示例是有效的。注意 Svr
和 Srv
.
之间的差异
我正在尝试在我的 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"
至少您使用的示例是有效的。注意 Svr
和 Srv
.