2017-01-11 58 views
0

我的PowerShell腳本是這樣的:如何以適當的格式獲取Get-ADPrincipalGroupMembership名稱?

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

回答

1

我想選擇的-ExpandProperty參數對象可能是你需要的。試試這個:

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=...})。你需要(例如通過的Select-Object-ExpandProperty參數)提取此屬性的值,然後加入提取組名的字符串:

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}}}}