Назад | Перейти на главную страницу

Как подключить домашний диск пользователя Samba через VPN?

Добрый вечер,

Я не уверен, возможно ли то, что я пытаюсь сделать, но я решил, что поставлю вопрос там - на случай, если кто-то, возможно, уже пробовал это и добился успеха.

Я сейчас тестирую 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)