通过非管理员用户通过WinRM进行PowerShell远程处理

时间:2020-01-09 10:46:46  来源:igfitidea点击:

默认情况下,要使用PowerShell(PowerShell Remoting)连接到远程计算机,我们需要管理员权限。在本文中,我们将展示如何在安全组,组策略和PoSh会话描述符的修改的帮助下,使用PowerShell Remoting(WinRM)对普通用户(无管理员权限)进行远程连接。

尝试使用作为非特权用户帐户的远程计算机创建PowerShell会话(Enter-PSSession lon-srv1)时,发生访问错误:

Enter-PSSession:连接到远程服务器lon-srv1失败,并显示以下错误消息:访问被拒绝。

或者使用命令:

net localgroup "Remote Management Users" /add jsmith

如果需要在多台计算机上提供此类权限,则可以使用组策略。为此,请将GPO分配给所需的计算机,然后将新的"远程管理用户"组添加到"计算机配置"->" Windows设置"->"安全设置"->"受限制的组"策略中。将需要授予WinRM访问权限的用户或者组添加到策略中。

PowerShell会话的安全描述符

快速授予用户使用PowerShell Remoting权限而又不将其包括在本地安全组"远程管理用户"中的另一种方法是修改本地计算机上当前Microsoft.PowerShell会话的安全描述符。此方法将允许通过PowerShell快速向用户授予临时(直到下次重新启动)远程连接权限。

以下命令显示当前权限列表:

Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI

在此对话框窗口中,添加一个用户或者组,并授予他们"执行(调用)"权限。

然后,我们可以使用此SDDL字符串授予对任何其他服务器或者工作站上PowerShell的访问权限。

$SDDL = "O:NSG:BAD:P(A;;GA;;;BA)(A;;GXGR;;;S-1-5-21-2323243421-3342677354-2633435451-55422122)(A;;GA;;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)" Set-PSSessionConfiguration -Name Microsoft.PowerShell -SecurityDescriptorSddl $SDDL

远程Hyper-V管理也需要WinRM特权

在要使用Hyper-V Manager远程连接到Hyper-V服务器的Windows 10/Windows Server 2015中,开始使用PowerShell Remoting。因此,默认情况下,没有管理员特权的远程用户将无法管理Hyper-V服务器,即使他们在Hyper-V中具有相应的权限也是如此。

尝试从运行Windows 10的计算机作为普通用户连接到Hyper-V服务器时,出现以下错误:

尝试连接到服务器server1时发生错误,请检查虚拟机管理服务是否正在运行以及我们是否有权连接到服务器。

要允许远程连接到控制台,只需以相同的方式将Hyper-V用户添加到本地组"远程管理用户"就足够了。