我正在尝试通过Invoke-Command远程运行Get-ScheduledTask。
该用户是非管理员用户,但是“远程管理用户”的一部分。
PS远程处理效果很好。
在本地运行命令可以正常工作。
但是通过Invoke-Command运行它会得到以下错误:

Cannot connect to CIM server. Access denied
    + CategoryInfo          : ResourceUnavailable: (MSFT_ScheduledTask:String) [Get-ScheduledTask], CimJobException
    + FullyQualifiedErrorId : CimJob_BrokenCimSession,Get-ScheduledTask
    + PSComputerName        : us-web1
这是代码示例:
注意:此程序直接在有问题的非管理员用户下运行。
$servers = "us-web1","us-web2","us-engine1","us-engine2","us-engine3","us-engine4"

foreach ( $server in $servers ) {

Invoke-Command -ComputerName "$server" -ScriptBlock {

      get-scheduledtask
    }
}

最佳答案

尝试在没有管理员凭据的情况下远程使用get-printer命令时遇到了一个非常相似的问题。

我发现真正有用的是此链接:
https://social.technet.microsoft.com/Forums/exchange/en-US/b748d1bb-fa97-4c30-a626-145dfbc40873/service-acccount-permission-to-remote-powershell-to-dns-server-on-windows-server-2012?forum=winserverpowershell

我用于此问题的过程是:

  • 打开计算机管理控制台。右键单击WMI控件(在“服务和应用程序”下),然后单击“属性”。
  • 在新打开的窗口中,单击“安全性”选项卡。
  • 展开“根树”,然后单击节点CIMV2,然后单击“安全性”按钮
  • 在新打开的窗口中,单击高级按钮。
  • 在新打开的窗口中,单击权限选项卡下的添加按钮。
  • 在新打开的窗口中,单击“选择主体”,然后搜索并添加要访问的帐户或组作为主体,然后单击“确定”。
  • 在“应用于”中,选择“此命名空间和子命名空间”。
  • 要获得许可,请选中“执行方法”,“启用帐户”和“远程启用”。
  • 在所有打开的对话框中单击接受
  • 重新启动WMI服务
  • 尝试再次远程运行命令。它将再次失败,但是这次您将看到真正的问题。在错误中查找“权限被拒绝”,然后按照上述相同步骤操作,并授予对所示路径的访问权限。

  • 希望这可以帮助

    关于powershell - 在非管理员用户下从远程运行PS cmdlet-拒绝访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36329157/

    10-10 00:37
    查看更多