繁体   English   中英

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

[英]Running PS cmdlets from remote under non-admin users - Access Denied

我正在尝试通过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服务器上,Windows的服务器-2012?论坛= winserverpowershell

我用于我的问题的过程是:

  1. 打开计算机管理控制台 右键单击WMI Control(在“服务和应用程序”下),然后单击“属性”。

  2. 在新打开的窗口中,单击“安全”选项卡。

  3. 展开根树,然后单击节点CIMV2,并单击按钮安全性

  4. 在新打开的窗口中,单击“高级”按钮。

  5. 在新打开的窗口中,单击权限选项卡下的添加按钮。

  6. 在新打开的窗口中,单击“选择主体”,然后搜索并添加要作为主体访问的帐户或组,然后单击“确定”。

  7. 在apply中,选择“this namespace and subnamespace”。

  8. 要获得权限,请选中“执行方法”,“启用帐户”和“远程启用”

  9. 在所有打开的对话框上单击“接受”

  10. 重启WMI服务

  11. 尝试再次远程运行您的命令。 它会再次失败,但这次你会看到真正的问题。 查看错误“拒绝权限”,然后按照上述步骤操作,并授予对显示路径的访问权限。

希望这可以帮助

这可能是凭证无法通过的问题。 尝试添加get-credential并将其添加到invoke-command。 您可以使用相同的信用卡,只需尝试直接传递即可。

像这样:

$Cred = Get-Credential Invoke-Command -Credential $Cred -ScriptBlock {Get-ScheduledTask}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM