Substitui o nome da unidade mapeada usando o script .bat?

0

Eu tenho o seguinte script em lote que mapeia com sucesso algumas de nossas unidades para nossos usuários:

@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

As unidades mapeadas estão recebendo seus nomes do próprio nome do compartilhamento. No entanto, seria muito útil se eu pudesse substituir o nome para algo mais útil para os usuários.

Examinei alguns documentos on-line com exemplos dos comandos net use, mas só consigo ver opções como credenciais, mas nada a ver com a nomenclatura.

O script está sendo executado em estações de trabalho Windows XP e Windows 7.

Qualquer ajuda seria apreciada.

    
por dannymcc 15.08.2012 / 12:35

3 respostas

4

Não há como fazer isso usando somente o comando net use (consulte documentação ), mas há uma maneira de fazer isso usando um script vb, como descrito por Guy Thomas em computerperformance.co.uk aqui

Caso o site do Guy desapareça depois, aqui está uma cópia do script dele:

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

  • Se W: não funcionar para você, tente W:\ (com a barra)
  • Esse método definirá o rótulo da letra da unidade permanentemente , ou seja, se você conectar posteriormente outro compartilhamento à mesma letra, esse novo compartilhamento também receberá o rótulo antigo . Isso pode ser corrigido usando sempre esse script ao conectar compartilhamentos ou excluindo uma chave no registro para reverter ao comportamento normal.

Revertendo para o comportamento normal:

  • Inicie o regedit e clique em Edit (menu) - > Find - > %código%
  • Ou navegue no regedit para Example Readable Label - > %código%
  • Basta excluir o valor - deixe em branco. O resultado será que o futuro mapeamento de unidades será revertido para o estilo tradicional de mapeamento.

Tudo isso é mais descrito no site do Guy.

    
por 11.08.2014 / 17:25
4

Existe uma maneira de fazer isso a partir da linha de comando sem usar o VBScript. Você pode editar o registro usando o comando reg add . IMHO, fazê-lo desta maneira será melhor do que usar o VBScript para alterar o rótulo, porque ele não irá associar o rótulo com a letra da unidade, mas sim ele irá associar o rótulo com o compartilhamento. Portanto, se o usuário final posteriormente desconectar X: e montar manualmente o xrays compartilhar a unidade R: , o rótulo ainda será exibido corretamente (para o que você atribuiu no script).

A chave para a qual você irá gravar é HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\ , com a subchave sendo o caminho de compartilhamento com todas as barras invertidas substituídas por símbolos de libra (#).

Nota: Eu ainda não testei como você deve lidar com nomes de compartilhamento com espaços (ou até mesmo símbolos de libra) neles.

@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
    
por 11.08.2014 / 18:07
0
@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:alwq88044 masr2006*
echo ---------------------------------------------------

EXIT
    
por 16.12.2012 / 12:11