I want to backup the state of my mapped drives in Windows 7 Ent. I'm not trying to backup the contents of the drives, only the paths and assigned letters.
Say I had to perform a reinstall of Windows, I want to be able to restore all my mapped drives to the same drive letters, so //network-path/foldername/ will still be assigned to F:\ when restored.
1 Answer
You have a couple/few options. Here's two:
If these are persistent drives you've mapped yourself, then entries for them should be stored in the registry under HKEY_CURRENT_USER\Network.
You could use Reg Export HKEY_CURRENT_USER\Network c:\temp\drives.reg from a command-line to export the key to a file, and then use reg import to import it again in the future.
For more info on that, check out this existing SU question:
Where does windows store network drive mappings?
If the drives are not persistent, you could use a script to output the list to a file, and use another script to import that file and create drives from it later.
Using PowerShell to do this isn't too hard; you could use something like the following...
Exporting:
# Define array to hold identified mapped drives.
$mappedDrives = @()
# Get a list of the drives on the system, including only FileSystem type drives.
$drives = Get-PSDrive -PSProvider FileSystem
# Iterate the drive list
foreach ($drive in $drives) { # If the current drive has a DisplayRoot property, then it's a mapped drive. if ($drive.DisplayRoot) { # Exctract the drive's Name (the letter) and its DisplayRoot (the UNC path), and add then to the array. $mappedDrives += Select-Object Name,DisplayRoot -InputObject $drive }
}
# Take array of mapped drives and export it to a CSV file.
$mappedDrives | Export-Csv mappedDrives.csvImporting:
# Import drive list.
$mappedDrives = Import-Csv mappedDrives.csv
# Iterate over the drives in the list.
foreach ($drive in $mappedDrives) { # Create a new mapped drive for this entry. New-PSDrive -Name $drive.Name -PSProvider "FileSystem" -Root $drive.DisplayRoot -Persist -ErrorAction Continue
} 1