powershell – 在非管理员用户下从远程运行PS cmdlet – 拒绝访问

我正在尝试通过Invoke-Command远程运行Get-ScheduledTask.

用户是非管理员,但是“远程管理用户”的一部分.

PS-Remoting工作正常.

在本地运行命令工作正常.

但是通过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 Control(在“服务和应用程序”下),然后单击“属性”.
>在新打开的窗口中,单击“安全”选项卡.
>展开根树,然后单击节点CIMV2,并单击按钮安全性
>在新打开的窗口中,单击“高级”按钮.
>在新打开的窗口中,单击权限选项卡下的添加按钮.
>在新打开的窗口中,单击“选择主体”,然后搜索并添加要作为主体访问的帐户或组,然后单击“确定”.
>在apply to中,选择“this namespace and subnamespace”.
>如果是权限,请选中“执行方法”,“启用帐户”和“远程启用”
>在所有打开的对话框上单击“接受”
>重启WMI服务
>再次尝试远程运行命令.它会再次失败,但这次你会看到真正的问题.查看错误“拒绝权限”,然后按照上述步骤操作,并授予对显示路径的访问权限.

希望这可以帮助

点赞