Я создаю CSV-файл каталога сотрудников, который создается после запроса Get-ADUser
, и я хочу настроить сортировку и группировку. Я могу отсортировать файл CSV по департаментам, но я хочу дополнительно сгруппировать каждый отдел, указав вначале глав департаментов.
Как отсортировать список сотрудников в формате csv по департаментам и группам отделовруководители наверху каждого отдела?
Вот как я сортирую по отделам.
$departments = "Executive|IT|HR|Billing"
$searchQuery = Get-ADUser -Filter * -Properties * -SearchBase "mysearchbase" |
Where-Object {$_.Enabled -eq $true -and $_.department -ne $null} |
Select-Object department, name, title, mail, telephonenumber
# Employee list sorted by $departments
$deptSortedObj = $searchQuery |
Sort-Object { $departments.IndexOf($_.department) }
foreach ($employee in $deptSortedObj) {
$employeeList = [Ordered]@{
department = $employee.department
name = $employee.name
title = $employee.title
email = $employee.mail.ToLower()
extension = $employee.telephoneNumber.Split('x')[1]
}
$obj += New-Object PSObject -Property $employeeList
}
$obj | ConvertTo-Csv -NoTypeInformation -Delimiter "," |
ForEach-Object {$_ -replace '"',''} |
Select-Object -Skip 1 |
Add-Content contact.csv
Это пример моего желаемого результата. (обратите внимание, что руководители отделов должны быть сгруппированы вверху каждого отдела. Например, руководители отделов: генеральный директор, менеджер по выставлению счетов, вице-президент, директор, руководитель)
Executive,Jane Doe,CEO,email@example.com,9932
Executive,John Smith,Administrative Assistant,email@example.com,9932
Billing,Tina Dina,Billing Manager,email@example.com,9932
Billing,Bill Dill,Billing Clerk,email@example.com,9932
Billing,Tommy Wommy,Payables,email@example.com,9932
Мой текущийвывод отсортирован только по отделам.