Powershell Array wird nicht richtig gefüllt
Hallo,
ich habe das Problem das mein Script abhängig von der Anzahl der gefunden Usern, das Array $CsvSortResult unterschiedlich füllt.
Wenn ich mehr als einen User habe tut, das Script was es soll. Habe ich nur einen User, wird der User "zerhackt"
1
Muster Erwin Z12345
Z12345
Z
Ich erwarte anstelle von "Z" als Ausgabe von $CsvSortResult."Username", den vollständigen Usernamen "Z12345".
Was übersehe ich? Für jeden Hinweis dankbar.
Schnerpf
ich habe das Problem das mein Script abhängig von der Anzahl der gefunden Usern, das Array $CsvSortResult unterschiedlich füllt.
Wenn ich mehr als einen User habe tut, das Script was es soll. Habe ich nur einen User, wird der User "zerhackt"
$CsvSortResult=@(
foreach($mem in $sortmembers)
{
#Abfrage der Felder zu dem jeweiligen User aus der AD. Abgefragte Felder
#in diesem Fall *name*, *samaccountname* und *distinguishedname*
Get-ADObject -properties name, samaccountname, distinguishedname $Mem -Server $LDAPServer |
## Ausgelesende Daten bekommen hier eine eigene Tabellenüberschrift (z.B. "Full Name" für den Namen)
Select-Object -property @{Name="Full Name";Expression={$_.Name}},
@{Name="Username";Expression={$_.samaccountname}},
@{Name="Distinguished Name";Expression={$_.distinguishedname}}
}
)
$CsvSortResult.length
$CsvSortResult."Full Name"
$CsvSortResult."Username"
$CsvSortResult."Username"
Muster Erwin Z12345
Z12345
Z
Ich erwarte anstelle von "Z" als Ausgabe von $CsvSortResult."Username", den vollständigen Usernamen "Z12345".
Was übersehe ich? Für jeden Hinweis dankbar.
Schnerpf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 665088
Url: https://administrator.de/forum/powershell-array-wird-nicht-richtig-gefuellt-665088.html
Ausgedruckt am: 12.05.2025 um 06:05 Uhr
5 Kommentare
Neuester Kommentar
Moin,
es ist schwer deinen Posting zu verstehen. Benutze bitte Code-Tags damit wir besser sehen wo dein Code endet und wo das Ergebnis beginnt.
Allerdings verstehe ich nicht ganz was du meinst. Wenn $CsvSortResult."Username" nur Z ergibt, dann liegt es ggf. daran, dass du nur einen Wert in deiner Abfrage hast.
Gibt das erste Zeichen an, solange in test.txt nur die erste Zeile beschrieben ist.
Enthält die Textdatei jedoch mehrere Zeilen, so gibt die gleiche Ausgabe die komplette Erste Zeile wieder. Denke du hast hier das selbe Verhalten, nur anders dargestellt.
Gruß
Doskias
es ist schwer deinen Posting zu verstehen. Benutze bitte Code-Tags damit wir besser sehen wo dein Code endet und wo das Ergebnis beginnt.
Allerdings verstehe ich nicht ganz was du meinst. Wenn $CsvSortResult."Username" nur Z ergibt, dann liegt es ggf. daran, dass du nur einen Wert in deiner Abfrage hast.
$var=gc C:\Temp\Test\test.txt
$var
Enthält die Textdatei jedoch mehrere Zeilen, so gibt die gleiche Ausgabe die komplette Erste Zeile wieder. Denke du hast hier das selbe Verhalten, nur anders dargestellt.
Gruß
Doskias
Ich kenne Perl nicht, daher kenne ich den Unterschied nicht. Der Trick ist deine Variable als Array zu definieren. Wenn du einfach die variable vewendest interpretiert PS diese nach dem jeweiligen ermessen. Da kann es dann zu unterschieden kommen. Gut erklärt hier:
https://blog.netwrix.de/2019/12/19/variablen-und-arrays-in-powershell/
https://blog.netwrix.de/2019/12/19/variablen-und-arrays-in-powershell/