2

我正在创建一个 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 查找下一个经理。

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

谢谢

4

1 回答 1

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 被列为他自己的经理,因此我将更改上面的代码以查找经理为非 null等于用户,这样任何一个条件为真都会打破循环。

于 2013-01-10T03:50:50.387 回答