
こんばんは、
私がやろうとしていることが実現可能かどうかはわかりませんが、誰かがすでにこれを試して成功しているかもしれないので、質問をしてみることにしました。
モバイル ワーカー向けの 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)