使用非管理员域帐户进行Powershell 4.0远程处理

使用非管理员域帐户进行Powershell 4.0远程处理,powershell,winrm,Powershell,Winrm,我正在寻求帮助,以便为一组服务器上的非管理员正确配置PowerShell远程处理。现在,我们有一个工作配置,允许管理员域帐户成功连接到服务器,没有错误。我们使用的身份验证方法是Credssp,使用SSL,这非常适合域管理员帐户 另一方面,我有这个用户域帐户userTest。此帐户映射到一个域组,该域组在本地(每台服务器上)映射到远程桌面用户组。这允许此用户成功RDP到此服务器,但没有管理员权限。它将继续保持这种方式,而不是让它成为本地管理员 此用户的目的是允许非管理员帐户使用与域管理员帐户连接的

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

另一方面,我有这个用户域帐户userTest。此帐户映射到一个域组,该域组在本地(每台服务器上)映射到远程桌面用户组。这允许此用户成功RDP到此服务器,但没有管理员权限。它将继续保持这种方式,而不是让它成为本地管理员

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

[ServerA]连接到远程服务器ServerA失败,错误消息如下:访问被拒绝。有关更多信息,请参阅关于远程故障排除帮助主题。
+CategoryInfo:OpenError:(ServerA:String)[],PSRemotingTransportException
+FullyQualifiedErrorId:AccessDenied,PSSessionStateBreaked

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

WSMan服务无法启动主机进程来处理给定的请求。确保WSMan提供程序主机服务器和代理已正确注册。

这是我已经设置的配置:

  • 已创建名为RemoteDesktopUsers的PSSessionConfiguration

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

  • 设置PSSessionConfiguration-名称RemoteDesktopUsers-ShowSecurityDescriptorRui (将远程桌面用户组添加到此会话配置中)

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

Windows Server 2008 R2 SP1
Powershell 4.0
Winrm ProductVersion=OS:6.1.7601 SP:1.0堆栈:3.0


您可能因为使用CredSSP而遇到此问题

您使用CredSSP有什么特殊原因吗?CredSSP最常用于需要将跳转服务器配置为从一台机器远程连接到另一台机器,然后再从那里连接到另一台服务器的情况。这是众所周知的第二跳功能,是一个巨大的安全漏洞,CredSSP是一种痛苦的配置,故意

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

如果你真的要使用CredSSP,在脚本编写者的博客上

如果您不需要CredSSP


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

感谢FoxDeploy,现在我们将RDP发送到一个服务器:“ServerDeploy”,脚本将从该服务器托管,然后我们将跳转到服务器场中使用脚本的每台服务器。对于这种情况,我是否需要CREDSSP?因此,您要说的是完全放弃Credssp配置。我不知道为什么要配置Credssp,只是按照这里已经配置的配置。是的,您不需要Credssp。因为您正在对该服务器进行rdping,并从那里执行PS远程处理,这只是PowerShell远程处理的一个跃点。但是,如果您从桌面PowerShell远程访问ServerDeploy,并从那里调用所有在别处远程访问的脚本,则需要CredSSP。使用second-hop的唯一好理由是用于超高安全性环境,在这种环境中,您只允许某些机器组由一部分人在一部分机器上进行远程管理。这被称为跳转服务器场景,在高端金融公司很常见。好的,我通过在客户端和服务器上运行Disable WsManCredSSP放弃了CreddSSP。已激活基本身份验证,并允许客户端和服务器上的未加密流量。仍在端口5986上使用SSL。访问仍然被拒绝。胡里奥,我会更简单地开始。从基本的、未加密的远程处理开始,然后在自定义端口或其他特定于域的安全要求上继续使用SSL之前使其工作。我现在已经尝试过了,未加密(HTTP)和基本身份验证(即使是很难的基本身份验证似乎也只适用于本地帐户)。我创建了一个本地用户帐户,并将他添加到远程桌面用户。此用户可以从远程连接,但只能在将其添加到组后进行连接。为了进行测试,我不允许管理员连接到microsoft.powershell端点,也不允许远程桌面用户连接:本地用户可以连接,域管理员无法连接,域用户无法连接。所以我想我需要在域级别配置一些东西。