3

I have a problem :( I have many errors when I add New object with the same name of property which previously Object .

"Add-Member : Cannot add a member with the name "ServerName" because a member with that name already exists. To overwrite the member anyway, add the Force par ameter to your command."

it works but with errors;) Have someone a solution for me ??

Below example code :

$OutputObj = @()

$OutputObj += New-Object -TypeName PSobject
$OutputObj | Add-Member -MemberType NoteProperty -Name ServerName -Value "server1"
$OutputObj | Add-Member -MemberType NoteProperty -Name Status -Value "online"
$OutputObj | Add-Member -MemberType NoteProperty -Name Uptime -Value "01:20"

$OutputObj += New-Object -TypeName PSobject
$OutputObj | Add-Member -MemberType NoteProperty -Name ServerName -Value "server2"
$OutputObj | Add-Member -MemberType NoteProperty -Name Status -Value "online"
$OutputObj | Add-Member -MemberType NoteProperty -Name Uptime -Value "01340"
0

1 Answer 1

5

You are adding the member on the array, not on the object. Try the following:

$OutputObj = @()

$NewObj = New-Object -TypeName PSobject
$NewObj | Add-Member -MemberType NoteProperty -Name ServerName -Value "server1"
$NewObj | Add-Member -MemberType NoteProperty -Name Status -Value "online"
$NewObj | Add-Member -MemberType NoteProperty -Name Uptime -Value "01:20"

$OutputObj += $NewObj

$NewObj = New-Object -TypeName PSobject
$NewObj | Add-Member -MemberType NoteProperty -Name ServerName -Value "server2"
$NewObj | Add-Member -MemberType NoteProperty -Name Status -Value "online"
$NewObj | Add-Member -MemberType NoteProperty -Name Uptime -Value "01340"
$OutputObj += $NewObj

Alernatively, I would do the following:

$OutputObj = @()
$OutputObj += New-Object -TypeName PSobject -Property @{
    ServerName = "server1"
    Status = "Online"
    Uptime = "01:20"
}


$OutputObj += New-Object -TypeName PSobject -Property @{
    ServerName = "server2"
    Status = "Online"
    Uptime = "01340"
}

Since Add-Member destroys and generates a new object each time it is used.

Sign up to request clarification or add additional context in comments.

2 Comments

But i need all in one object
In your solution output of $OutpuObj is only the last member - server2, I need server1 and server2 in output

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.