1

在 Powershell 中,您可以使用 Get-ADUser 命令行开关来获取 Active Directory 中的所有用户。然后,您可以将其通过管道传输到 Format-Table 以列出表中的一些值。

但是,返回的一些值也是对象,例如用户管理器。

如何在父对象的属性旁边显示此子对象的属性 - 例如经理的姓名或电子邮件地址?

我尝试了以下,但没有喜悦:

Get-ADUser -Properties name, mail, manager | Format-table name, mail manager.name

有没有简单的方法可以做到这一点?

4

2 回答 2

3

manager 属性只是一个字符串(不是具有子属性的对象)。两种选择:

1)从经理的DN中提取名称(更快):

... | select Name,mail,@{n='manager';e={$_.manager -replace '^CN=([^,]+).+$','$1'}}

2)通过额外的 Get-ADUser 调用获取名称(较慢):

... | select Name,mail,@{n='manager';e={(Get-ADUser $_.manager).Name}}

而且您始终可以通过管道连接到 Foreach-Object 并为每个用户创建一个自定义对象。

于 2013-08-20T11:56:50.743 回答
2

也许有计算的属性?尝试这样的事情:

 Get-ADUser -Properties name,mail,manager | Format-Table @{n="Manager Name";e={(Get-Aduser -Filter { DistinguishedName -eq $_.manager }).Name}}
于 2013-08-20T12:09:50.913 回答