鉴于:
- 运行 Windows 2008 的虚拟机
- 我使用我的域帐户 (SHUNRANET\markk) 登录
- 我已将“创建全局对象”权限添加到我的域帐户:
- 虚拟机已重新启动(我知道注销/登录就足够了,但我必须重新启动)
- 我使用同一个域帐户再次登录。它似乎仍然具有权限:
- 我运行一些进程并使用进程资源管理器检查其安全属性。该帐户似乎没有权限:
这不是无聊的好奇。我有一个真正的问题,如果没有这个权限,命名管道 WCF 绑定在 Windows 2008 和 Windows 7 上都不起作用!这里有一个关于这个问题的有趣讨论 -http://social.msdn.microsoft.com/forums/en-US/wcf/thread/b71cfd4d-3e7f-4d76-9561-1e6070414620。
有人知道如何实现这个功能吗?谢谢。
编辑
顺便说一句,当我运行提升的进程时,一切都很好,并且进程资源管理器确实按预期显示了权限:
但我不想让它升高。
编辑2
我同样欢迎任何解决方案。无论是仅配置还是与代码混合。
编辑3
我在 MSDN 论坛上发布了同样的问题,他们把我重定向到这个页面 -http://support.microsoft.com/default.aspx?scid=kb;EN-US;132958。我尚未确定它的相关性,但它看起来很有希望。
还要注意,他们提出的是完全编码的解决方案,因此无论是谁将这个帖子移到了 ServerFault - 请将其恢复回 StackOverflow。
答案1
如果您的 NamedPipe WCF 服务需要托管在全局对象中以便在会话之间进行通信,我会将其构建为单独的 Windows 服务,并让您的其他应用程序通过将托管您的 NamedPipe WCF 服务的新 Windows 服务相互通信。
答案2
这是因为一个名为 UAC 的功能。你为什么不把它关掉呢?这样你就不需要以提升的权限运行这些任务了,你的帐户只会在你正常运行程序时拥有这个安全权限。
请参阅此处,查看我找到的有关 UAC 及其在某些程序中可能出现的问题的文章。它专门解答了有关 Explorer 的问题,但原理仍然适用,并解释了 UAC 的工作原理和可能的解决方法。http://think-like-a-computer.com/2011/05/11/uac-access-denied-on-folders-for-administrators-windows-2008/