我正在尝试通过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
}
}
答案 0 :(得分:2)
我遇到了一个非常类似的问题,试图在没有管理员凭据的情况下远程使用get-printer命令。
我用于解决问题的过程是:
打开计算机管理控制台。右键单击WMI Control(在“服务和应用程序”下),然后单击“属性”。
在新打开的窗口中,单击“安全”选项卡。
展开根树,然后单击节点CIMV2,然后单击按钮安全性
在新打开的窗口中,单击“高级”按钮。
在新打开的窗口中,单击权限选项卡下的添加按钮。
在新打开的窗口中,单击“选择主体”,然后搜索并添加要作为主体访问的帐户或组,然后单击“确定”。
在apply for中,选择“this namespace and subnamespace”。
有关权限,请检查“执行方法”,“启用帐户”和“远程启用”
点击所有打开的对话框上的接受
重启WMI服务
再次尝试远程运行您的命令。它会再次失败,但这次你会看到真正的问题。查看错误"权限被拒绝"然后按照上述步骤操作,并授予对显示路径的访问权限。
希望这有帮助
答案 1 :(得分:0)
这可能是凭证无法通过的问题。尝试添加get-credential并将其添加到invoke-command。您可以使用相同的信用卡,只需尝试直接传递即可。
像这样:
$Cred = Get-Credential
Invoke-Command -Credential $Cred -ScriptBlock {Get-ScheduledTask}