请考虑以下有关故障转移群集的 PowerShell 命令:
Get-ClusterGroup "UKMAC-XA54" | Get-ClusterResource
第一个 cmdlet 返回一个具有 Name、OwnerNode 和 State 字段的 ClusterGroup 对象。
Get-ClusterResource,如果留给它自己的设备,将返回有关集群中所有资源的信息。
但是,当在管道中使用时,显然会进行一些过滤。
我的问题是“这个过滤是如何工作的?”。PowerShell 如何知道使用 Get-ClusterGroup 中的 OwnerNode 字段来过滤 Get-ClusterResource?两个 cmdlet 中都有一个“名称”字段返回,为什么它不过滤“名称”?(这实际上不起作用)。
关于这个主题的参考链接会很棒。
管道对象(
Get-ClusterGroup
调用返回的一个/一个)将作为-InputObject
cmdletGet-ClusterResource
传递。如果您阅读-InputObject
参数的帮助,您可以看到这一点,其中指出参数接受管道输入(按值)。该
-InputObject
参数的文档进一步指出它“指定集群节点或集群组以枚举集群资源”。这意味着过滤是根据传递给此参数的对象完成的。我建议阅读有关管道如何工作的帮助部分,您可以运行它:
如果您运行以下命令,您可以阅读有关 cmdlet 的详细帮助
Get-ClusterResource
,以查看哪些参数接受管道输入(以及它们是按值还是按名称接受,您可以在有关管道的帮助部分中阅读更多信息):