Top-Themen

Aktuelle Themen (A bis Z)

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

Powershell Arrayvariable in Schleife füllen

Mitglied: fisicgn

fisicgn (Level 1) - Jetzt verbinden

10.01.2014, aktualisiert 14:27 Uhr, 11158 Aufrufe, 5 Kommentare

Hallo zusammen,

ich möchte folgendes bewerkstelligen:

Ich habe eine Arrayvariable:
$store = @("Computer1_SN","Computer2_SN","Computer3_SN","Computer4_SN","Computer5_SN")
Nun durchlaufe ich bspw. dreimal eine Schleife:
for ($i=1; $i -le 3; $i++) {$store.ComputerX_SN = "Wert"}
Diese Schleife wird unterschiedlich oft durchlaufen (1 - 5 mal).
Ich möchte nun in meiner Arrayvariable das Feld "ComputerX_SN" dynamisch ansprechen.
Wie kann ich also das "X" als Variable angeben?

Ich hoffe, es ist verständlich und danke schon mal für die Antworten.

Danke & Grüße

Mitglied: colinardo
10.01.2014, aktualisiert um 13:21 Uhr
Hallo fisicgn, Willkommen im Forum!
das was du vorhast hat keinen Sinn denn du kannst dem Array-Element so selber keinen zusätzlichen Wert zuordnen, höchstens den Array-Wert neu setzen. Du solltest hier stattdessen mit einer Hashtable arbeiten:
01.
$store = @{"Computer1_SN"="";"Computer2_SN"="";"Computer3_SN"="";"Computer4_SN"="";"Computer5_SN"=""}
02.
for ($i=1; $i -le 3; $i++) {
03.
    $store["Computer$($i)_SN"] = "Das ist Testwert $i"
04.
}
05.
echo $store
Grüße Uwe
Bitte warten ..
Mitglied: fisicgn
10.01.2014, aktualisiert um 15:25 Uhr
Hallo Uwe,

ich habe deinen Vorschlag jetzt noch nicht getestet, aber er klingt soweit ganz gut.
Nur fällt mir dazu ein, warum ich kein Hash-Table verwenden wollte:
Ich würde abschließend gerne die Variable $store in eine csv-Datei exportieren. Und das habe ich mit meinem Array irgendwie einfacher hinbekommen:
$Array = @(.....)
[.....]
$Array | Export-Csv "C:\Array.csv" -NoTypeInformation -Delimiter:";"

Grüße
Markus
Bitte warten ..
Mitglied: colinardo
10.01.2014, aktualisiert um 15:30 Uhr
Zitat von fisicgn:
Ich würde abschließend gerne die Variable $store in eine csv-Datei exportieren. Und das habe ich mit meinem Array
irgendwie einfacher hinbekommen:
Hashtable Export in CSV, kein Problem:
01.
$obj = New-Object PSObject -Property $store
02.
$obj | Export-Csv "C:\Array.csv" -Delimiter ";" -NoTypeInformation
Grüße Uwe
Bitte warten ..
Mitglied: fisicgn
10.01.2014, aktualisiert um 16:02 Uhr
Hm, soweit auch ok...
ich brauche aber ein Table (Array oder Hash) in welchem ich auch mehrere Zeilen einspeichern kann. Also die Bezeichnungen "ComputerX_SN" sollen die Zeilentitel darstellen

Ich versuche mein Problem nochmal zu abstrahieren:
Ich gehe also bspw. in einer weiteren Schleife welche bspw. die Raumnummern darstellt

- Von Raumnummer 1 bis Raumnummer 10
- Schaue wie viele PCs im Raum sind (1-5) und erkenne die Seriennummern
- Jeder PC hat eine eigenständige Nummer (1-5) zusätzlich zur Seriennummer

- Raum 1 hat drei PCs; PC1, PC3 und PC5. PC2 und PC4 fehlen

- Nun soll eine Variable (Hash oder Array) gefüllt werden
Titelzeile: Computer1_SN;Computer2_SN,Computer3_SN,Computer4_SN,Computer5_SN,
1. Zeile (=1. Raum): Serial1;;Serial3;;Serial5
usw.

Grüße
Markus

PS:
Muss ich vielleicht einfach einmal das Hash-Table erstellen so wie du es geschrieben hast, und dann erstelle ich noch ein Array und hänge dann immer am Ende der Schleife den Hash-Table ins Array an:
$Array += $Hashtable
Bitte warten ..
Mitglied: colinardo
10.01.2014, aktualisiert um 16:59 Uhr
Zitat von fisicgn:
$Array += $Hashtable
das ist schon der richtige Ansatz:
Du erstellst ein leeres Array, dann machst du aus einem Array in dem die Computernamen stehen ein PS-Objekt und hängst das an dein Array an. Das sind dann quasi die Überschriften. Für die Räume arbeitest du dann mit einer Hashtable und weist in dieser den Rechnern die Seriennummern zu machst daraus ein PS-Object und hängst dies dann wieder an das Array dran, usw.
01.
$arr = @()
02.
# Überschriften 
03.
$arr += New-Object PSObject -Property @("Computer1_SN","Computer2_SN","Computer3_SN","Computer4_SN","Computer5_SN")
04.

