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