3 votes

Remplacer le nom du lecteur mappé en utilisant .bat script ?

J'ai le lot suivant script qui mappe avec succès quelques uns de nos lecteurs pour nos utilisateurs :

@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

Les lecteurs mappés prennent leur nom à partir du nom du partage lui-même. Cependant, il serait vraiment pratique de pouvoir remplacer le nom par quelque chose de plus utile pour les utilisateurs.

J'ai consulté plusieurs documents en ligne contenant des exemples de commandes d'utilisation du réseau, mais je ne vois que des options telles que les informations d'identification, mais rien concernant le nom.

Le script est exécuté sur des postes de travail Windows XP et Windows 7.

Toute aide serait appréciée.

10voto

user2428118 Points 383

Il existe un moyen de le faire à partir de la ligne de commande sans utiliser VBScript. Vous pouvez modifier le registre en utilisant la commande reg add commande. À mon avis, cette méthode est plus efficace que l'utilisation de VBScript pour modifier l'étiquette, car elle n'associe pas l'étiquette à la lettre du lecteur, mais plutôt au partage. Ainsi, si l'utilisateur final se déconnecte plus tard X: et monte manuellement le xrays partager pour dire que le R: le lecteur, alors l'étiquette s'affichera toujours correctement (à ce que vous lui avez assigné dans le script).

La clé sur laquelle vous allez écrire est HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\ la sous-clé étant le chemin du partage avec tous les antislashs remplacés par des symboles dièse (#).

Nota: Je n'ai pas encore testé comment gérer les noms de partage contenant des espaces (ou même des symboles dièse).

@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

4voto

tor Points 311

Il n'y a aucun moyen d'y parvenir en utilisant uniquement la fonction net use (voir documentation ), mais il existe un moyen de le faire en utilisant un script vb, comme décrit par Guy Thomas à computerperformance.co.uk aquí

Au cas où le site de Guy disparaîtrait plus tard, voici une copie de son script :

' 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.

Nota:

  • Si W: ne fonctionne pas pour vous, essayez W:\ (avec la barre oblique)
  • Cette méthode permet de définir l'étiquette de la lettre du lecteur en permanence c'est-à-dire que si vous connectez ultérieurement un autre partage à la même lettre de lecteur, cette lettre de lecteur ne sera pas utilisée. la nouvelle action obtiendra également l'ancienne étiquette . Cela peut être corrigé soit en utilisant toujours ce script lors de la connexion des partages, soit en supprimant une clé dans le registre pour revenir à un comportement normal.

Revenir à un comportement normal :

  • Lancez regedit, puis cliquez sur Edit (menu) -> Find -> Example Readable Label
  • Ou naviguez dans regedit jusqu'à HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 -> _LabelFromReg
  • Supprimez simplement la valeur - laissez-la en blanc. Le résultat sera que le futur mappage des lecteurs reviendra au style traditionnel de mappage.

Tout ceci est décrit de manière plus approfondie sur le site web de Guy.

0voto

masrnet2006 Points 9
@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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X