我已经编写了一个脚本来使用foreach语法获取离线集群资源,它工作正常。但是我需要为 50 个集群获取集群离线资源,我已经尝试过foreach -parallel并且遇到了错误。
workflow Test-Workflow {
Param ([string[]] $clusters)
$clusters = Get-Content "C:\temp\Clusters.txt"
foreach -parallel ($cluster in $clusters) {
$clu1 = Get-Cluster -Name $cluster
$clustername = $clu1.Name
echo $clustername
$clu2 = Get-Cluster $clustername |
Get-ClusterResource |
where { $_.Name -and $_.state -eq "offline" }
echo $clu2
}
}
Test-Workflow
输出:
slchypervcl003 slchypervcl004
Get-ClusterResource :输入对象不能绑定到任何参数
该命令要么是因为该命令不接受管道输入,要么是
输入及其属性与任何采用管道的参数都不匹配
输入。
在测试工作流程:8 字符:8
+
+ CategoryInfo : InvalidArgument: (slchypervcl003:PSObject) [Get-ClusterResource], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.FailoverClusters.PowerShell.GetResourceCommand
+ PSComputerName:[本地主机]
Get-ClusterResource :输入对象不能绑定到任何参数
该命令要么是因为该命令不接受管道输入,要么是
输入及其属性与任何采用管道的参数都不匹配
输入。
在测试工作流程:8 字符:8
+
+ CategoryInfo : InvalidArgument: (slchypervcl004:PSObject) [Get-ClusterResource], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.FailoverClusters.PowerShell.GetResourceCommand
+ PSComputerName:[本地主机]