The town of Hpa An in Myanmar, surrounded by a karst landscape, offers opportunities to visit the caves in that region. Many caves are used for Buddhist shrines, and some are used for navigation. Here, nearly 20 kilometres from Hpa An, fishermen are shown outside a cave entrance that runs through to the other side of the karst hills.
When booting into Windows, the OS sometimes does not reconnect mapped network drives even though the mapping is configured with the “Reconnect at sign-in” option. This is due with various timing constraints of resources during boot.
Although there are free Third Party software available that can automatically reconnect your mapped network drives, I would rather be able to do this using built-in tools than add more unnecessary software to my system. I’ve therefore written a Command Prompt script using the “net use” command. Not the prettiest of code but it does the job. Tested in Windows 10 Pro 64-bit.
The script was saved as a .CMD batch file which is executed by twice using Task Scheduler at user log on; one in non-admin and the other in admin mode. This allows mapped drives to be visible to those applications running in non-admin and also to those applications running in admin modes.
@ECHO OFF SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION SET me=%~n0 SET parent=%~dp0 TITLE Mapping network drives @ECHO Please wait whilst we reconnect your network drives. SET neterror=0 SET counter=1 SET loopvalue=11 SET /A trueloop=%loopvalue%-1 :Start ECHO _____________________________________ ECHO: IF "%counter%" EQU "%loopvalue%" ( ECHO Connection to D:\ drive timed-out SET neterror=1 GOTO End ) ECHO Attempt %counter% of %trueloop% to D:\ drive TIMEOUT /t 5 /NOBREAK >NUL IF EXIST D:\NUL ( ECHO Attempt %counter% successful. GOTO End ) NET USE D: \\192.168.49.69\Data /PERSISTENT:YES IF "%ERRORLEVEL%" NEQ "0" IF "%ERRORLEVEL%" NEQ "85" ( SET /A counter=%counter%+1 GOTO Start ) :End IF "%neterror%" EQU "0" GOTO Endofscript :userconfirm ECHO _____________________________________ ECHO: SET /P userinput="Errors were found. Do you wish to try again [Y/n] " IF /I "%userinput%" EQU "y" GOTO Start IF /I "%userinput%" EQU "" GOTO Start IF /I "%userinput%" EQU "n" GOTO Endofscript GOTO userconfirm :Endofscript ECHO _____________________________________ ECHO: @ECHO Please wait, script is closing. TIMEOUT /t 5 /NOBREAK >NUL ENDLOCAL @ECHO OFF @EXIT /B 0