h41msh1c0r
Goto Top

Powershell Array von CustomObjects

Guten Morgen in die Runde,

nach Quick-and-Dirty ist nun endlich Zeit den Spagetticode etwas zu strukturieren. =) (und noch etwas dabei zu lernen ^^)

$CoRegistry  = [pscustomobject]@{RebootPending = 0}
$CoConfig    = [pscustomobject]@{IP=0}
$CoServices  = [pscustomobject]@{RS = 0; FS = 0}
$CoDevices   = [pscustomobject]@{LW_C = 0}
$CoFiles     = [pscustomobject]@{NiLcl = 0}

$CustomObjectList = @($CoRegistry; $CoConfig; $CoServices; $CoDevices; $CoFiles)   

$CustomObjectList

Als Ausgabe bekomme ich derzeit nur das RebootPending, müsste er mir nicht eine Liste liefern mit mehreren geschweiften Klammern? Da ja jedes CustomObject member enthält?

Sinn und Zweck der Übung soll sein, das ich einer Funktion nur ein Array von CustomObjects übergebe und mich dann anhand dieser Arrays durcharbeite.
Auf diese Weise kann ich über eine Konfiguration das Ganze Dynamisch halten, falls später mal Dienste oder oder oder dazukommen.

VG

Content-Key: 359476

Url: https://administrator.de/contentid/359476

Printed on: April 23, 2024 at 09:04 o'clock

Mitglied: 135051
135051 Dec 29, 2017 updated at 11:10:17 (UTC)
Goto Top
müsste er mir nicht eine Liste liefern mit mehreren geschweiften Klammern? Da ja jedes CustomObject member enthält?
Nöp, ersetze die Semikolons durch Kommas face-smile
Wieso nutzt du nicht eine Hashtable, diese kannst du beliebig erweitern und dann daraus am Ende ein CustomObject machen ...
Member: H41mSh1C0R
H41mSh1C0R Dec 29, 2017 updated at 11:19:40 (UTC)
Goto Top
Das mit den Kommata habe ich bereits versucht, gleiches Ergebnis.

Spräche irgendwas gravierendes gegen ein Custom Object?
Mitglied: 135051
135051 Dec 29, 2017 updated at 11:21:02 (UTC)
Goto Top
Zitat von @H41mSh1C0R:

Das mit den Kommatas habe ich bereits versucht, gleiches Ergebnis.
K.A. wat du willst.
Spräche irgendwas gravierendes gegen ein Custom Object?
Nein, s.o., Hashtable erstellen und daraus ein CustomObject machen ...

Member hinzufügen kannst du jederzeit mit Add-Member
Member: H41mSh1C0R
H41mSh1C0R Dec 29, 2017 at 11:21:38 (UTC)
Goto Top
Ausgabe wenn ich ein Semikolon verwende:
$CustomObjectList = @($CoRegistry; $CoConfig; $CoServices; $CoDevices; $CoFiles)


$CustomObjectList





RebootPending
-------------
            0
             


Ausgabe wenn ich ein Komma verwende:
$CustomObjectList = @($CoRegistry, $CoConfig, $CoServices, $CoDevices, $CoFiles)


$CustomObjectList





RebootPending
-------------
            0

Aber es wird nur das RebootPending ausgegeben, nicht der Rest von der Liste.
Mitglied: 135051
Solution 135051 Dec 29, 2017 updated at 11:26:38 (UTC)
Goto Top
Och mönsch immer muss man hier vorbeten
$ht = @{
    RebootPending = 0
    IP = 0
    RS = 0
    FS = 0
    LW_C = 0
    nicLCl = 0
}
$CustomObject = [pscustomobject]$ht
$customobjectList = @()
$customobjectlist += $customobject
Erst Array erstellen dann hinzufügen.
Member: H41mSh1C0R
H41mSh1C0R Dec 29, 2017 updated at 11:29:03 (UTC)
Goto Top
ich habe schon verstanden worauf du hinaus wolltest, trotzdem danke.

*keks rüberschieb*

Die Frage die sich mir stellte warum wird nur das erste ausgegeben?

Kennst er die anderen Objekte mit einem mal nicht mehr, wenn die im Array sind?
Mitglied: 135051
Solution 135051 Dec 29, 2017 updated at 12:23:08 (UTC)
Goto Top
Zitat von @H41mSh1C0R:
Die Frage die sich mir stellte warum wird nur das erste ausgegeben?
Weil die Shell einfach nicht immer alles anzeigt wenn man es ihr nicht explizit sagt
$CustomObjectList | fl *
Zeigt dir alle.
Kennst er die anderen Objekte mit einem mal nicht mehr, wenn die im Array sind?
Doch, aber die Shell zeigt sie eben nur an wenn du es ihr auch sagst face-smile.
Member: H41mSh1C0R
H41mSh1C0R Dec 29, 2017 at 12:23:55 (UTC)
Goto Top
ok, notiert. =) Danke