Vista的UAC – 麻烦映射networking驱动器

我们有一个编程映射networking驱动器的应用程序。 在UAC上的Vista上,我们遇到了一些奇怪的问题。

我们的应用程序映射驱动器不boost,所以如果用户浏览器和双击运行一个EXE,它会提示inputUAC。 所以当他们批准它时,它会提示input共享的用户名/密码…奇怪,因为凭证被保存。

事实certificate,升级的进程无法访问从未升级的进程映射的映射驱动器。

要查看此问题,请执行以下步骤:

  • 运行没有UAC的cmd.exe
  • 运行“net use w:\ yourHostname \ yourShare / user:yourUser yourPassword / persistent:yes”
  • 以pipe理员身份运行cmd.exe
  • 键入“w:”,并查看错误消息

在这一点上,你可以运行普通的“networking使用”,看到提升cmd上的连接是不可用的,但其他非提升cmd认为它是好的。

有谁知道一个解决方法来解决这个问题? 或者可能是一种将networking驱动器映射到“所有用户”的方法?

这是设计。

即使用户帐户相同,升级版本中具有管理员组中的成员身份的令牌和附加权限,令牌也是独立创建的,因此具有不同的LUID,并且内核看起来来自不同的用户登录。 由于它们来自不同的登录,映射的驱动器不在它们之间共享。

http://blogs.msdn.com/cjacks/archive/2007/02/19/mapped-network-drives-with-uac-on-windows-vista.aspx详细讨论了这一点。

看看这个链接: Regedit链接

他们描述了一个注册表项,允许高级用户访问映射的驱动器,反之亦然。 这解决了我所有的问题,正是我所期待的。

编辑:

原始链接已经死了,但是这里是从www.archive.org上复制的2009年1月24日的快照:


如果您发现您无权访问管理令牌中的映射驱动器,请尝试以下操作。 当作为一个受保护的管理员运行,你有两个令牌,这个键将保持两个tokes(这是我的理解无论如何)的连接。 它也可以帮助清除登录脚本的问题。

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System EnableLinkedConnections =(dword)1

此文档的“组策略脚本可能因用户帐户控制失败”部分也是有用的。

http://technet2.microsoft.com/WindowsVista/en/library/5ae8da2a-878e-48db-a3c1-4be6ac7cf7631033.mspx?mfr=true

我将很快发布更多信息。