У меня сервер openvpn, работающий на хосте windows 10. Конфигурация сервера openvpn имеет параметр -auth-user-pass-verify, который позволяет указать сценарий, который получит имя пользователя и пароль для входа в виде временного файла.
В файле .bat I запишите имя пользователя и передайте его следующим образом:
set /A count=0
for /F "tokens=*" %%A in (%~1) do (
if !count!==1 (
set password=%%A
set /A count=2
)
if !count!==0 (
set username=%%A
set /A count=1
)
)
Эта часть работает и проверяется как при запуске сценария мной, так и при вызове openvpn. Затем я вызываю внешний .exe-файл для проверки пароля.
for /f %%i in ('c:\"Program Files"\OpenVPN\config\foo\foo.exe %password%') do set RESULT=%%i
Теперь эта последняя часть работает, когда я сама вызываю .bat из командной строки, но она не работает, когда .bat запускается openvpn - ничего не написано "РЕЗУЛЬТАТ". Я даже не знаю, если exe вызывается вообще.
Я пробовал сервер openvpn с правами администратора. Я пробовал --script-security 2 и 3. В документации OpenVPN говорится, что он называет сценарий «командой оболочки» для того, чего он стоит.