3

我正在寻求帮助,以便为一组服务器上的非管理员正确配置 PowerShell Remoting。现在我们有一个工作配置,允许管理域帐户成功连接到服务器而没有错误。我们使用的身份验证方法是Credssp,使用SSL,这非常适合域管理员帐户。

另一方面,我有这个用户域帐户userTest。此帐户映射到本地(在每台服务器上)映射到远程桌面用户组的域组。这允许此用户成功地 RDP 到此服务器,但没有管理员权限。它将保持这种状态,并且不能将其设为本地管理员。

此用户的目的是允许非管理员帐户使用受限会话对服务器执行一组脚本,该会话与域管理员帐户连接。当我尝试连接userTest帐户时,问题就出现了。服务器响应访问被拒绝错误:

[ServerA] Connecting to remote server ServerA failed with the following error message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic. + CategoryInfo : OpenError: (ServerA:String) [], PSRemotingTransportException + FullyQualifiedErrorId : AccessDenied,PSSessionStateBroken

通过分析事件日志,我发现一条错误消息如下:

The WSMan service could not launch a host process to process the given request. Make sure the WSMan provider host server and proxy are properly registered.

这是我已经设置的配置:

  • 创建了一个名为 RemoteDesktopUsers 的 PSSessionConfiguration

  • 注册-PSSessionConfiguration -Name RemoteDesktopUsers -StartupScript C:\Start.ps1

  • Set-PSSessionConfiguration -Name RemoteDesktopUsers -ShowSecurityDescriptorUI(将远程桌面用户组添加到此 SessionConfiguration)

所以是的,基本上从我已经用谷歌搜索的内容来看,这应该是您能够使用非管理员帐户进行 PSRemote 所需的所有必要配置。正如我已经提到使用连接到此 SessionConfiguration 的域管理员帐户工作正常,所以我认为我缺少某种允许此用户访问的权限/特权/SDDL:

Windows Server 2008 R2 SP1
Powershell 4.0
Winrm ProductVersion = 操作系统:6.1.7601 SP:1.0 堆栈:3.0

4

1 回答 1

1

由于使用 CredSSP,您可能会遇到此问题

您必须使用 CredSSP 的任何特殊原因?CredSSP 最流行的用途是为您需要将跳转服务器配置为从一台机器远程到另一台机器,然后再从那里再到另一台服务器的情况。它以 Second-Hop 功能而闻名,并且是一个巨大的安全漏洞,以至于有意配置 CredSSP 有点痛苦。

您必须在三个地方配置 CredSSP,一次是在您要远程处理的机器上,然后是要跳转到的机器上,最后是要从跳转服务器连接到的每台机器上。

如果您真的必须使用 CredSSP,请在 The Scripting Guy 的博客上 遵循这个很棒的指南。

如果您不需要 CredSSP

尝试使用 Default/WSman 授权的整个过程,我敢打赌问题会消失。

于 2015-04-28T20:21:38.483 回答