在表中返回powershell对象变量

时间:2013-08-20 10:53:07

标签: powershell active-directory

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

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

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

我试过以下,但没有快乐:

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

有简单的方法吗?

2 个答案:

答案 0 :(得分: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并为每个用户创建一个自定义对象。

答案 1 :(得分:2)

可能有计算属性?尝试类似的东西:

 Get-ADUser -Properties name,mail,manager | Format-Table @{n="Manager Name";e={(Get-Aduser -Filter { DistinguishedName -eq $_.manager }).Name}}