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