Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Экспорт нужной информации из AD (http://forum.oszone.net/showthread.php?t=316254)

Fantastish 28-06-2016 09:02 2646133

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

Kazun 28-06-2016 09:13 2646135

Код:

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 2646142

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

Kazun 28-06-2016 09:39 2646143

Код:

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 2646144

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

Kazun 28-06-2016 11:55 2646167

Если доменов несколько, то вполне нормальное поведение и требуется явно указать -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 2646187

странно, но домен один
попробую спасибо
з.ы. с добавление отработало нормально спасибо


Время: 13:51.

Время: 13:51.
© OSzone.net 2001-