$Obj = New-Object -TypeName PSObject$Obj | Add-Member -MemberType NoteProperty -Name "Value1" -Value 10
Using the Add-Member cmdlet, we declare the member type that we are adding “NoteProperty”. Then we provide it with a name and a value. In PowerShell V3, two new parameters were added to the Add-Member cmdlet. They are –NotePropertyName and –NotePropertyValue. Below is the same object created with this new method.
$Obj = New-Object -TypeName PSObject
$Obj | Add-Member -NotePropertyName "Value1" -NotePropertyValue 10If your code will be running on clients or servers using PowerShell V2, do not use this new method. Take a look at the screen shot below.
You can see that the script successfully executes in PowerShell V3. When I switch the shell to the V2 engine and then executed the code, PowerShell V2 hit a run time error because its version of Add-Member does not have a parameter for ‘NotePropertyName’.
Just one of the little hidden tricks inside of PoSH V3. As always, code for the lowest level of PowerShell that your code will execute on.