即使 AllowRemoteRPC 设置为 1,查询会话命令仍会给出错误代码 5

即使 AllowRemoteRPC 设置为 1,查询会话命令仍会给出错误代码 5

在 cmd 中,“查询会话”命令正在返回,

Error 5 getting sessionnames
Error [5]:Access is denied

在 Windows 10 远程桌面上 - 管理员用户。

AllowRemoteRPC我们将的值设置为 1

在此之下HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server

但问题仍然存在。

问题:

  • 它实际上起什么作用AllowRemoteRPC以及它的价值是如何被使用的。
  • 如何使查询会话命令起作用。

答案1

我认为问题出在 UAC 远程限制上。

在目标计算机上执行以下操作:

  • 跑步regedit
  • 导航到以下注册表子项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    
  • 如果LocalAccountTokenFilterPolicy不存在名为注册表项的条目,则将其创建为 DWORD

  • 双击LocalAccountTokenFilterPolicy并将其值设置为1

参考:

微软的 Windows Vista 中的用户帐户控制和远程限制说明

答案2

您无需更改注册表值,始终可以使用PSEXEC命令提示符或 PowerShell 提示符中的 Invoke-Command 在QWINSTA本地执行。这两种方法都要求您在远程计算机上拥有管理权限(这意味着在其他凭据下打开命令提示符,包括以开关形式出现的凭据,PSEXEC或者在 PowerShell 的情况下,包括-Credential (Get-Credential)在命令中)。

命令提示符示例:

PSEXEC \\MYPC cmd /c "qwinsta /server:localhost"

PowerShell 示例:

Invoke-Command -ComputerName MyPC -ScriptBlock { qwinsta /server:localhost }

答案3

对于我来说,错误 5 在正常运行几天后(本地或远程使用 PC)就会出现。

我已经设定好了LocalAccountTokenFilterPolicy=1AllowRemoteRPC=1不需要任何帮助。

重新启动有帮助,但我不想......

解决方案是重新启动终端服务;例如以管理员身份从命令提示符(本地时)

net stop TermService
net start TermService

或者通过services.msc所谓的“远程桌面服务”,它也应该通过远程桌面工作。

相关内容