web-dev-qa-db-ja.com

.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およびWindows7ワークステーションで実行されています。

どんな助けでもいただければ幸いです。

2
dannymcc

VBScriptを使用せずにコマンドラインからそれを行う方法があります。 reg addコマンドを使用してレジストリを編集できます。 IMHO、この方法で行うと、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
7
Drew Chapin

Net Useコマンドのみを使用してこれを行う方法はありません( ドキュメント を参照)が、computerperformance.coのGuy Thomasが説明しているように、vbスクリプトを使用してこれを行う方法はあります。 .uk ここ

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

' 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:\(スラッシュ付き)を試してください。
  • このメソッドは、ドライブ文字ラベルを永続的にに設定します。つまり、後で別の共有を同じドライブ文字に接続すると、そのnew shareは古いラベルも取得します。これは、共有を接続するときに常にこのスクリプトを使用するか、レジストリ内のキーを削除して通常の動作に戻すことで修正できます。

通常の動作に戻す:

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

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

4
tor
@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
0
masrnet2006