Mapping drives based on location

I concocted this batch file script a couple weeks ago to determine where a client was accessing the network from and then mapping shares accordingly.  In this instance, folks were logging in through either Citrix of the local LAN.  If they were logging on by way of the LAN, the DFS shares needed to be mapped.  If logging on through Citrix, they needed to log on directly to the shares, instead of the DFS replicas.

I did this based on the IP address of the Gateway obtained through the connection.  As you can see the Gateway changed based on the location, so it was easy to determine where they client was logging in from.  There’s also another section in the script so that a VPN or “other” connection can be added to the logic, too.

To use the script just spot the IP Gateway address fields (XXX for one Gateway, YYY for the other) and modify based on the IP Gateway addresses assigned in your organization.


rem Subnets for reference
rem Citrix Gateway: XXX.XXX.XXX.XXX
rem Server Gateway: YYY.YYY.YYY.YYY
rem Grab IP address and dump to a file

ipconfig >"%userprofile%ipconfig.txt"

echo Checking for your location

rem Seaching for default gateway in IP dump above
findstr "XXX.XXX.XXX.XXX" "%userprofile%ipconfig.txt"
if not errorlevel 1 goto Citrix

echo Not Citrix
goto next

findstr "YYY.YYY.YYY.YYY" "%userprofile%ipconfig.txt"
if not errorlevel 1 goto Server

echo not Server
goto other


net use G: \servershare
net use P: \servershare
net use Z: \servershare
net time \timeserver /set /y

goto :next


net use G: \DFS_ROOTshare
Net use P: \DFS_ROOTshare
net use Z: \DFS_ROOTshare
net time \timeserver /set /y

goto :next

rem Other settings (for VPN etc)
goto :next


rem more commands


Comments are closed.

Recent Comments