Samba ユーザーのホーム ドライブを VPN 経由でマップするにはどうすればよいですか?

Samba ユーザーのホーム ドライブを VPN 経由でマップするにはどうすればよいですか?

こんばんは、

私がやろうとしていることが実現可能かどうかはわかりませんが、誰かがすでにこれを試して成功しているかもしれないので、質問をしてみることにしました。

モバイル ワーカー向けの VPN ソリューションとして OpenVPN をテスト中です。2 つのネットワーク ドライブをマップします。どちらも Samba 共有です。1 つは、\servername\sharename を呼び出すだけでアクセスできる一般的な共有です (問題ありません)。2 つ目はユーザーのホーム ドライブです。

ここで言うユーザーとは、認証と VPN トンネルの作成に資格情報が使用されたユーザーを指します。バッチ ファイルで次の操作をすでに試みましたが、機能しません。

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

Samba ではマクロ (%u) を使用してログオンしたユーザーを表すことができることは知っていますが、バッチ ファイルでこれを行う方法がわかりません。それは可能ですか?

注記: 実際のユーザー名を指定すれば機能することはわかっていますが、それは各ユーザーごとに個別のバッチ ファイルを作成して配布する必要があることを意味します (これは構いません)。ただし、そうしない方法があれば、それを検討したいと思います。

答え1

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)

関連情報