【问题标题】:Return powershell object variable in table在表中返回 powershell 对象变量
【发布时间】:2013-08-20 10:53:06
【问题描述】:

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

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

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

我尝试了以下方法,但没有任何乐趣:

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

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

【问题讨论】:

  • 我所做的是使用 $_.Manager 单独查找,然后是自定义表。多一点代码,它真的是用于导出数据...
  • 有关如何执行此操作的任何进一步提示?甚至可以链接到可以与您交谈的内容-到目前为止,我还没有找到任何东西。

标签: powershell active-directory


【解决方案1】:

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 并为每个用户创建一个自定义对象。

【讨论】:

  • 非常感谢 - 第一个选项正是我所需要的。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多