Powershell invoke-command访问被拒绝错误 - 不是双跳

时间:2017-10-19 13:21:05

标签: powershell access-denied invoke-command

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

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

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

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

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

Test-WSMan $computer

如果有人对访问被拒绝错误的其他原因有所了解,我会非常感谢有关在哪里寻找的一些想法。

感谢。

2 个答案:

答案 0 :(得分:1)

我想这是一个许可问题。尝试通过

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

使用预先创建的会话对象调用Invoke-Command -Session $s -ScriptBlock { Get-Service }

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">


<div class="btn-group" role="group" aria-label="...">
  <a href="previousItemIfHas" class="btn btn-default" id="prev">←</a>

  <div class="btn-group" role="group">
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
      Jump to
      <span class="caret"></span>
    </button>
    <ul class="dropdown-menu">
      <li><a href="#">Assignment1</a></li>
      <li><a href="#">Quiz2</a></li>
      <li><a href="#">Quiz4</a></li>
      <li><a href="#">Assignment2</a></li>
    </ul>
  </div>
  
  <a href="nextItemIfHas" class="btn btn-default" id="next">→</a>
</div>



<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script>
$('#prev').hide();
$(".dropdown-menu li").click(function(){
      if($(this).next('li').length <= 0) {
      $('#next').hide();
      } else {
          $('#next').show();
      }

      if($(this).prev('li').length <= 0) {
           $('#prev').hide();
      } else {
           $('#prev').show();
      }
    
   });
</script>

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

希望有所帮助。

答案 1 :(得分:0)

您需要位于目标计算机上的Remote management users组中(如果是本地帐户)。这对于Invoke-Command的访问就足够了