пятница, 6 мая 2016 г.

PowerShell VPN connection in Windows

Задача: обеспечить автоматический запуск windows-based VPN соединения при входе пользователя( а также контроль его работоспособности).
Решение:


создаём PS-скрипт
$ip = "10.10.10.10"
$result = gwmi -query "SELECT * FROM Win32_PingStatus WHERE Address = '$ip'"
if ($result.StatusCode -eq 0) {
    Write-Host "$ip is up."
}
else{
    Write-Host "$ip is down."
    Write-Host "Disconnecting..."
    rasdial.exe MY-VPN-CONNECTION /DISCONNECT
    Write-Host "Connecting..."
    rasdial.exe MY-VPN-CONNECTION DOMAIN\vpnUsername vpnPassword12345
}
и ставим его в планировщик с триггером "выполнение при входе в систему" и перезапуском через N минут...

PS не забываем разрешить Set-ExecutionPolicy Unrestricted...