如何以适当的格式获取Get-ADPrincipalGroupMembership名称?

问题描述 投票:0回答:3

我的PowerShell脚本是这样的:

Get-ADUser -Property * -filter * | Select-Object @{Label="Member Of";Expression={
  %{Get-ADPrincipalGroupMembership -Identity $_.SamAccountName | Select-Object name}
}}

输出:

Member Of
---------
{@{name=XYZUsers}, @{name=GLOBAL_XYZ}, @{name=LOCAL_XYZ}, @{name=ABC_APPROVER}
{@{name=XYZUsers}, @{name=GLOBAL_XYZ}, @{name=LOCAL_XYZ}, @{name=ABC_APPROVER}

我想要输出的地方是这样的:

Member Of
---------
XYZUsers, GLOBAL_XYZ, LOCAL_XYZ
XYZUsers, GLOBAL_XYZ, LOCAL_XYZ
powershell active-directory windows-server-2012
3个回答
1
投票

我认为-ExpandPropertySelect-Object参数可能就是你所需要的。

试试这个:

Get-ADUser -property * -filter * | select-object @{Label = "Member Of";Expression = {%{Get-ADPrincipalGroupMembership -Identity $_.SamAccountName | Select-Object -ExpandProperty name}}}

或者我认为你也可以简化你的代码,但我现在没有任何地方可以测试它:

Get-ADUser -property * -filter * | % {Get-ADPrincipalGroupMembership -Identity $_.SamAccountName | Select-Object name}

1
投票

你的Select-Object语句为你提供了一个属性为name@{name=...})的自定义对象。您需要提取此属性的值(例如,通过-ExpandPropertySelect-Object参数),然后将提取的组名称连接到字符串:

Get-ADUser -Property * -Filter * | Select-Object @{n='Member Of';e={
  (Get-ADPrincipalGroupMembership -Identity $_.SamAccountName |
    Select-Object -Expand Name) -join ', '
}}

0
投票

get-aduser -property * -filter * | select-object @ {Label =“Member Of”; Expression = {%{Get-ADPrincipalGroupMembership -Identity $ .SamAccountName | foreach-Object {$ .name}}}}

© www.soinside.com 2019 - 2024. All rights reserved.