我在玩我的一个领域实验室时遇到了一个相当有趣的问题。
2008 R2 文件服务器上有一个目录,用于“Staff”OU 中所有用户的文件夹重定向。该目录设置了以下权限:
- FILESERVER\Administrators:允许完全控制目录、子目录和文件
- DOMAIN\Domain Admins:允许完全控制目录、子目录和文件
- 经过身份验证的用户:仅允许创建文件、创建文件夹、写入属性以及将扩展属性写入顶级目录
此外,该目录也是对经过身份验证的用户组“允许完全控制”的网络共享。
当域管理员组成员用户 john.doe 尝试从文件服务器访问目录时,他收到错误“您目前无权访问此文件夹”。尝试从同一服务器访问网络共享也会导致权限被拒绝错误(尽管用户仍可访问共享中自己的目录)。
从以同一用户身份登录的另一台计算机访问共享允许按配置进行访问。
登录到文件服务器后,访问目录中文件的唯一方法是打开提升的命令提示符。通过组策略禁用域中所有计算机的 UAC(启用以管理员批准模式运行所有管理员,并将默认行为设置为提升而不提示)。
所有迹象都表明用户被允许访问,但仍然被拒绝。有什么想法吗?
答案1
这是设计使然。UAC 会剥夺任何未提升权限的进程的管理员凭据。如果您尝试使用未提升权限的进程仅使用管理员凭据访问远程共享,UAC 将从进程的安全令牌中剥夺管理员凭据,并且该进程将收到“访问被拒绝”错误。
为了解决这个问题,你可以:
不要使用管理员凭据来保护文件夹(为此目的创建一个通用组),或者
在文件服务器上禁用 UAC(不推荐),或者
在文件服务器上启用以下注册表项以仅禁用 UAC 的这一部分。
答案2
UAC 会剥离服务器本身的域管理员凭据,这是 UAC 工作方式的一部分(在我看来很愚蠢)。一种选择是完全禁用服务器上的 UAC,这样就不会收到“您目前无权访问此文件夹”提示。
编辑:这里有一个示例线程: http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/9061bc1c-42ea-47ed-8c7d-56b07139fb86/
EDIT2:下面 John 的回答可能正是您想要的。请尝试一下,如果可以的话再报告。
答案3
如果您启用以其他用户身份启动 Windows 资源管理器窗口,那么您可以以管理员/提升权限运行一个窗口,并且在该窗口中不会出现此问题。问题是此功能被禁用,因此您无法拥有提升权限的资源管理器窗口,因此您无法在资源管理器窗口中拥有管理员权限(启用 UAC)。
转到密钥:
HKCR\AppID\{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}
并将值“RunAs”重命名为其他任何名称(例如:“RunAsOld”)。(这需要取得该项的所有权并授予您完全访问权限。不要忘记以管理员身份运行 RegEdit.exe 以获取提升的 RegEdit。)
然后,您应该可以立即在 Windows 资源管理器中使用“以管理员身份运行”,并且在结果窗口中您将不会遇到访问问题。如果不更改注册表,即使您使用“以管理员身份运行”,您实际上也不会获得提升的窗口。
答案4
最好的方法是更改注册表项
registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\system; key = EnableLUA
- 确保将其设置为值 0 以禁用
- 您需要重新启动才能使其生效。
- 注册表启用时界面可能会显示为已禁用