Я довольно много поискал, но мне нужна помощь в запуске скриптов на клиентах, когда они подключаются. Конечная цель для клиентов Windows - подключить некоторые диски при подключении и отключить диски при отключении. Сервер OpenVPN - это экземпляр Amazon Marketplace, и у меня есть доступ к консоли через putty / sftp. Клиенты могут успешно подключаться с использованием двухфакторной аутентификации и получать свой правильный IP-адрес / маршрутизацию.
Я попытался разместить несколько скриптов в Group Permissions> Client Scripting следующим образом:
А скрипт up.sh просто следующий.
net use Z: "\\server.domain.com\Share" /user:domain\username P@ssw0rd
В файле up.sh есть:
-rwxrwxrwx 1 root root 70 Jan 23 15:45 up.sh
Разрешения на каталог / etc / openvpn:
drwxr-xr-x 2 root root 4096 Jan 23 15:45 openvpn
Итак, в качестве теста я ожидаю увидеть что-то в клиентских журналах, найденных здесь, на клиенте:
c: \ program files (x86) \ OpenVPN Technologies \ OpenVPN Client \ etc \ log \ capi.log
Когда клиент подключается, появляется следующее всплывающее сообщение:
После нажатия кнопки Да ничего не происходит, и в журнале клиента отображается следующее:
2018-01-23 15:58:14-0800 [-] user_connect-PP ERR: "'--script-security' is not recognized as an internal or external command,\r"
2018-01-23 15:58:14-0800 [-] user_connect-PP ERR: 'operable program or batch file.\r'
2018-01-23 15:58:14-0800 [-] user_connect-PP ERR: "'--client-connect' is not recognized as an internal or external command,\r"
2018-01-23 15:58:14-0800 [-] user_connect-PP ERR: 'operable program or batch file.\r'
Если я уберу два дефиса (-) перед каждой строкой скрипта, ошибки клиента в журнале останутся прежними.
Спасибо за любой вклад!
Интерпретатор сценариев по умолчанию для OpenVPN в Windows - cmd.exe. Измените клиентский скрипт, включив только net use Z: "\\server.domain.com\Share" /user:domain\username "P@ssw0rd"
или другие соответствующие cmd команды, и все будет в порядке.
@JasonC также обнаружил, что пароль необходимо указывать.
Изменить: если вы хотите, чтобы конечный пользователь вводил пароль, используйте вместо этого что-то вроде этого:
powershell New-PSDrive -Name "Z" -PSProvider "FileSystem" -Root "\\Server\Share" -Persist -Credential (Get-Credential)