为什么在Windows 8中忽略了SeCreateSymbolicLinkPrivilege权限?

29
我希望能够使我的标准用户账户(非管理员)能够调用CreateSymbolicLink。
然而,在Win8上,即使将“Everyone”添加到本地组策略下的SeCreateSymbolicLinkPrivilege(即secpol.msc中的“创建符号链接”),仍会导致STATUS_PRIVILEGE_NOT_HELD。为什么?


1
愚蠢的问题,你是否以管理员身份运行 cmd - Peter Ritchie
3
当所涉及的用户为标准用户(在“用户”而非“管理员”组中)时,此设置适用于我,但当该用户属于管理员组时,创建符号链接将受到UAC的限制。 - Christian Klauser
2
@PeterRitchie 我正在明确尝试配置我的本地安全策略,以便创建符号链接不需要提升权限。 - Ana Betts
@ChristianKlauser,您是在说 UAC 是硬编码以取代本地 GP 中的内容吗? - Ana Betts
显然,如果用户在管理员组中,则必须以管理员身份运行才能使用MKLINK。如果您将用户从管理员组中移除,则所有上述操作似乎都可以正常工作。另请参阅http://superuser.com/questions/124679/how-do-i-create-a-link-in-windows-7-home-premium-as-a-regular-user。 - Peter Ritchie
这不是微软的一个失误吗? - v.oddou
1个回答

25

正如Christian所怀疑的那样,确实是UAC。

MSDN:Windows Vista应用程序开发需求与用户帐户控制兼容性:

过滤令牌包含哪些特权取决于原始令牌是否包含上述任何受限的RIDS(即非提升的管理员)。如果令牌中包含任何受限的RID,则会删除所有特权,除了

  • SeChangeNotifyPrivilege
  • SeShutdownPrivilege
  • SeUndockPrivilege
  • SeReserveProcessorPrivilege
  • SeTimeZonePrivilege

3
啊,这很有道理。这个是可配置的吗?还是微软硬编码了这组保留权限?如果在列表中加入SeCreateSymbolicLinkPrivilege将会很好。 - Christian Klauser
1
我可以验证一旦UAC被禁用,我就能够创建符号链接,即使是从我的具有管理员权限的主帐户。哇哦! - Vladimir Sizikov
4
请注意,您可以使用“whoami /priv”命令来双重检查自己的权限。 - sschuberth
我遇到了一个奇怪的情况。我相信预览版中有一些改变了Token(令牌)的行为。我有一个使用非预览版Windows 10的虚拟机,但是如果不以管理员身份运行就无法创建符号链接。我关闭了UAC,将用户放入组策略中,但还是不起作用。在另一台机器上,我认为设置是相同的,但它安装了最新的预览版构建。它允许我创建符号链接而无需以管理员身份运行。你们有什么想法吗? - Andrew T Finnell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接