Дистанционная работа в компаниях все больше становится распространённой в последнее время. Системным администраторам нужно организовывать на домашних компьютерах пользователей подключение по VPN к сети компании. Время настройки занимает от 10 минут и это если все пойдет гладко, пользователь сообразит как скачать Any Desk или какой другой клиент для удаленного подключения, потом факт стабильного интернета играет роль, ну и конечно же настройка самого VPN подключения — вбиваем адрес, метод шифрования, логин, пароль, ключ.
А если пользователей 10 и более? Это уже нужно потратить больше времени, а если им всем нужно утром срочно все настроить? Тут немного подумав, я решил написать достаточно простой, но в то же время полезный скрипт на Power Shell а потом упаковал его в файлик .exe.
Прошу строго не судить, надеюсь материал кому-нибудь пригодится.
Процесс создания скрипта с комментариями:
Повышаем привилегии до администратора:
if (!(net session)) {$path = "& '" + $myinvocation.mycommand.definition + "'" ; Start-Process powershell -Verb runAs -ArgumentList $path ; exit}
Разрешаем выполнения скриптов:
Set-ExecutionPolicy Unrestricted -Force
Установить переменные для VPN-подключения:
# Имя подключения $VPNconnectionSSTP = "VPN_SSTP" $VPNconnectionL2TP = "VPN_L2TP" # тип подключения $VPNtypeSSTP = "sstp" $VPNtypeL2TP ="l2tp" # ip адрес или доменное имя $SRVaddressSSTP = "ip_addr" $SRVaddressL2TP = "ip_addr" # DNS суффикс $dnssuf = "domain.local" # ключ l2tp $l2tp_key = "ключ" # метод аутентификации $auth_method = "MSChapv2" # сертификат .cer открываем через блокнот и копируем от начала до конца $vpn_cert = "-----BEGIN CERTIFICATE----- сам сертификат (скопировать содержимое открыв его через текстовый редактор) -----END CERTIFICATE-----"
Сохраняем сертификат в директории пользователя:
$vpn_cert | Out-File -FilePath "$env:HOMEPATH\vpn_cert.cer" -Encoding utf8
Создаем SSTP-соединения SSTP и L2TP соответственно:
Add-VpnConnection -Name $VPNconnectionSSTP -ServerAddress $SRVaddressSSTP -TunnelType $VPNtypeSSTP -AuthenticationMethod $auth_method -EncryptionLevel "Optional" -DnsSuffix $dnssuf -SplitTunneling -IdleDisconnectSeconds 900 -RememberCredential Add-VpnConnection -Name $VPNconnectionL2TP -ServerAddress $SRVaddressL2TP -TunnelType $VPNtypeL2TP -AuthenticationMethod $auth_method -L2tpPsk $l2tp_key -EncryptionLevel "Optional" -DnsSuffix $dnssuf -SplitTunneling -IdleDisconnectSeconds 900 -RememberCredential
Устанавливаем сертификат в доверенные корневые сертификаты пользователя:
certutil -f -addstore root "$env:HOMEPATH\vpn_cert.cer"
Возвращаем политику выполнения скриптов по умолчанию
Set-ExecutionPolicy Default –Force
Все! Скрипт готов. Сохраняем его с расширением .PS1
Также можем сделать из него EXE файлик для удобства.
ссылка на оригинал статьи https://habr.com/ru/post/709552/
Добавить комментарий