Пакетный скрипт (.bat), вызываемый процессом openvpn, не может успешно передать аргументы во внешний .exe - PullRequest
0 голосов
/ 22 марта 2020

У меня сервер 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 говорится, что он называет сценарий «командой оболочки» для того, чего он стоит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...