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

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

ejik_off 08-06-2020 15:18 2924417

От учетной записи сотрудника дойти до учетной записи директора
 
Доброго времени суток!
Нужна Ваша помощь застрял на шаге и не могу правильно построить логику скрипта.
Задача следующая: есть 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 2924469

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

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

Iska 08-06-2020 22:29 2924471

Это решается простой рекурсией (при условии целостности данных).

ejik_off 09-06-2020 05:56 2924490

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


Время: 23:34.

Время: 23:34.
© OSzone.net 2001-