Ich hatte keine Chance, dies zu testen, aber hier ist ein kurzes Skript, das tun wird, was Sie brauchen.
Im Wesentlichen listet das Skript Ihre CSV-Datei mit Benutzernamen auf und erstellt ein Array mit allen passenden Benutzern in Ihrem CSV. Zusätzlich wird mit 'extensionattribute7' eine einzigartige Liste von Affiliates innerhalb des $ aAffiliates-Arrays erstellt.
Als nächstes zählt das Skript die eindeutigen Affiliates auf und für jedes werden alle Benutzer gefunden, deren Affiliate-Property mit dem aktuellen Affiliate in der Schleife übereinstimmt. Diese gefundenen Benutzer werden dann zum Array $ aResults hinzugefügt, die dann in eine CSV-Datei exportiert werden, die den Namen des Partners im Dateinamen enthält.
Hoffe, das hilft!
Import-Module ActiveDirectory
$aUsers = @()
$aAffiliates = @()
$List = Get-Content "C:\Temp\List.txt"
ForEach ($Item in $List) {
$Item = $Item.Trim()
$User = Get-ADUser -Filter { SamAccountName -like $Item } -Properties DisplayName, extensionattribute7
# Build unique list of affiliates
If ($aAffiliates -notcontains $User.extensionattribute7) {
$aAffiliates += $User.extensionattribute7
}
$hItemDetails = New-Object -TypeName psobject -Property @{
Username = $Item
DisplayName = $User.DisplayName
Affiliate = $User.extensionattribute7
}
#Add data to array
$aUsers += $hItemDetails
}
ForEach ($Affiliate in $aAffiliates) {
$aResults = @()
ForEach ($User in $aUsers) {
If ($User.Affiliate -eq $Affiliate) {
$aResults += $User
}
}
$Path = "C:\Temp\Results-$($Affiliate).csv"
$aResults | Export-CSV $Path
}
Was haben Sie bisher versucht. Weitere Details zu Ihrem Problem wären hilfreich. – AnimiVulpis