【发布时间】:2020-06-25 14:08:33
【问题描述】:
我有一个对象,它有一个对象数组作为属性。
PS C:\> $Object
GroupType : Object
StateRevCounter : 3846
SchemaTag : Computer
PropGroupList : {DSM.MdsPropGroup, DSM.MdsPropGroup, DSM.MdsPropGroup, DSM.MdsPropGroup...}
PS C:\> $Object.PropGroupList
Tag PropertyList
--- ------------
BasicInventory {DSM.MdsTypedPropertyOfString, DSM.MdsTypedPropertyOfString, DSM.MdsTypedPr...
ClientInfo {DSM.MdsTypedPropertyOfNullableOfDateTime, DSM.MdsTypedPropertyOfNullableOf...
Computer {DSM.MdsTypedPropertyOfString, DSM.MdsTypedPropertyOfNullableOfDateTime, DS...
CustomPatchManagement {DSM.MdsTypedPropertyOfNullableOfBoolean, DSM.MdsTypedPropertyOfString}
HardwareBasedRemoteMgmt {DSM.MdsTypedPropertyOfString, DSM.MdsTypedPropertyOfNullableOfBoolean, DSM...
PS C:\> $Object.PropGroupList.PropertyList
TypedValue Tag Type
---------- --- ----
7.4.1.4461 ClientVersion String
Client ComputerRole Option
169 CPUArchitecture CatalogLink
2262 CPUType CatalogLink
DSMCLIENT00.Computers.ideri.dev DirectoryContext String
DSMClient00.ideri.dev FullQualifiedName String
InfrastructureRole Option
000C29E1B2FD InitialMACAddress String
227 InstalledOS CatalogLink
315 InstalledOSCulture CatalogLink
1458 InstalledOSFlavor CatalogLink
Windows 10 Enterprise 1511 InstalledOSFriendlyName String
DSM.MdsVersion InstalledOSVersion Version
4193 InstalledRAM Int32
66057 LastBootServer Int32
.....
现在我想为 $Object 创建 AliasProperties 以直接在 $Object 的输出中显示 $Object.PropGroupList.PropertyList 的值,如果 AliasProperty 发生更改,则在正确的位置更新值。
期望的输出:
PS C:\> $Object
BasicInventory_ClientVersion : 7.4.1.4461
BasicInventory_ComputerRole : Client
BasicInventory_CPUArchitecture : 169
...
GroupType : Object
StateRevCounter : 3846
SchemaTag : Computer
PropGroupList : {DSM.MdsPropGroup, DSM.MdsPropGroup, DSM.MdsPropGroup, DSM.MdsPropGroup...}
因此,如果我随后将 BasicInventory_ClientVersion 更新为例如 10.4.2.3333,则子属性(数组)中的相应值也会更新,反之亦然。
Add-Member -MemberType AliasProperty 甚至可以做到这一点吗?还是只能在对象的根目录中为属性添加 AliasProperties?
问候 赛博
【问题讨论】:
-
我会为此使用
ScriptProperty。
标签: arrays powershell properties add member