When you use the subst command to map a drive letter to a local folder, the mapping disappears when you log off.

I have scripted MyDL.bat to map a drive letter to a local folder. The drive letter is immediately available to you, but a restart is required to make it available to all users.

The syntax for using MyDL.bat is:

MyDL Drive: FolderPath

Where Drive: is an unused drive letter, like M:, and FolderPath is the fully qualified path to the local folder. The Volume Label is inherited from the drive of FolderPath and the compression attribute is inherited from the local folder.

NOTE: To delete the drive mapping, use MyDL Drive: DEL

NOTE: MyDL.bat uses REG.EXE built into Windows XP and Windows Server 2003, or REG.EXE from the Windows 2000 Support Tools on the CD-ROM.

NOTE: You must be a local administrator, or have permissions on HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices, to run MyDL.bat.

MyDL.bat contains:

@echo off
setlocal ENABLEDELAYEDEXPANSION
if \{%1\}==\{\} goto err
set DRV=%1
if "%DRV:~1,1%" NEQ ":" goto err
set key="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices"
set FP=%2
if /i "%FP%" EQU "DEL" goto del
if not exist %FP% goto err
set FP=%FP:"=%
set error=N
for /f "Tokens=2" %%a in ('net use^|find ":"') do (
 if /i "%DRV%" EQU "%%a" set error=Y
)
if "%error%" EQU "Y" goto err
for /f "Tokens=1" %%a in ('subst^|find ":\:"') do (
 set wrk=%%a
 if /i "%DRV%" EQU "!wrk:~0,2!" set error=Y
)
if "%error%" EQU "Y" goto err
call :quiet>nul 2>&1
endlocal
goto :EOF
:del
set error=Y
for /f "Tokens=1,2*" %%a in ('reg query %key% /V %DRV%^|FIND /I "REG_SZ"') do (
 set error=N
)
if "%error%" EQU "Y" goto err
call :delq>nul 2>&1
endlocal
goto :EOF
:delq
subst %DRV% /D
REG DELETE %key% /V %DRV% /F
goto :EOF
:quiet
subst %DRV% "%FP%"
reg ADD %key% /V %DRV% /T REG_SZ /F /D "\??\%FP%"
goto :EOF
:err
@echo Syntax: MyDL Drive: folder_path
endlocal