05.
for ($i=1; $i -le 10; $i++) {
06.
    # Zeile mit entsprechender Zuordnung zum Array hinzufügen
07.
    $arr += New-Object PSObject -Property @{"Computer1_SN"="Serial1";"Computer2_SN"="Serial2";"Computer3_SN"="Serial3";"Computer4_SN"="Serial4";"Computer5_SN"="Serial5"}
08.
}
09.
# Exportieren
10.
$arr | Export-Csv "C:\Temp\test.csv" -Delimiter ";" -NoTypeInformation
denke jetzt sollte die Methode klar sein.

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Backup
Full Backup eines MSA 2040
Frage von TheGoodOneBackup3 Kommentare

Hallo und Guten Tag liebe Forengemeinde Ich stehe vor einem Problem. Wir betreiben ein MSA 2040 und haben auf ...

Backup
Iperius Backup Full Version 4.9.3
gelöst Frage von JudgelgBackup4 Kommentare

Hallo, wir setzen bei uns "Iperius Backup Full" ein. Jetzt bin ich gerade dabei Exchange Backup einzurichten. Leider funktioniert ...

Multimedia & Zubehör
Welchen Beamer mit FULL HD?
gelöst Frage von xbast1xMultimedia & Zubehör4 Kommentare

Hallo zusammen, wir benötigen einen neuen Beamer. Der "alte" hat nach 7 Jahren ausgedient. Verwendet wurde die Marke DELL. ...

Off Topic
Full IT Service Dienstleister kosten
Frage von opc123Off Topic6 Kommentare

Hallo, mir stellt sich die Frage was so ein Fullservice ca. Kostet? Unser Fall 170 Mitarbeiter 680 User (Schüler) ...

Neue Wissensbeiträge
Windows 10

"Windows 10 Pro V1903: Gruppenrichtlinie "Telemetrie zulassen" aktivierbar?"

Tipp von Snowbird vor 3 StundenWindows 101 Kommentar

Sicherheits-Tools

TrendMicro Worry-Free Business Security 10.0 SP1 - Jetzt in Deutsch verfügbar! (Windows 10 1903 Support)

Tipp von TrinXx vor 1 TagSicherheits-Tools1 Kommentar

Moin! Nach wochenlangem Warten wird Trend Micro das SP1 für WFBS 10 voraussichtlich am 26.08.19 veröffentlichen. Ich habe das ...

Hyper-V
Setup VM W2016 startet nicht in Hyper-V 2016
Erfahrungsbericht von keine-ahnung vor 2 TagenHyper-V7 Kommentare

Moin, sitze gerade über meinem neuen Server und versuche, die VM auf den Host zu prügeln. Jetzt wollte ich ...

Server-Hardware

HPE Proliant ML350P Gen8 Probleme mit Zugriff auf Raid-Volumes

Erfahrungsbericht von goscho vor 3 TagenServer-Hardware1 Kommentar

Hallo Leute, das Problemgerät: HPE ML350P G8 Windows Server 2012R2 HyperV-Host 8 x 300 GB 10K SAS HDD (1 ...

Heiß diskutierte Inhalte
Server
Ein Server ins Haus stellen. Was brauche ich dafür?
Frage von JoschiTomServer13 Kommentare

Hallo Community, ich spiele mit dem Gedanken eine Server mir zu holen. Was brauche ich dafür? Und wie sind ...

Windows Server
Ist es möglich, eine deutsche W2016 Installation mit einer UK-Lizenz zu aktivieren?
gelöst Frage von keine-ahnungWindows Server10 Kommentare

Moin at all, ist ja noch Freitag. Ich habe hier noch zwei UK OEM W2016 Standard Pakete rumfliegen Muss ...

Batch & Shell
Mittels SED Text ersetzen in Anführungszeichen
gelöst Frage von nekronBatch & Shell9 Kommentare

Moin … bin nicht wirklich der SED/regex Mensch, vielleicht kann mir jemand auf die Schnelle Helfen :) ich habe ...

LAN, WAN, Wireless
Mikrotik Gast-Wlan keine Verbindung zum Internet?
Frage von dirkschwarzLAN, WAN, Wireless8 Kommentare

Guten Morgen, habe ein wahrscheinlich einfaches Problem, bei dem ich aber nicht wirklich weiter komme Ich möchte ein Gast-Wlan ...