.bat スクリプトを使用してマップされたドライブ名を上書きしますか?

.bat スクリプトを使用してマップされたドライブ名を上書きしますか?

次のバッチ スクリプトは、ユーザー向けにいくつかのドライブを正常にマッピングします。

@echo off
net use * /delete /yes
net use x: \\192.168.1.52\xrays
net use s: \\192.168.1.52\common
net use p: \\192.168.1.52\public
net use o: \\192.168.1.52\office
net use y: \\192.168.1.52\drives
EXIT

マップされたドライブの名前は、共有名自体から取得されます。ただし、その名前をユーザーにとってより便利なものに上書きできれば非常に便利です。

私は、net use コマンドの例を含む多数のドキュメントをオンラインで調べましたが、資格情報などのオプションしか表示されず、名前付けに関するオプションは表示されませんでした。

このスクリプトは、Windows XP および Windows 7 ワークステーションで実行されています。

ご協力いただければ幸いです。

答え1

VBScript を使用せずにコマンド ラインからこれを行う方法があります。reg addコマンドを使用してレジストリを編集できます。私見では、この方法は、ラベルをドライブ文字に関連付けるのではなく、ラベルを共有に関連付けるため、VBScript を使用してラベルを変更するよりも優れています。したがって、エンド ユーザーが後で切断しX:xrays共有を手動でマウントしてドライブを指定するとR:、ラベルは引き続き正しく表示されます (スクリプトで割り当てたもの)。

書き込むキーのHKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\サブキーは、すべてのバックスラッシュがポンド記号 (#) に置き換えられた共有パスになります。

注記: スペース (またはポンド記号) が含まれる共有名をどのように処理するかについてはまだテストしていません。

@echo off

net use * /delete /yes

:: Set the label in the registry
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##192.168.1.52#xrays /v _LabelFromReg /t REG_SZ /f /d "X-Rays"
:: Map the drive
net use x: \\192.168.1.52\xrays

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##192.168.1.52#common /v _LabelFromReg /t REG_SZ /f /d "Common"
net use s: \\192.168.1.52\common

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##192.168.1.52#public /v _LabelFromReg /t REG_SZ /f /d "Public"
net use p: \\192.168.1.52\public

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##192.168.1.52#office /v _LabelFromReg /t REG_SZ /f /d "Office"
net use o: \\192.168.1.52\office

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##192.168.1.52#drives /v _LabelFromReg /t REG_SZ /f /d "Drives"
net use y: \\192.168.1.52\drives

EXIT

答え2

コマンドのみを使用してこれを行う方法はありませんnet useドキュメンテーション) ですが、computerperformance.co.uk の Guy Thomas が説明しているように、VB スクリプトを使用してこれを行う方法があります。ここ

彼のサイトが後で消えてしまった場合に備えて、彼のスクリプトのコピーをここに示します。

' NameDrive.vbs
' VBScript to map a network drive.
' Authors Guy Thomas and Barry Maybury
' Version 1.4 - April 2010
' ----------------------------------------'
'
Option Explicit
Dim objNetwork, strDrive, objShell, objUNC
Dim strRemotePath, strDriveLetter, strNewName
'
strDriveLetter = "W:"
strRemotePath = "\\192.168.1.2\example\sharename"
strNewName = "Example Readable Label"

' Section to map the network drive
Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath

' Section which actually (re)names the Mapped Drive
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace(strDriveLetter).Self.Name = strNewName

Wscript.Echo "Check : "& strDriveLetter & " for " & strNewName
WScript.Quit

' End of Example VBScript.

注記:

  • W:うまくいかない場合は、 W:\(スラッシュ付き)を試してください
  • このメソッドはドライブ文字ラベルを設定します永久につまり、後で別の共有を同じドライブ文字に接続すると、新しいシェアにも古いラベルが付けられますこの問題は、共有に接続するときに常にこのスクリプトを使用するか、レジストリ内のキーを削除して通常の動作に戻すことで修正できます。

通常の動作に戻す:

  • regeditを起動し、Edit(メニュー)をクリックします -> Find->Example Readable Label
  • または、regeditで次の場所に移動しますHKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2->_LabelFromReg
  • 値を削除して空白のままにしておきます。その結果、今後のドライブ マッピングは従来のマッピング スタイルに戻ります。

これらすべては、Guy の Web サイトでさらに詳しく説明されています。

答え3

@echo off
echo --------------------------delete map drive all------------------------
net use * /delete /yes
echo ------------------create drive --------------------------------
net use m: \\172.16.0.136\Source /user:aleg\masr masr2006*
net use n: \\172.16.0.136\scanner_bat_test /user:alwq\4288044 masr2006*
echo ---------------------------------------------------

EXIT

関連情報