如何通过 VPN 映射 Samba 用户的主驱动器?

如何通过 VPN 映射 Samba 用户的主驱动器?

晚上好,

我不确定我尝试做的事情是否可行,但我认为我应该提出这个问题 - 以防有人已经尝试过并且成功了。

我正在测试 OpenVPN 作为我们移动员工的可能 VPN 解决方案。我想映射两个网络驱动器 - 均为 Samba 共享。一个是只需调用 \servername\sharename 即可访问的通用共享(我对此没有问题)。第二个是用户的主驱动器。

我所说的用户是指使用凭证进行身份验证和创建 VPN 隧道的用户。我已经在批处理文件中尝试了以下操作,但没有成功:

net use u: \\172.23.6.127\%U /persistent:no

我知道在 Samba 中我可以使用宏 (%u) 来表示登录用户,但我不确定如何在批处理文件中执行此操作。这可能吗?

笔记: 我知道如果我指定实际的用户名它就会起作用,但这意味着我必须为每个用户创建并分发一个单独的批处理文件(我不介意这样做)但如果有办法不这样做,我想探索它。

答案1

一个选项是使用 Samba 选项为每个用户创建(但不分发)单独的登录脚本

logon script = %U.bat

在 .BAT 文件中,用户名应该位于 %USERNAME% 变量中,因此您的命令将是

net use u: \\172.23.6.127\%USERNAME% /persistent:no

另一种方法是使用 VBscript:

Set wshNetwork = CreateObject("WScript.Network")
wshNetwork.MapNetworkDrive "u:", "\\172.23.6.127\" & wshNetwork.UserName

或者 PowerShell(但必须安装在您的客户端上)

$STRusername = "username" 
$username = (get-item env:$STRusername).Value 
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("u:", "\\172.23.6.127\" + $username)

相关内容