Elevated command line prompt can't access shared drives
- I map a share from another machine using my user account.
- I launch an elevated command prompt (cmd.exe, right click, Run as administrator).
- Navigating to shared drive (Z:) results in:
The system cannot find the drive specified
Now if I open a non elevated command prompt, I can navigate to Z: just fine.
Solution 1:
Opening a Windows Explorer as administrator and recreating the network shares didn't work for me. Then, I found this solution: create the share on the command prompt itself. It worked for me.
net use f: \\remoteserver\subfolder
Even if the drive is already mapped in windows explorer, still it worked.
Note: Only use a single backslash before subfolder
Solution 2:
Probably that is not a problem of file permissions but it's related with:
- Network shares being associated with sessions (i.e. different users may have a different set of network shares). Note that an user can have more that one session.
- How User Account Control works.
Since almost all users used an administrator account in XP (as most programmers didn't bother to make their programs work with limited accounts), Microsoft made a "limited version" of administrator accounts starting with Vista, an in some situations the two "versions" counts as different users (since they are separate sessions).
Try launching an elevated Windows Explorer (i.e. a Windows Explorer launched with "Run as administrator") and recreate all network shares, that should do the trick.
The reason for having to recreate the shares is explained on this MSDN blog entry:
Mapped Network Drives with UAC on Windows Vista
Edit: relevant bits from the blog entry (emphasis mine):
To simplify things, let's assume you are running as an administrator with UAC enabled (although, to be more secure, it is better to run as a standard user). When you log in, you create a new token. We then detect that you have UAC enabled, we log in a second time, and end up with a new (highly restricted) token, which we use to launch the shell. There are two separate login events.
(...)
This convenience feature makes it easier to run into issues with mapped network drives. Prior to Windows 2000 SP2, device names remained globally visible until explicitly removed or the system restarted. For security reasons, we modified this behavior beginning with Windows 2000 SP2. From this point forward, all devices are associated with an authentication ID (LUID) - an ID generated for each logon session.
(...)
Because these mapped drives are associated with LUID, and because elevated applications are using a different LUID generated during a separate login event, the elevated application will no longer see any mapped drives for this user.
Solution 3:
Alberto Martinez answer describes why the mapped network drive is not accessible.
Here is registry fix to solve the problem:
- Open regedit and go to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
- Add a new DWORD (32-bit) Value named EnableLinkedConnections.
- Adjust the value to 1 (or 00000001).
Exit regedit and restart the computer.
Solution 4:
I map a share from another machine using my user account.
that network drive is available ONLY in user account mapped the network drive.