Powershell,检索用户经理

时间:2013-01-09 23:04:59

标签: powershell csv organization cmdlets

我正在创建一个csv类型的组织结构图,只是想知道什么是首选检索用户经理,经理的经理,等等到最高位置。目前我正在使用:

[string]$man = $userEntry.manager
    [array]$manName = $man.split('=,')
    $manager = $manName[1]
    $item.Cells.Item($i,1) = $userEntry.name.value
    $item.Cells.Item($i,2) = $userEntry.description.value
    $item.Cells.Item($i,3) = $manager.ToString()

然后运行get-QADobject以通过其DN查找下一个管理器。

但必须有一个更清洁的方式!

由于

1 个答案:

答案 0 :(得分:2)

如果我正确理解你,你想要一直到最顶端的指挥链(大概那个人没有经理?)。在这种情况下,您需要递归地向上走树。

未经测试的伪代码,因为我目前没有方便的域来测试:

Function Get-Manager {
params(
[string]$username
)
$userEntry = get-qaduser $username
[string]$man = $userEntry.manager
if (-not ($man -eq $null)) {
    [array]$manName = $man.split('=,')
    $manager = $manName[1]
    "$manager is the manager of $username";
    Get-Manager $manager
}
}

一旦用户没有经理,这将停止。在我的组织的情况下,我们的CEO被列为他自己的经理,因此我将上面的代码更改为寻找非空等于用户的经理,以便其中任何一个条件成真打破了循环。