Como mapeio a unidade inicial de um usuário Samba via VPN?

Como mapeio a unidade inicial de um usuário Samba via VPN?

Boa noite,

Não tenho certeza se o que estou tentando fazer é possível ou não, mas resolvi colocar a questão lá fora - caso alguém já tenha tentado isso e obtido sucesso.

Estou testando o OpenVPN como uma possível solução VPN para nossos funcionários móveis. Gostaria de mapear duas unidades de rede - ambas sendo compartilhamentos do Samba. Um deles é um compartilhamento geral acessível simplesmente chamando \servername\sharename (com o qual não tenho problemas). A segunda é a unidade inicial do usuário.

Por usuário quero dizer o usuário cujas credenciais foram usadas para autenticar e criar o túnel VPN. Já tentei o seguinte em um arquivo em lote, mas não está funcionando:

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

Eu sei que no Samba posso usar a macro (%u) para representar o usuário logado, mas não sei como fazer isso em um arquivo em lote. É mesmo possível?

OBSERVAÇÃO: Eu sei que funciona se eu especificar o nome de usuário real, mas isso significa que terei que criar e distribuir um arquivo em lote separado para cada usuário (o que não me importo de fazer), mas se houver uma maneira de não fazer isso, eu faria gosto de explorá-lo.

Responder1

Uma opção é criar (mas não distribuir) um script de login separado para cada usuário com a opção Samba

logon script = %U.bat

Em arquivos .BAT o nome de usuário deve estar na variável% USERNAME%, então seu comando será

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

Uma alternativa é usar VBscript:

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

Ou PowerShell (mas deve estar instalado em seus clientes)

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

informação relacionada