私はこれをテストする機会はありませんでしたが、ここでは必要なことをする簡単なスクリプトがあります。
本質的に、スクリプトはユーザー名のcsvファイルを列挙し、csv内の一致するすべてのユーザーを含む配列を作成します。さらに、 'extensionattribute7'を使用して、$ aAffiliates配列内の関連会社の一意のリストを構築します。
次のスクリプトでは、一意のアフィリエイトが列挙され、それぞれのアフィリエイトプロパティのユーザーがループ内の現在のアフィリエイトと一致することがわかります。これらの検索されたユーザーは、$ aResults配列に追加され、ファイル名にアフィリエイト名を含むcsvファイルにエクスポートされます。
希望すると便利です。
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
}
これまでに試したことはありますか?あなたの問題についての詳細は参考になります。 – AnimiVulpis