在Powershell中,您可以使用Get-ADUser命令行开关获取Active Directory中的所有用户。然后,您可以将其传递给Format-Table,以列出表中的一些值。
但是,返回的某些值也是对象,例如用户管理器。
如何在父项属性旁边显示此子对象的属性 - 例如经理的姓名或电子邮件地址?
我试过以下,但没有快乐:
Get-ADUser -Properties name, mail, manager | Format-table name, mail manager.name
有简单的方法吗?
答案 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}}