在我的应用程序的一个模块中,我需要调用WTS32api : WTSEnumerateSessions
返回错误代码 5 的函数。
这里是关于 SO 的问题关于:
根据那里提供的建议,我想检查特定组/用户是否启用了“查询信息”权限。
我可以在 Windows Server 2008 上借助此工具进行检查文档。
在 RD 会话主机服务器上,打开“远程桌面会话主机配置”。要打开“远程桌面会话主机配置”,请单击“开始”,指向“管理工具”,指向“远程桌面服务”,然后单击“远程桌面会话主机配置”。
在“连接”下,右键单击连接的名称,然后单击“属性”。
在连接的“属性”对话框中,在“安全”选项卡上,根据您的环境配置适当的权限,然后单击“确定”。
就我而言,“安全”选项卡上,单击“高级”,然后编辑特定的权限。
但在我遇到问题的机器上安装了 Windows 10。
我如何在 Windows 10 上检查这一点?
答案1
您正在寻找的安全设置由 Windows Server 的远程桌面会话主机角色公开。您无法在 Windows 的工作站版本上安装此角色,它们也不支持同时传入的 RDP 连接,因此该对话框在 Windows 10 中无法访问,因为它没有任何用处。
我不知道有没有什么办法可以解决这个问题。
值得一提的是,管理员组的成员可以枚举 Windows 机器(包括 Windows 10)上的活动 RDP 会话。
答案2
我知道这是一篇旧帖子,但我还是找到了这篇文章,试图找出为什么 RPC 需要远程桌面权限才能使某些功能在客户端之间运行。(错误 (5) 引起了我的注意。当 RPC 未激活或用户没有 RPC 访问权限时,您会得到错误 (5)。)
TL;DR:在您的机器上启用 RPC,当然风险自负。
就我而言,我编写了一个小脚本来查看谁在共享计算机上连接,因为我们一次只允许 1 个用户访问(有些用户在离开工作站时倾向于保持会话打开,有时 10 分钟的超时时间对于其他没有耐心的用户来说太长了,哈哈……)。我在包装在 exe 中的简单批处理脚本中使用“查询用户”命令或“quser”(因此用户实际上无法查看或修改脚本。)
我网络上的一些用户使用默认内置的“远程访问用户”组权限,而不是我们为上述共享计算机设置的自定义权限 1(都是我的错,我授予这些用户权限时没有注意,或者说我认为他们不需要权限。但事实是,他们需要权限),导致该特定脚本无法运行。相反,它正在运行,但返回了错误的信息,因为它需要管理员权限才能运行。而网络上的其他用户则运行正常,他们被授予了共享计算机的自定义权限。我可能不必告诉你,但我搜索了一段时间才发现发生了什么。不知道为什么,但 RPC 和 RDP 似乎以某种方式相互关联。