Я подумал пусть лучше они сидят за NAT так безопасней.
А вот клиент немного исправил.
1) решил проблему с запросами повышения прав и т.ж (мб не совсем корректно так делать, но пока лучше не придумал)
Сделал клиент+контроллер обновлений.
Все это дело помещаю в архив SFX Задаю ему инструкции запуск с правами администратора и распаковку в Program Files + ярлык контроллера обновлений в автозагрузки, и после распаковки архив запускает контроллер обнов.
Кидаю архив пользователю, он его запускает. Так как запуск требует прав админа то и после распаковки и автоматического старта "Контроллера обновлений" он имеет права администратора.
2)А уже в контроллере обновлений заложена следующая функция.
он скриптами PS твори вот что
Скрипт PowerShell
echo 'Отключаем брандмаэр'
Set-NetFirewallProfile -All -Enabled False
echo 'Отключаем защиту'
Set-ItemProperty -Path "HKLM:Software\Microsoft\Windows\CurrentVersion\policies\system" -Name "EnableLUA" -Type DWORD -Value 0 –Force
echo 'Создаем запись для обхода NAT'
Set-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Services\PolicyAgent" -Name "AssumeUDPEncapsulationContextOnSendRule" -Type DWORD -Value 2 –Force
echo 'Проверяем обновления'
Таки образом мы отключаем запросы админа ну и по путно сразу всё что нам мешает.
Потом он проверяет обновления "Подключается к FTP, проверяет наличие файла на локальном компьютере и сравнивает с датой последнего создания"
Если всё хорошо, просто запускает Client
3)
Теперь самое интересное..
После того как пользователь перезагрузит компьютер, наш "Контроллер обновлений который в автозагрузках" вновь проверить обновления и запустить Client
И теперь мы имеем полные права и можем приступать к созданию VPN + подключиться к VPN + Добавить компьютер в домен..
А проблемы с одним внешним ip на двоих решил так, Клиент мониторит статус подключения к VPN пока он не активно, клиент стучится на удалённый ip(Домен), как только он подключается к VPN он начинает стучаться на локальный ip