【发布时间】:2010-11-19 00:29:01
【问题描述】:
我们有一个以编程方式映射网络驱动器的应用程序。在开启 UAC 的 Vista 上,我们遇到了一些奇怪的问题。
我们的应用程序映射非提升驱动器,因此如果用户浏览资源管理器并双击运行 exe,它会提示输入 UAC。因此,当他们批准它时,它会提示输入共享的用户名/密码...奇怪,因为凭据已保存。
事实证明,提升的进程无法访问从非提升的进程映射的映射驱动器。
要查看此问题的实际效果,请执行以下步骤:
- 在没有 UAC 的情况下运行 cmd.exe
- 运行“net use w:\yourHostname\yourShare /user:yourUser yourPassword /persistent:yes”
- 以管理员身份运行 cmd.exe
- 键入“w:”,然后查看错误消息
此时您可以运行普通的“net use”并看到提升的 cmd 上的连接不可用,但其他非提升的 cmd 认为它正常。
有人知道解决此问题的解决方法吗?或者可能是一种将网络驱动器映射到“所有用户”的方法?
【问题讨论】:
-
这个问题可能属于服务器故障。
-
不,这是一个关于编程的问题——他们需要跨海拔继承特权。虽然我不知道答案:)
-
这绝对是一个编程问题,我们使用应用程序中的 WNetAddConnection2 和 WNetCancelConnection2,但这类似于“net use”命令。
标签: windows uac windows-vista file-sharing net-use