2017-11-12 3 views
2

Ich habe ein Problem :( ich viele Fehler habe, wenn ich mit dem gleichen Namen von Eigentum Neues Objekt hinzufügen, die zuvor ObjektNew-Object-Add-Mitglied - kann kein Mitglied hinzufügen -. Powershell

„hinzufügen -Mitglied: kann ein Mitglied mit dem Namen „Servernamen“ hinzufügen, da ein Mitglied mit diesem Namen existiert bereits das Element ohnehin zu überschreiben, die Macht par messer auf Ihren Befehl hinzufügen „

es funktioniert, aber mit.. Fehler;) Habe jemand eine Lösung für mich ??

Im Folgenden Beispielcode:

$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" 

Antwort

4

Sie fügen das Element auf dem Array, nicht auf das Objekt. Versuchen Sie Folgendes:

$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, würde ich Folgendes tun:

$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" 
} 

Da Add-Member zerstört und erzeugt ein neues Objekt jedes Mal, es verwendet wird.

+0

Aber ich brauche alle in einem Objekt – mino

+0

In Ihrer Lösung Ausgabe von $ OutpuObj ist nur das letzte Mitglied - server2, ich brauche server1 und server2 in Ausgabe – mino

+0

Ja, nur erstellen, ich werde die Antwort aktualisieren. –

Verwandte Themen