2013-08-20 55 views
1

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

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

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

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

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

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

+0

我做了什么这是一个单独的查找与$ _。经理,然后自定义表。多一点代码,它真的意味着出口数据... –

+0

任何进一步的提示如何做到这一点?甚至可以链接到通过此方式与您交谈的内容 - 到目前为止,我还没有找到任何东西。 – dunxd

回答

3

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

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

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

2)获取的名称与一个额外获得-ADUser便有电话(慢):

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

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

+0

非常感谢 - 第一个选项只是我需要的。 – dunxd

2

也许有计算属性?尝试类似的东西:

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