【问题标题】:Application Cannot Access Mapped Drive应用程序无法访问映射驱动器
【发布时间】:2016-05-28 11:32:17
【问题描述】:

当应用程序以管理员身份运行时,它无法使用 FindFirstFile 在映射的网络驱动器上查找文件。如果可执行文件在没有以管理员身份运行的情况下运行是有效的。用户是 PC 上的本地管理员。当 FindFirstFile 失败时,错误为 3,ERROR_PATH_NOT_FOUND。以管理员身份运行是否会更改访问权限或我对映射驱动器的访问权限?

我正在使用本地管理员的域用户在 Windows 10 PC 上进行测试。应用程序是在 Windows 10 PC 上使用 VS 2010 构建的。应用程序是本机 C++ 应用程序。我已经关闭了防火墙,仍然失败。关闭 Windows Defender,仍然失败。重新创建共享和映射,仍然失败。想法?

【问题讨论】:

  • 您是否以管理员身份运行应用程序(通过右键单击 -> 以管理员身份运行或选中文件属性中的以管理员​​身份运行框)?
  • 我的第一反应是回答是,但我决定仔细检查,发现我有不同的问题。问题在于以管理员身份运行。每当我以管理员身份运行时,我都会收到 UAC 通知并单击“是”,然后它无法找到映射的驱动器。如果我以恰好是管理员的普通用户身份运行,它可以工作。以管理员身份运行是否会更改我的访问权限或对映射驱动器的特定访问权限?我将编辑原始问题。
  • 驱动器号映射是每个用户的设置。是的,如果您提升以获取管理员权限,那么您就是不同的用户。默认情况下没有驱动器映射。
  • Windows 10 也发生了这种变化,因为它在 Windows 7 中无法正常工作。
  • 它在 Win7 中的工作方式相同。不过,从那时起,UAC 发生了一些变化,您的 UAC 设置可能会影响提升的进程执行其操作的方式。

标签: c++ visual-studio-2010 windows-10 mapped-drive


【解决方案1】:

网络驱动器是按用户映射的。如果您以用户身份映射驱动器,但以管理员身份运行应用程序,则不会从应用程序的角度映射网络驱动器。要解决此问题,您可以通过打开管理员命令提示符(右键单击 cmd -> 以管理员身份运行)并运行 net use F: \\path\to\my\share,以管理员身份映射驱动器。

【讨论】:

  • 我的解决方法是启用注册表设置 EnableLinkedConnections。这使得一切正常。
猜你喜欢
  • 2012-02-07
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多