Powershell: Objekt wird nicht in CSV exportiert, sondern der Datentyp
Moin,
wahrscheinlich ist es einfach nur zu heiß. Ich verzweifle an einem Problem. Das folgende Skript sucht im LDAP nach Usern und ihren Attributen. Das funktioniert auch eigentlich wunderbar. Es gibt nur ein Problem beim Export des Ergebnisses als CSV. Hier erstmal das Skript:
Ohne den Parameter outfile gibt die Konsole sowas aus:
Da sieht man schon an den Flügelchen, dass das keine Strings sind, sondern Value Collections. Daher auch das Ergebnis als CSV, was überhaupt nicht funktioniert:
Kann mir mal bitte jemand die Tomaten von den Augen nehmen, warum da nicht die Werte stehen, sondern der Datentyp? Danke
Liebe Grüße
Erik
wahrscheinlich ist es einfach nur zu heiß. Ich verzweifle an einem Problem. Das folgende Skript sucht im LDAP nach Usern und ihren Attributen. Das funktioniert auch eigentlich wunderbar. Es gibt nur ein Problem beim Export des Ergebnisses als CSV. Hier erstmal das Skript:
function search-ldap {
PARAM(
$query = "(&(objectclass=posixaccount))",
$items = @("uid","sn","givenname","mail"),
$root = "LDAP://192.168.XXX.XXX/dc=domain,dc=de",
$outfile,
$sort
)
$output = @()
$auth = [System.DirectoryServices.AuthenticationTypes]::Anonymous
$de = New-Object System.DirectoryServices.DirectoryEntry($root,$null,$null,$auth)
$search = New-Object system.DirectoryServices.DirectorySearcher($de,$query)
$result = $search.FindAll()
foreach($user in $result) {
$data = ""
$data = New-Object PSObject
foreach($item in $items) {
$data | Add-Member NoteProperty $item $user.Properties.Item($item)
}
$output += $data
}
if($sort) {
$output = $output | Sort-Object -property $sort
}
if($outfile) {
export-csv -inputobject $output -path $outfile -delimiter ";" -NoTypeInformation -encoding UTF8 -force
}
return $output
}
Ohne den Parameter outfile gibt die Konsole sowas aus:
uid sn givenname mail
--- -- --------- ----
{vname} { name} {vorname} {vorname.name@domain.de}
Da sieht man schon an den Flügelchen, dass das keine Strings sind, sondern Value Collections. Daher auch das Ergebnis als CSV, was überhaupt nicht funktioniert:
"uid";"sn";"givenname";"mail"
"System.DirectoryServices.ResultPropertyValueCollection";"System.DirectoryServices.ResultPropertyValueCollection";"System.DirectoryServices.ResultPropertyValueCollection";"System.DirectoryServices.ResultPropertyValueCollection"
Kann mir mal bitte jemand die Tomaten von den Augen nehmen, warum da nicht die Werte stehen, sondern der Datentyp? Danke
Liebe Grüße
Erik
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 488961
Url: https://administrator.de/forum/powershell-objekt-wird-nicht-in-csv-exportiert-sondern-der-datentyp-488961.html
Ausgedruckt am: 26.03.2025 um 11:03 Uhr
2 Kommentare
Neuester Kommentar

Sind halt noch Objekte und keine Strings
Habs Grad nicht vor mir, aber kann auch sein daß du das "Value" weglassen kannst/musst.
$data | Add-Member -Membertype NoteProperty -Name $item -Value ([string]$user.Properties[$item])