【问题标题】:Powershell invoke-command access is denied error - not a double hopPowershell调用命令访问被拒绝错误-不是双跳
【发布时间】:2023-08-28 06:59:01
【问题描述】:

我正在使用 Server 2016 和一些 Windows 10 客户端构建一个新网络。我已在所有客户端上成功运行 Enable-PSRemoting。从我运行的服务器:

Invoke-Command -ComputerName $computer -Scriptblock {'test'}

导致 [计算机] 连接到远程服务器失败并显示以下错误消息:访问被拒绝。 + CategoryInfo: OpenError: (computer:string) [], PSRemotingTransportException + FullyQualifiedErrorId: AccessDenied,PSSessionStateBroken

因为我只让远程计算机处理一个字符串,我相信这与我在论坛中看到的常见双跳问题无关。

我也可以在客户端机器上成功运行 WinRM:

Test-WSMan $computer

如果有人能深入了解导致访问被拒绝错误的其他原因,我将不胜感激有关在哪里查看的一些想法。

谢谢。

【问题讨论】:

    标签: powershell access-denied invoke-command


    【解决方案1】:

    您需要在目标机器上的Remote management users 组中(如果它是本地帐户)。这对于 Invoke-Command 访问来说已经足够了

    【讨论】:

      【解决方案2】:

      我猜是权限问题。尝试通过

      创建PsSession对象
      $s = New-PSSession -ComputerName "you_computer_name" -Credential(Get-Credential)
      

      使用预先创建的会话对象调用Invoke-Command

      Invoke-Command -Session $s -ScriptBlock { Get-Service }
      

      这应该返回远程机器的所有服务的列表。

      希望对您有所帮助。

      【讨论】:

      • 谢谢 - 这帮助我找到了问题。我尝试使用不同的用户帐户登录,发现一个有权运行调用命令的帐户。我试图使用没有完全权限的帐户。