PDA

Показать полную графическую версию : [решено] Экспорт нужной информации из AD


Fantastish
28-06-2016, 09:02
Доброго дня.
Прошу помощи в решении такой задачи.
У каждого пользователя в АД, есть такой параметр "Руководитель">"Имя", а ниже "Прямые подчиненные".
Так вот в чем состоит задача:
Вывести данное поле в xls (csv) и подчиненных ему сотрудников ниже списком.
(необходимо для проверки штатки)
Большое спасибо.
з.ы. предполагаю, что самый просто вариант использовать PS

Kazun
28-06-2016, 09:13
Get-ADUser -Filter "directreports -like '*'" -Properties directreports | Foreach {
$manager = $_.Name
$_.directreports | Select @{n="manager";e={$manager}},@{n="user";e={$_}}
} | Export-Csv result.csv -Encoding UTF8 -NoTypeInformation

Fantastish
28-06-2016, 09:33
Спасибо большое
добавил Import-Module ActiveDirectory
и вопрос можно ли как то форматировать выгрузку?
1,"CN=2,OU=DomainUsers,OU=3,DC=4,DC=ru"
убрать CN OU DC и исключить отключенных?
и указать конкретную OU откуда смотреть?

Kazun
28-06-2016, 09:39
Get-ADUser -Filter "directreports -like '*'" -Properties directreports -SearchBase "OU=NyJJJ,DC=Contoso,DC=Com" | Foreach {
$manager = $_.Name
$_.directreports | Get-ADUser | Where {$_.Enabled} | Select @{n="manager";e={$manager}},@{n="user";e={$_.Name}}
} | Export-Csv result.csv -Encoding UTF8 -NoTypeInformation

Fantastish
28-06-2016, 09:44
странно конечно, отработал, но выдал такую ошибку
Get-ADUser : Сервер возвратил ссылку
строка:4 знак:31

Kazun
28-06-2016, 11:55
Если доменов несколько, то вполне нормальное поведение и требуется явно указать -Server, т.к. атрибут directreports не реплицируется в GC:

$_.directreports | Foreach {
$server = $_.split(",") -match "DC=" -replace "DC=" -join "."
Get-ADUser $_ -Server $server | Where {$_.Enabled}
}| Select @{n="manager";e={$manager}},@{n="user";e={$_.Name}}

Fantastish
28-06-2016, 13:48
странно, но домен один
попробую спасибо
з.ы. с добавление отработало нормально спасибо




© OSzone.net 2001-2012