我希望有人能够纠正我在 Windows 8.1 中尝试创建符号链接时出现的问题,而无需以管理员身份运行 cmd.exe。
每当我尝试从常规命令提示符创建符号链接时,我都会得到通常的权限响应......
C:\Users\MyUser>mklink symlink.txt mytextfile.txt
You do not have sufficient privilege to perform this operation.
...并且它确实可以通过管理员命令提示符起作用(正如预期的那样)...
C:\Users\MyUser>mklink symlink.txt mytextfile.txt
symbolic link created for symlink.txt <<===>> mytextfile.txt
但是,Windows 8.1 中似乎没有任何常见的修复方法起作用(至少,我能找到的修复方法)。
我尝试按照以下答案作为普通用户,如何在 Windows 7 家庭高级版中创建链接?,但似乎并没有什么效果。
我还将 UAC 设置为最低级别。
我还遗漏了什么吗?
答案1
“已过滤”令牌中缺少特权
禁用 UAC。或者启用 UAC:启用后SECreateSymbolicLinkPrivilege
尝试使用非管理员帐户。
解释
这是第 17 条军规。根据我所读的 MS 文档。
如果您的用户帐户中有一个列入黑名单的知名管理组,那么就会创建第二个未提升的令牌。
SeCreateSymbolicLinkPrivilege
当从提升令牌生成非提升令牌时,相关内容会被过滤掉。
来自MSDN:用户界面权限隔离 (UIPI):
如果以下任一情况为真,Windows 将为用户创建两个访问令牌:用户的帐户包含以下任何 RID。DOMAIN_GROUP_RID_ADMINS
[
...]
过滤后的令牌包含哪些权限取决于原始令牌是否包含上面列出的任何受限 RIDS。如果令牌中包含任何受限 RID,则所有权限都将被删除,但以下权限除外:
SeChangeNotifyPrivilege
SeShutdownPrivilege
SeUndockPrivilege
SeReserveProcessorPrivilege
SeTimeZonePrivilege
因此,解决方案是完全禁用第二次令牌生成。要么从您的帐户中删除所有提到的组,要么完全禁用 UAC。
(免责声明:Paul Betts 完成了这项工作。我只是添加了一些细节。请在此处查看他的回答:https://stackoverflow.com/questions/15320550/secreatesymboliclinkprivilege-ignored-on-windows-8)