Переопределить имя сопоставленного диска с помощью .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. 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

решение2

Сделать это, используя только команду, невозможно net use(см.документация), но есть способ сделать это с помощью скрипта VB, как описано Гаем Томасом на computerperformance.co.ukздесь

На случай, если сайт Гая позже исчезнет, ​​вот копия его скрипта:

' 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
  • Просто удалите значение - оставьте его пустым. Результатом будет то, что в будущем сопоставление дисков вернется к традиционному стилю сопоставления.

Все это более подробно описано на сайте Гая.

решение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

Связанный контент