在Get-ADGroup中格式化Members属性

时间:2015-11-17 15:44:33

标签: powershell active-directory

我有一个以下PowerShell命令,它对我有用,给我我需要的结果(有关AD组及其成员的详细信息)

Get-ADGroup -Filter * -Properties * -SearchBase "CN=Users,DC=domain,DC=com" | 
    Select-Object -Property Name, Description, GroupCategory, Members | 
    Format-Table -AutoSize

但我想将Members属性格式化为仅显示用户的DisplayName,而不是整个LDAP路径。

Members属性的输出是:

{CN=John Doe,CN=Users,DC=domain,DC=com, CN=Jane Doe,CN=Users, DC=domain, DC=com,...}

1 个答案:

答案 0 :(得分:5)

您可以使用Calculated属性添加PowerShell将执行的自定义代码块,以计算特定属性的值。

首先,我们知道我们可以使用以下代码选择组的用户名称:

 get-adgroupmember 'Domain Admins'| select Name

现在,我们可以将它嵌入到我们之前的Select-Object命令中,如下所示:

RegularProperty1,RegularProperty2,@{Name='Column Heading';Expression={<code to run>}}

要将其添加到原始选择语句中:

Name, Description, GroupCategory, @{Name='Members';exp={Get-adgroupmember $_.Name | Select -expand Name}}

完成的结果如下所示:

Get-ADGroup -Filter * -Properties * | 
   Select-Object -Property Name, Description, GroupCategory,`
  @{Name='Members';exp={Get-adgroupmember $_.Name | Select -expand Name}}  | 
       Format-Table -AutoSize

enter image description here