【问题标题】:Who is the user when running under administrator privilege?在管理员权限下运行时的用户是谁?
【发布时间】:2015-06-23 17:49:21
【问题描述】:

在成功编译应用程序后,我使用 VS 中的构建后事件将可执行文件传输到网络驱动器。每次我启动我的项目时,它都会在我的用户凭据下打开,但它需要管理员权限才能按预期运行。所以VS问我是否要关闭VS并以管理员权限重新启动它。之后,VS 丢失了我连接的网络驱动器,因为它在管理员下运行,而不是我自己的凭据。如果我以管理员权限进入命令提示符并键入“Net Use”命令,则没有连接网络驱动器。映射丢失的驱动器后,VS 能够按预期进行编译。

现在,我的问题是,当我以管理员权限进入命令提示符时,我的凭据是什么?如果我输入“whoami”,我会得到我自己的用户名,但这并不完全正确,因为在没有管理员权限的命令提示符下没有映射网络驱动器。即使我的用户属于本地管理员组...

【问题讨论】:

  • 映射的网络驱动器不是每个用户的,它们是每个登录会话的。例如,如果您同时登录到远程桌面服务器上的两个会话,则每个会话都有自己的一组映射网络驱动器。这同样适用于 UAC,受限令牌和提升令牌位于不同的登录会话中,因此有自己的一组映射驱动器。
  • 谢谢哈利。在你的帮助下,我找到了解决办法。我们可以在注册表中添加一个值来同步令牌之间的映射网络驱动器。请参阅此处的操作方法:technet.microsoft.com/fr-ca/library/ee844140(v=WS.10).aspx

标签: windows admin token uac


【解决方案1】:

我们可以在注册表中添加一个值来同步链接令牌之间的映射网络驱动器。这记录在 TechNet 中的 Some Programs Cannot Access Network Locations When UAC Is Enabled 下:

要解决此问题,请配置 EnableLinkedConnections 注册表值。

注册表项是

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

EnableLinkedConnections 值是 DWORD 设置为 1 以在链接令牌之间共享映射驱动器或设置为 0 以表示默认行为。

【讨论】:

  • 干得好 - 我知道提供该功能的原始修补程序(在 Windows 7 上),但无法确定它是否包含在 Service Pack 1 或更高版本的 Windows 中。 (有点遗憾,默认情况下它没有打开,真的!)作为记录,请注意这只会影响 UAC 链接的令牌 - 多个登录会话仍将具有单独的驱动器映射,我怀疑 runas 也不会受到影响。
猜你喜欢
  • 2011-09-19
  • 2013-09-22
  • 2010-10-08
  • 2013-07-24
  • 1970-01-01
相关资源
最近更新 更多