我正在尝试通过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
Run Code Online (Sandbox Code Playgroud)
这是代码示例:
$servers = "us-web1","us-web2","us-engine1","us-engine2","us-engine3","us-engine4"
foreach ( $server in $servers ) {
Invoke-Command -ComputerName "$server" -ScriptBlock {
get-scheduledtask
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我在尝试在没有管理员凭据的情况下远程使用 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 服务
再次尝试远程运行您的命令。它会再次失败,但这次你会看到真正的问题。查看“权限被拒绝”的错误,然后按照与上述相同的步骤操作并授予对所示路径的访问权限。
希望这可以帮助
小智 0
这可能是凭据未通过的问题。尝试添加 get-credential 并将其添加到您的调用命令中。您可以使用相同的凭据,只需尝试直接传递即可。
像这样:
$Cred = Get-Credential
Invoke-Command -Credential $Cred -ScriptBlock {Get-ScheduledTask}
| 归档时间: |
|
| 查看次数: |
4321 次 |
| 最近记录: |