Is there a command that can be used from the command line to output a list of the mapped network drives on the local system and their location on the network to a text file?
This will only be used on Windows-based systems running Windows XP.
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
net use > mapped_drives.txt should dump a list of mapped drives to the text file
Although I tested this on Windows 7, Microsoft says
net use will work on Windows XP
NET USE was only displaying the mapped drives for my current user and current connection. After some more googling, I got here:
The drive mapping info is stored in the Registry, look in HKEY_USERS\USER\Network
So I did a
reg query HKEY_USERS to list the users (which were some windows codes), then I queried all of them individually, for example:
reg query HKEY_USERS\S-1-5-21-4205028929-649740040-1951280400-500\Network /s
If you query all of them, then you get all the mappings for all users.
Save the following as a .vbs file and run it. It'll create a MappedDrives.txt in the folder the vbs file is run from. You can replace the strComptuer with another computer's name and get the list off of a remote computer as well.
strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set objFSO = CreateObject("Scripting.FileSystemObject") Set objOutFile = objFSO.CreateTextFile(".\MappedDrives.txt") Set colDrives = objWMIService.ExecQuery _ ("Select * From Win32_LogicalDisk Where DriveType = 4") For Each objDrive in colDrives objOutFile.WriteLine(objDrive.DeviceID & " (" & _ objDrive.ProviderName & ")") Next objOutFile.Close
The following cmd (run as Administrator) will show all drive maps for all users (pulling the info from the registry)
for /f "tokens=1* delims=" %i in ('reg query HKEY_USERS /f S* /k /v ^| findstr /v /c:"End of search"')do @echo. & @( reg query "%i\Volatile Environment" /s /f USERNAME /v 2>NUL & @reg query %i\Network /f RemotePath /s 2>NUL )| findstr /r /v /c:"End of search" /c:"^$" /c:"Volatile"