Ich habe gerade versucht einen Multi-Value-Wert per Powershell und Export-CSV in eine Text-Datei zu schreiben. Hintergrund ist, dass das Feld carlicense bei uns dazu verwendet wird, den Rechernamen zu speichern, an dem der Benutzer sich das letzte mal angemeldet hat. Der zuerst verwendete Befehl dazu sah wiefolgt aus.
Get-ADUser -Properties * -SearchBase "OU=xx=DC=yy" -Filter * | where {($_.SamaccountName -like "*GSA*") -or ($_.SamaccountName -like "*GMB*")} | select SamaccountName,Manager,carLicense,Department |Export-CSV generic-accounts.csv -Delimiter ";"
Das Ergebniss war jedoch nicht das gewünscht:
Die Lösung das Problems war schließlich, die jeweiligen Werte Multi-Value-Feld carlicense zusammen zu führen und das Ergebnis als neues Attribut abzuspeichern:
@{Name='PC';Expression={[string]::join(";", ($_.carlicense))}}
Der Befehl sieht damit angepasst wiefolgt aus:
Get-ADUser -Properties * -SearchBase "OU=xx=DC=yy" -Filter * | where {($_.SamaccountName -like "*GSA*") -or ($_.SamaccountName -like "*GMB*")} | select SamaccountName,DistinguishedName,Manager,@{Name='PC';Expression={[string]::join(";", ($_.carlicense))}},Department |Export-CSV generic-accounts.csv -Delimiter ";"