Пишу скрипт на PowerShell 5.0 на создание VPN-соединения на клиентском пк.
По задумке скрипт работает таким образом:
1. Запускается bat-ник из под админа;
2. Bat-ник запускает файл скрипта в обход запрета на запуск сторонних скриптов;
3. Скрипт работает.
Суть багов:
1. Если создавать VPN-соединение ручками - IP меняется на казахский, как и положено, а если оно создаётся скриптом, то ничего не меняется;
2. данные пользователя берутся из .txt лежащего со скриптом в одной папке, внезапно скрипт перестал брать оттуда данные, так же не понимаю почему.
код скрипта:
<If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
$arguments = "& '" + $myinvocation.mycommand.definition + "'"
Start-Process powershell -Verb runAs -ArgumentList $arguments
Break
}
Add-VpnConnection -Name "VPN_Name" -ServerAddress "000.000.000.000" -TunnelType "L2tp" -L2tpPsk "SharedKey" -Force -EncryptionLevel "Optional" -AuthenticationMethod "MSChapv2" -SplitTunneling -RememberCredential -PassThru
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
Install-Module -Name VPNCredentialsHelper
$val = (get-content "C:\users\%username%\downloads\VPN_FullSetup\VPN_FullSetup.txt") -replace " : ","=" | ConvertFrom-StringData
$val.user
$val.plainpass
Set-VpnConnectionUserNamePassword -connectionname "VPN_Name" -username $val.user -password $val.plainpass
#Add-VpnConnectionRoute -Name "VPN_Name" -DestinationPrefix 192.168.10.0/24
#Add-VpnConnectionRoute -Name "VPN_Name" -DestinationPrefix 192.168.0.0/24
rasdial "VPN_Name"
#ping
#ping
Set-PSRepository -Name "PSGallery" -InstallationPolicy Restricted
NoExit
/code>