Войти

Показать полную графическую версию : От учетной записи сотрудника дойти до учетной записи директора


ejik_off
08-06-2020, 15:18
Доброго времени суток!
Нужна Ваша помощь застрял на шаге и не могу правильно построить логику скрипта.
Задача следующая: есть csv файл c колонками в одной из которых указаны samaccountname. нужно у данного пользователя найти начальника, который напрямую подчиняется директору. У пользователей в поле руководитель указан его непосредственный руководитель.
подумал можно перебирать руководителей пока не дойду до директора, если в поле руководитель у пользователя указан фио директора, значит это тот руководитель, которого нужно добавить в csv файл в строке пользователя и перейди к следующей строке. и так до конца таблицы.

$alluser = Import-csv C:\Temp\Report.csv -Delimiter ";" -Encoding UTF8

foreach($user in $allusers){

$u = Get-ADUser $user.samaccountname -Properties *
for($u.Title -eq "Директор") {
$u = (Get-ADUser $user.samaccountname -Properties * | select magager).Split('='',')[1]
#$managetName = $u.manager.Split('='',')[1]

if($managetName -eq $ppADUser.name){
Write-Host "У пользоватедя" + $u + "Руководитель : " + $manager.name
}
else {
$mannext = Get-ADUser -filter {cn -eq $managername} -Properties *
}
}

И тут я застрял, подскажите как в цикле правильно перебирать?

DJ Mogarych
08-06-2020, 22:25
Я бы начал с того, что составил бы таблицу, в которой были бы все сотрудники, и у них в одной колонке был бы их начальник, а в другой - их подчинённые. После этого уже можно было бы думать дальше без того, чтобы мучить AD.

Основная проблема не в цикле, а в том, что непонятно, как должен выглядеть конечный результат.

Iska
08-06-2020, 22:29
Это решается простой рекурсией (при условии целостности данных).

ejik_off
09-06-2020, 05:56
с пониманием рекурсии проблемы, спасибо за подсказку буду читать как в PS реализовать рекурсию.




© OSzone.net 2001-2012