我已经编写了一个脚本来使用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:[本地主机]