In tip 4600, I explained how Windows 2000 and Windows XP stores the information about a renamed mapped drive.

If you wish to map and automatically set My Computer to display ShareName (DriveLetter:), use RenShare.bat in a logon script. The syntax is:

RenShare DriveLetter: \\ComputerName\ShareName \[Options\]

where:

DriveLetter: is the drive letter you are mapping. Previous mappings will be replaced.
\\ComputerName\ShareName is the standard net use syntax.
\[Options\] are any additional net use switches that you want.

Processing and Requirements

Windows NT, Windows 9X, Windows ME

Any previous DriveLetter: mapping is deleted and DriveLetter: is mapped to the \\ComputerName\ShareName \[Options\].

Windows 2000

The Windows 2000 Resource Kit REG.EXE program is required for writing ShareName to the registry.

The conversion of ShareName to Unicode takes a few seconds.

Windows XP

REG.EXE is installed when Windows XP is installed.

Windows 2000 and Windows XP

The client must have permission to write their own registry hive.

Any previous DriveLetter: mapping is deleted and DriveLetter: is mapped to the \\ComputerName\ShareName \[Options\].

Any trailing $ is omiited from the ShareName (DriveLetter:) display.

RenShare.bat contains:

<font size="1">@echo off
setlocal
if \{%2\}<h1><a name="_echo_Syntax_RenShare_Drive_Server_Share_Options_amp_goto_done_if_not_OS_">\{\} @echo Syntax: RenShare Drive: Server\Share \[Options\] &goto done
if not "%OS%"</a></h1>"Windows_NT" goto W9x
set drive=%1
set drivel=%drive:~0,1%
if "%drivel%:" NEQ "%drive%" @echo Syntax: RenShare Drive: Server\Share \[Options\] &goto done
set arg=%2
set arg=%arg:"=%##
set arg=%arg:$##=%
set arg=%arg:##=%
for /f "Tokens=2 Delims=\" %%a in ('@echo %arg%') do set arg=%%a
for /f "Tokens=5,6 Delims=\[. " %%i in ('ver') do @set osv=%%i.%%j
if "%osv:~0,3%" LSS "5.0" goto w9x
if "%osv:~0,3%" GTR "5.0" goto wxp
set uni=!21#23$24'27(28)29*2A+2B,2C-2D.2E/2F030131232333434535636737838939?3F@40A41B42C43D44E45F46G47H48I49J4AK4BL4CM4DN4EO4FP50Q51R52S53T54U55V56W57X58Y59Z5A\[5B\5C\]5D_5F`60a61b62c63d64e65f66g67h68i69j6Ak6Bl6Cm6Dn6Eo6Fp70q71r72s73t74u75v76w77x78y79z7A\{7B\}7D~20~20
set cachefill=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000##
set cache=
set /a cachecnt=0
if exist %drive% net use %drive% /D>nul 2>&1
net use %drive% %2 %3 %4 %5 %6 %7 %8>nul 2>&1
set arg=%arg: =~%
set file=%TEMP%\Renuse.tmp
set file="%file:"=%"
if exist %file% del /q %file%
for /l %%i in (0,3,249) do call :build %%i
set /a cnt=0
goto :parse
:build
for /f "Tokens=*" %%j in ('@echo %%uni:~%1^,3%%') do @echo %%j>>%file%
goto :EOF
:parse
for /f "Tokens=*" %%n in ('@echo %%arg:~%cnt%^,1%%') do set char=%%n
if "%char%" EQU "ECHO is on." goto end
set /a cnt=%cnt% + 1
for /f "Tokens=*" %%t in ('findstr /B /L /C:%char% %file%') do set unit="%%t"
if %unit% EQU "" set unit="~20"
set cache=%cache%%unit:~2,2%00
set /a cachecnt=%cachecnt% + 4
set cachefill=%cachefill:0000##=##%
if %cachecnt% GEQ 128 goto end
goto parse
:wxp
if exist %drive% net use %drive% /D>nul 2>&1
set key=%2
set key=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\%key:\=#%
reg ADD %key% /v _LabelFromReg /d "%arg%" /f>nul 2>&1
:wxpqry
reg QUERY %key% /v _LabelFromReg>nul 2>&1
if %ERRORLEVEL% EQU 1 goto :wxpqry
net use %drive% %2 %3 %4 %5 %6 %7 %8>nul 2>&1
endlocal
goto :EOF
:w9x
if exist %1 net use %1 /D>nul 2>&1
net use %1 %2 %3 %4 %5 %6 %7 %8>nul 2>&1
endlocal
goto :EOF
:end
set cachefill=%cachefill:##=%
set cache=%cache%%cachefill%
:query
set key=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints\%drivel%\_LabelFromReg
reg QUERY %key% /v Cache>nul 2>&1
if %ERRORLEVEL% EQU 1 goto :query
reg QUERY %key% /v Version>nul 2>&1
if %ERRORLEVEL% EQU 1 goto :query
reg ADD %key% /v Cache /t REG_BINARY /d %cache% /f>nul 2>&1
reg ADD %key% /v Version /t REG_DWORD /d 3 /f>nul 2>&1
:done
Endlocal</font>
See tip 4601 ยป How do I rename the server / share information in a logon script?