Bei den Objekteigenschaften ist "Name" eine schreibgeschützte Eigenschaft und kann daher nicht zur Laufzeit geändert werden.
$objTest = New-Object -TypeName PSObject -Property @{ Foo = 42; Bar = 99 } $objTest.PSObject.Properties["Foo"].Name # Output: Foo. $objTest.PSObject.Properties["Foo"].Name = "NotFoo" # Output: 'Name' is a ReadOnly property.
Eine Alternative zum Erstellen einer neuen Eigenschaft und zum Kopieren von Werten kann die Erstellung einer neuen " AliasProperty " sein, bei der es sich um eine neue Eigenschaft (mit einem eigenen Namen) handelt, die einfach mit einer vorhandenen Eigenschaft verknüpft wird.
z.B.:
PS Y:\> $objTest | Add-Member -MemberType AliasProperty -Name Notfoo -Value Foo PS Y:\> $objtest Bar Foo Notfoo --- --- ------ 99 42 42 PS Y:\> $objtest.Foo = 123 PS Y:\> $objtest Bar Foo Notfoo --- --- ------ 99 123 123