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