- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个从设备寄存器收集信息的命令行开关:
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/
我是一名优秀的程序员,十分优秀!