Array oder Object oder wie soll ich das machen
Hallo,
mal wieder verzweifelt.
Wahrscheinlich ist die Lösung einfach, aber ich habe gerade keinen Kopf mehr zum klar denken.
Folgendes Problem:
Ich greife per Powershell auf eine Access-Abfrage um an Benutzerdaten von Benutzern zu kommen, die sich bereits seit einiger Zeit nicht mehr am System angemeldet haben.
Benötigt werden die Daten "Name", "Vorname","LastLogonTimestamp","tutorName" und "TutorID"
Die Abfrage existiert bereits und der Zugriff mit der Shell funktioniert auch.
Da es jetzt vorkommen kann, das mehrere Benutzer den gleichen Tutor haben, möchte ich irgendwie an die Benutzer pro Tutor kommen.
Ich hatte mir gedacht, das das über ein array gehen sollte. Kenne mich aber leider nur mit eindimensionalen Arrays aus.
Das ganze sollte dann vielleicht so aussehen:
Name Vorname Lastlogontimestamp tutorname tutorid
Muster Max 12.12.2012 Hempel 1
.... ....... ............. .
Wie kann ich sowas realisieren?
Habe es schonmal über ein Objekt versucht, da ich hier aber leider auch nicht so bewandert bin, ohne Erfolg.
Wenn noch weitere Angaben benötigt werden, einfach melden ;)
Hoffe es kann mir jemand helfen.
Grüße
mal wieder verzweifelt.
Wahrscheinlich ist die Lösung einfach, aber ich habe gerade keinen Kopf mehr zum klar denken.
Folgendes Problem:
Ich greife per Powershell auf eine Access-Abfrage um an Benutzerdaten von Benutzern zu kommen, die sich bereits seit einiger Zeit nicht mehr am System angemeldet haben.
Benötigt werden die Daten "Name", "Vorname","LastLogonTimestamp","tutorName" und "TutorID"
Die Abfrage existiert bereits und der Zugriff mit der Shell funktioniert auch.
Da es jetzt vorkommen kann, das mehrere Benutzer den gleichen Tutor haben, möchte ich irgendwie an die Benutzer pro Tutor kommen.
Ich hatte mir gedacht, das das über ein array gehen sollte. Kenne mich aber leider nur mit eindimensionalen Arrays aus.
Das ganze sollte dann vielleicht so aussehen:
Name Vorname Lastlogontimestamp tutorname tutorid
Muster Max 12.12.2012 Hempel 1
.... ....... ............. .
Wie kann ich sowas realisieren?
Habe es schonmal über ein Objekt versucht, da ich hier aber leider auch nicht so bewandert bin, ohne Erfolg.
Wenn noch weitere Angaben benötigt werden, einfach melden ;)
Hoffe es kann mir jemand helfen.
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 303518
Url: https://administrator.de/contentid/303518
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
4 Kommentare
Neuester Kommentar
Moin.
Schreibe deine Daten in ein Array aus Objekten und gruppiere sie dann:
Erstelle zuerst ein leeres Array
Dann fügst du in der Schleife in der du deine Daten aus Access ausließt jeweils immer ein Object deinem Array hinzu
Und zum Schluss gruppierst du das Array aus den Objekten anhand der Eigenschaft tutorid.
feddich. In der Eigenschaft Group findest du dann zu jeder TutorId die jeweilig zugehörigen Objekte.
Gruß jodel32
aber ich habe gerade keinen Kopf mehr zum klar denken.
joa, dann ist aber ne große Ladung Kaffee fällig Schreibe deine Daten in ein Array aus Objekten und gruppiere sie dann:
Erstelle zuerst ein leeres Array
$array = @()
while(!$rs.EOF){
$array += [pscustomobject] @{Name=$rs.Fields('Name').Value; Vorname=$rs.Fields('Vorname').Value;tutorid=$rs.Fields('Vorname').Value}
$rs.MoveNext()
}
$array | group tutorid
Gruß jodel32
Zitat von @Druide83:
vielen Dank für deine Antwort. Leider war ich da auch schon und hat mir nicht geholfen.
Doch das hilft und ist die gängigste Methode dafür!vielen Dank für deine Antwort. Leider war ich da auch schon und hat mir nicht geholfen.
Es soll dann ja pro Tutor eine Email mit den ihm zugeordneten Mitarbeitern gesendet werden.
Hier habe ich ein Array das pro Eintrag tutor, name und vorname enthält. Ich kann aber nicht auf alle tutoren geehen wie mit $array.tutor
Du machst das so wie ich oben geschrieben habe und erstellst für jede Zeile deiner Daten ein Objekt das du in das Array packst, dann hat du ein Array aus Objekten welches du wie oben gruppierst und dann auf die User der jeweiligen Gruppe zugreifen kannst:Hier habe ich ein Array das pro Eintrag tutor, name und vorname enthält. Ich kann aber nicht auf alle tutoren geehen wie mit $array.tutor
In der Foreach-Schleife ist dann in $_.Name die TutorID und in $_.Group alle User-Objekte die zur TutorID gehören.
$array | group tutorid | %{
write-host "TutorID: $($_.Name)"
write-host "Mitglieder: $($_.Group | ft | out-string)"
}
$_.Group | %{
$_.EmailAddress
$_.Name
$_.Vorname
# etc.
}
Schau dir einfach mal die Objekte in der Konsole an dann weist du auch was ich meine!
Du solltest wirklich mal eine Pause machen. Denn ich hab jetzt kein Bock dir das jetzt 20 mal zu erklären ...