提升的命令行提示符无法访问共享驱动器

提升的命令行提示符无法访问共享驱动器
  1. 我使用我的用户帐户从另一台机器映射共享。
  2. 我启动了提升的命令提示符(cmd.exe,右键单击,以管理员身份运行)。
  3. 导航到共享驱动器 (Z:) 会导致:

The system cannot find the drive specified

现在,如果我打开非提升的命令提示符,我就可以正常导航到 Z:。

barlop 添加的注释

使用net use,管理(提升)cmd 提示符可以访问从管理 cmd 提示符创建的映射驱动器,但问题是管理 cmd 提示符无法访问从非管理 cmd 提示符创建的驱动器,反之亦然。因此,从非管理 cmd 提示符通过 net use 创建的映射驱动器无法从管理 cmd 提示符中看到。Net use 也可以用于本地驱动器,并且存在同样的问题。Subst 有同样的问题。

答案1

以管理员身份打开 Windows 资源管理器并重新创建网络共享对我来说不起作用。然后,我找到了这个解决方案:在命令提示符上创建共享。它对我有用。

net use f: \\remoteserver\subfolder      

即使驱动器已在 Windows 资源管理器中映射,它仍然可以工作。

注意:子文件夹前只能使用一个反斜杠

答案2

这可能不是文件权限的问题,但与以下情况有关:

  • 网络共享与会话相关联(即不同的用户可能拥有不同的网络共享集)。请注意,一个用户可以拥有多个会话。
  • 用户帐户控制的工作原理。

由于在 XP 中几乎所有用户都使用管理员帐户(因为大多数程序员不愿意让他们的程序使用受限帐户),所以微软从 Vista 开始制作了管理员帐户的“受限版本”,在某些情况下,两个“版本”算作不同的用户(因为它们是单独的会话)。

尝试启动提升的 Windows 资源管理器(即以“以管理员身份运行”启动的 Windows 资源管理器)并重新创建所有网络共享,这样应该可以解决问题。

此 MSDN 博客条目解释了必须重新创建共享的原因:

在 Windows Vista 上使用 UAC 映射网络驱动器

编辑:博客条目中的相关内容(重点是我的):

为了简化操作,我们假设您以管理员身份运行并启用了 UAC(但为了更安全,最好以标准用户身份运行)。登录时,您会创建一个新令牌。然后,我们会检测到您已启用 UAC,然后再次登录,最后会得到一个新的(高度受限的)令牌,我们会使用该令牌启动 shell。有两个单独的登录事件.
(...)
此便利功能使遇到映射网络驱动器问题变得更容易。在 Windows 2000 SP2 之前,设备名称保持全局可见,直到明确删除或重新启动系统。出于安全原因我们从 Windows 2000 SP2 开始修改了此行为。从此以后,所有设备都与一个身份验证 ID (LUID) 相关联 - 为每个登录会话生成的 ID.
(...)
因为这些映射驱动器与 LUID 相关联,并且因为提升的应用程序正在使用不同的 LUID在单独的登录事件期间生成,提升的应用程序将不再看到此用户的任何映射驱动器。

答案3

Alberto Martinez 的回答描述了为什么映射的网络驱动器不可访问。

这是注册表修复解决问题:

  • 打开 regedit 并转到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
  • 添加一个名为的新 DWORD(32 位)值启用链接连接
  • 将值调整为 1(或 00000001)。

退出 regedit 并重新启动计算机。

答案4

我使用我的用户帐户从另一台机器映射共享。

该网络驱动器仅在映射网络驱动器的用户帐户中可用。

相关内容