gpt4 book ai didi

Powershell 枚举属性的属性

转载 作者:行者123 更新时间:2023-12-03 18:36:27 25 4
gpt4 key购买 nike

我有一个从设备寄存器收集信息的命令行开关:

PS C:\windows\system32> Get-PSDevice serverA

HostName: ServerA
OOB:
Criticality: Normal
IsVirtual: True

等等

其中一些在内部有一个“子属性”数组,例如:

Cluster : @{Url=https://ps-apps.com/DeviceRegister/api/Clusters/62; VCenterUrl=https://ps-apps.com/DeviceRegister/api/VCenters/2; ClusterId=62; VCenterId=2; Name=Vcenter 1 ABC Prod; DataCenterUrl=https://ps-apps.com/DeviceRegister/api/DataCenters/3; DataCenter=; IsValidated=True; IsExceptionCluster=False; SupportsProdWorkloads=False; SupportsNonProdWorkloads=False; SupportsSqlWorkloads=False; ManagedByabc=False}

我可以使用类似这样的方法在数组中获取我想要的任何属性:

(Get-PSDevice ServerA).cluster.name

我正在尝试确定一种使用 foreach 类型语句来枚举所有子属性的方法来填充一个值。

实现此目标的最佳方法是什么?

最佳答案

PowerShell 中的每个对象都有一个隐藏的 .PSObject 属性,它告诉您有关该对象的信息。 its 属性之一是 .Properties 属性(正如 PetSerAl 指出的那样,它不是属性,实际上是 MemberSet,尽管您可以访问它具有属性语义)。

(Get-PSDevice ServerA).cluster.PSObject.Properties

这将返回 [PSProperty] 对象,向您显示有关属性的信息(名称、值、类型、是否可获取和可设置等)。

关于Powershell 枚举属性的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44710664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com