Windows

如何通過 VPN 映射 Samba 使用者的主驅動器?

  • September 14, 2013

晚上好,

我不確定我正在嘗試做的事情是否可能,但我想我會把問題放在那裡 - 以防有人可能已經嘗試過並且成功了。

我正在測試 OpenVPN 作為我們的移動員工可能的 VPN 解決方案。我想映射兩個網路驅動器 - 都是 Samba 共享。一種是普通共享,只需呼叫 \servername\sharename 即可訪問(我對此沒有任何問題)。第二個是使用者的家庭驅動器。

我所說的使用者是指使用憑據進行身份驗證和創建 VPN 隧道的使用者。我已經在批處理文件中嘗試了以下操作,但它不起作用:

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

我知道在 Samba 中我可以使用宏 (%u) 來表示已登錄的使用者,但我不確定如何在批處理文件中執行此操作。甚至可能嗎?

注意: 我知道如果我指定實際的使用者名它會起作用,但這意味著我必須為每個使用者創建和分發一個單獨的批處理文件(我不介意這樣做)但是如果有辦法不這樣做,我想探索一下。

一種選擇是使用 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)

引用自:https://serverfault.com/questions/538857