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, 1533 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 Erneute Frage: Powershell in Batch mit Html (6)

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

Batch & Shell
Frage zum Einsatz von Powershell, welche Version verwenden (3)

Frage von Penny.Cilin zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - Verwendung von PSSession erzeugt Fehlermeldung (2)

Frage von Dani zum Thema Batch & Shell ...

Windows Tools
Reg Auswertung mit Powershell (1)

Frage von Bommi1961 zum Thema Windows Tools ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Basic
Programmierung von Windows Programmen (9)

Frage von Ghost108 zum Thema Basic ...

C und C++
Fehlendes verständiss von C und C++ (8)

Frage von zelamedia zum Thema C und C ...