Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Frage zu Powershell Custom Object

Frage Entwicklung Batch & Shell

Mitglied: Scroller

Scroller (Level 1) - Jetzt verbinden

25.06.2014 um 06:22 Uhr, 1542 Aufrufe, 2 Kommentare

Hallo,

ich will mir in Powershell ein Objekt mit mehreren "Datensätzen" Erzeugen.

so..

$object = New-Object –TypeNamePSObject
$object | Add-Member –MemberTypeNoteProperty –Name OSBuild –Value $os.BuildNumber

..kann ich mir ja ein neues Objekt erzeugen und Members sowie Werte hinzufügen.

Ich will jedoch dass $object eine Art Array wird in dem ich weitere Datensätze hinzufügen oder auch löschen kann.

Geht das mit New-Object, wenn aj wie?

Danke!

Schroller
Mitglied: colinardo
LÖSUNG 25.06.2014, aktualisiert um 11:16 Uhr
Hallo Scroller,
ja kein Problem, Beispiel mit einer ArrayList:
01.
# Arraylist erzeugen 
02.
$array = new-object System.Collections.ArrayList 
03.
 
04.
# Objekte mit Eigenschaften und zugehörigen Werten erzeugen 
05.
$obj1 = new-Object PSObject -Property @{"Eigenschaft1"=Auto";"Eigenschaft2"="BMW"} 
06.
$obj2 = new-Object PSObject -Property @{"Eigenschaft1"="Motorrad";"Eigenschaft2"="Ducati"} 
07.
 
08.
# Objekte zur ArrayList hinzufügen (das out-null verhindert nur das der Index auf der Konsole ausgegeben wird) 
09.
$array.Add($obj1) | out-null 
10.
$array.Add($obj2) | out-null 
11.
 
12.
# Objekte aus dem Array löschen 
13.
# ... via Objekt 
14.
$array.Remove($obj1) 
15.
# ... via Index 
16.
$array.RemoveAt(0) 
17.
# ... via Index für einen Range z.B ab Index 0 entferne 2 Objekte 
18.
$array.RemoveRange(0,2)
alternativ kannst du es auch mit einem Standardarray so machen:
01.
# Array erzeugen 
02.
$array = @() 
03.
 
04.
# Objekte direkt an das Array anhängen 
05.
$obj1 = new-Object PSObject -Property @{"Eigenschaft1"=Auto";"Eigenschaft2"="BMW"} 
06.
$obj2 = new-Object PSObject -Property @{"Eigenschaft1"="Motorrad";"Eigenschaft2"="Ducati"} 
07.
 
08.
# Einträge daraus löschen 
09.
# z.B. das erste Objekt im Array anhand dessen Wert 
10.
$array = $array | ?{$_.Eigenschaft1 -ne "Auto"}
Zum entfernen benutzt du dann die Standardmethoden zum Filtern der Einträge mit Where-Object (Im Beispiel ist ?{} die Abkürzung dafür)

Noch zur Info so nebenbei: Ab PS3.0 gibt es noch einen performanteren Weg "CustomObjects" zu erzeugen:
$obj = [pscustomobject]@{Wert1=1; Wert2=2; Wert3=3}
Grüße Uwe
Bitte warten ..
Mitglied: Scroller
25.06.2014 um 11:17 Uhr
Hallo Uwe,

danke für Deine Unterstützung.
Das wars!

Gruss
SC
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Transpose Objects und Memoryleak (11)

Frage von agowa338 zum Thema Batch & Shell ...

Batch & Shell
Adobe PDF, Custom Property (6)

Frage von DanielBodensee zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell Where-Object multiple Conditions (2)

Frage von derhoeppi zum Thema Batch & Shell ...

Batch & Shell
gelöst Erneute Frage: Powershell in Batch mit Html (6)

Frage von michi-ffm zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
Jeden morgen Internet-Probleme (51)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (21)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows 7
Bluesreens unternehmensweit (19)

Frage von SYS64738 zum Thema Windows 7 ...