我正在使用powershell拨号程序来调用一些VPN工具。
一步是为用户选择用于建立连接的设备。在此步骤中,我正在搜索如何测试VPN网关,因为如果此测试不起作用,这意味着用户可能会遇到连接问题,例如强制网络门户(如果他尝试从酒店连接)。因此,如果此测试失败,则无需进一步。
我试过这个:
$ip ="x.x.x.x"
if(Test-Connection -computername $ip -count 1 -quiet){
write-host "gateway is accessible"
}
问题是:连接正常,VPN也是(如果我尝试连接),但我没有收到此脚本的响应。也许这不是测试它的正确方法。
配置:Win 7 / Powershell 4
答案 0 :(得分:0)
您需要拥有某种强制门户测试Web服务。正如你所说,Test-Connection无法处理强制门户网站之类的东西,它只是看网络接口状态。
通常,您有一个具有预期输出的固定网址。例如,您使用URL mytestconnection / test设置Web服务器并输出OK
然后你在该URL上执行Invoke-WebRequest,如果它没有说好,则表示存在问题。
答案 1 :(得分:0)
我找到了this post
的解决方案使用这个:
if(New-Object System.Net.Sockets.TCPClient -ArgumentList '$iSERVER','$PORT') {...}
运作良好。