OpenVPN 客户端映射驱动器脚本

OpenVPN 客户端映射驱动器脚本

我已经搜索了很多,但需要帮助在客户端连接时运行脚本。最终目标是让 Windows 客户端在连接时映射一些驱动器,并在断开连接时断开驱动器。OpenVPN 服务器是一个 Amazon Marketplace 实例,我可以通过 putty/sftp 访问控制台。客户端能够成功使用 2 Factor Auth 连接并获取正确的 IP/路由。

我尝试将一些脚本放入组权限>客户端脚本中,如下所示:

OpenVPN Windows 用户连接脚本

脚本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 文件(x86)\OpenVPN Technologies\OpenVPN Client\etc\log\capi.log

当客户端连接时会出现以下弹出消息:

OpenVPN 警告

单击“是”后,什么也没有发生,并且客户端日志包含以下内容:

    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'

如果我删除每个脚本行前面的两个破折号(--),则日志中的客户端错误就没有区别了。

谢谢大家的意见!

答案1

Windows 上 OpenVPN 的默认脚本解释器是 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)

相关内容