Ich muss eine CSV erstellen, die alle möglichen E-Mail-Adressen enthält, die ein Active Directory-Benutzer hat. Die CSV muss im folgende Format sein (sehr steif API für, wo sie gehen zu importiert werden):Powershell - Erstellen Sie ein benutzerdefiniertes Objekt mit einer unbekannten Anzahl von Spalten
Username | EmailAddress1 | EmailAddress2 | EmailAddressN
Mein Skript so sieht weit wie folgt aus:
$Group = "GroupNAme
$usersObj = @()
$countMax = 0
$GetAdGroup = Get-AdGroup -Identity $Group -Properties *
[array]$members = $GetAdGroup.Members
ForEach ($member in $members) {
$currentUser = get-aduser -Identity $member `
-Properties EmailAddress, ProxyAddresses |
Where {$_.Enabled -eq "True"}
$countTemp = ($currentUser.ProxyAddresses).count
if ($countTemp -gt $countMax){ $countMax = $countTemp}
foreach ($mailAdd in $currentUser.ProxyAddresses) {
$usersOBJ += [pscustomobject]@{
'Username' = $currentUser.SamAccountName;`
'ProxyAddresses' = $mailAdd.SubString(5)
}
}
$usersOBJ | Export-CSV -NoTypeInformation C:\Export.csv
Jetzt ist mein vorhandenes Objekt spuckt die Benutzer wie folgt:
Ich kann nicht scheinen, den Sprung in die Ausarbeitung zu machen, wie man ein besseres Objekt schafft. Ich kann die maximale Anzahl der ProxyAddresses erhalten, die auftreten, aber ich bin mir nicht sicher, wie ich das zum Erstellen meines Objekts berechnen und dann die Werte der $ currentUser.ProxyAddresses in diese Spalten einfügen soll.
Ich habe über Hash-Tabellen lesen, aber sie scheinen nicht meine Anforderungen zu passen, in der Regel die Form unter:
Username1 | Username2
Emailaddress1 | Emailaddress1
Emailaddress2 | Emailaddress2
Kann jemand bitte zeigen Sie mir in die richtige Richtung?
Prost!