It was the end of a long day during the Turkana Festival in Kenya. The day had been hot, with little shade, and now we drove to the windswept shores of Lake Turkana. Here, two girls of the Turkana tribe took rest and watched their tribe dance in friendship with the Samburu till dusk.
I was staying in a yurt in Bamiyan which overlooked the valley where the famous Buddha statues were destroyed by the Taliban. Having done much in the valley already, I went for a walk near some farm fields where I had earlier spotted the remains of Soviet military vehicles.
Camera in hand, I managed to get some closeups of those vehicles including this T-54 tank. Moments later, a uniformed man starts shouting at me from across the field and began approaching. I watched as he got to my position. I wasn’t sure what he was saying, but he was pointing at my camera and he wasn’t letting me leave. Luckily, a farm worker saw what was happening and came over to help, and he spoke English! He translated saying that the uniformed man was police, and that he wanted to know if I had a permit to take photos. I said that I wasn’t aware of the need for permits. And then he wanted my passport. I showed him my passport, but I didn’t hand it over. As I had refused to hand over my passport, he wanted me to accompany him to the police station. I said no. Lots of shouting. A standoff.
He radioed his colleagues and soon there were several police surrounding me. And then appeared one chap shouting angrily as he walked across the field. It was the boss. Same arguments…he wasn’t going to get hold of my passport, and I wasn’t going to the police station. I said I was British, and that my friends were waiting for me nearby. So I stayed in that field answering his questions on the who, what, why and when of my journey. Anyway, it turns out that they were worried about terrorists from Pakistan, especially with the elections only a few days away. After much talking, they let me go, and I shook hands with the police chief. I was questioned several times by the security forces throughout my travels in Afghanistan, but I guess they had legitimate concerns; literally life and death.
I use Adobe Photoshop and Adobe Lightroom Classic (LrC) for my photographic workflow on Windows 10. I keep my photos on my NAS, and access these from my Windows PC workstation using a 10GbE network. It’s pretty fast as the NAS drives are in a RAID10 (1+0) configuration with 8 HDD drives so that 10GbE bandwidth is well utilised. I also keep my LrC catalogues on the NAS drive so that I can use one of my other PCs to access the catalogues, but LrC will not allow you to use network folders for storing catalogues. I believe that Adobe state that this is because of poor network performance and concerns on multiuser access; both of which are not relevant to my use case so Adobe’s barriers, although well-intentioned, actually stink.
Luckily, LrC will not detect that a catalogue is on a network if you use the SUBST command within Windows 10 to map the catalogue folder to a drive. Using LrC with WiFi is not a very good user experience, so if you want to put your LrC catalogues on a network share, I’d recommend a wired Ethernet connection instead of WiFi; 10GbE is preferred but GbE is workable. My main use case is LrC catalogues accessible over the LAN, but I obviously use my NAS for storing all my other documents so mapping network drives is very useful for those other use cases.
I use Windows “Map network drive” option within Windows Explorer to map all the other folders on my NAS for generic access, and is the preferred way of mapping network shares within Windows. However, 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 to various timing constraints of resources during boot. Although free Third-Party applications are available that can automatically reconnect your mapped network drives, I would rather to do this using Windows built-in tools than add more unnecessary software to my system. I’ve therefore put-together a Command Prompt batch script using the “NET USE” and “SUBST” commands which runs in Windows 10 Pro 64-bit. It’s robust and reliable, but it does depend on the implementation of your LAN (use 10GbE where possible).
The script is saved as a .CMD batch file which is executed twice by the Task Scheduler at user log on; one in non-admin mode, and the other in admin mode (run in highest privileges). This allows a mapped drive to be visible to those applications running in non-admin modes and also to those applications running in admin modes. I also used the CMDKEY command at the Command Prompt (not in a batch script) to add my network share credentials so that I didn’t have to add the credentials to the NET USE command; this just needs to be run once. The CMDKEY format was:
cmdkey /add:192.168.49.69 /user:username /pass:password
Or you can use the Windows “Credential Manager” and add these credentials within the “Windows Credentials” section; a lot easier to use than the command line!
The full batch script is below. Note that this post is an update of a previous post which had some flaws. Of course, use your own NAS IP address and your own preferred drive letters. For me, D is for Data (where all my files are kept), and L is for Lightroom (where my Catalogues are kept).
@ECHO OFF SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION SET me=%~n0 SET parent=%~dp0 TITLE Mapping network drives @ECHO Please wait whilst we connect your drives TIMEOUT /t 1 /NOBREAK >NUL :Start ECHO _____________________________________ IF EXIST D:\NUL ( ECHO: ECHO D: drive is already mapped GOTO Subst_drive ) ELSE ( ECHO: ECHO D: drive does not exist ) :NetUse IF EXIST \\192.168.49.69\Data\ ( ECHO: ECHO NAS folder exists so run NET USE command NET USE D: \\192.168.49.69\Data /PERSISTENT:YES ) ELSE ( ECHO: ECHO NAS folder does not exist GoTo ErrorPrompt ) IF "%ERRORLEVEL%" NEQ "0" ( IF "%ERRORLEVEL%" NEQ "2" ( ECHO: ECHO NET USE returncode has error and is %ERRORLEVEL% GOTO ErrorPrompt ) ) ELSE ( ECHO: ECHO NET USE returncode should be 0 and is %ERRORLEVEL% ) :Subst_drive IF EXIST "\\192.168.49.69\Data\Documents\LR catalogs" ( ECHO: ECHO Lightroom catalog folder exists so run SUBST command SUBST L: "\\192.168.49.69\Data\Documents\LR catalogs" ) ELSE ( ECHO: ECHO Lightroom catalog folder does not exist GOTO ErrorPrompt ) IF "%ERRORLEVEL%" NEQ "0" ( IF "%ERRORLEVEL%" NEQ "1" ( ECHO: ECHO SUBST returncode has error and is %ERRORLEVEL% GOTO ErrorPrompt ) ) ELSE ( ECHO: ECHO SUBST returncode should be 0 and is %ERRORLEVEL% GOTO Endofscript ) REM catchall GOTO Endofscript :ErrorPrompt 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 ErrorPrompt :Endofscript ECHO _____________________________________ ECHO: @ECHO Please wait, script is closing. TIMEOUT /t 5 /NOBREAK >NUL rem pause ENDLOCAL @ECHO OFF @EXIT /B 0