【问题标题】:How to fetch Get-ADPrincipalGroupMembership name in proper format?如何以正确的格式获取 Get-ADPrincipalGroupMembership 名称?
【发布时间】:2017-01-11 07:08:50
【问题描述】:

我的 PowerShell 脚本是这样的:

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

输出:

会员
---------
{@{name=XYZUsers}、@{name=GLOBAL_XYZ}、@{name=LOCAL_XYZ}、@{name=ABC_APPROVER}
{@{name=XYZUsers}、@{name=GLOBAL_XYZ}、@{name=LOCAL_XYZ}、@{name=ABC_APPROVER}

我希望输出是这样的:

会员
---------
XYZ 用户、GLOBAL_XYZ、LOCAL_XYZ
XYZUsers, GLOBAL_XYZ, LOCAL_XYZ

【问题讨论】:

    标签: powershell active-directory windows-server-2012


    【解决方案1】:

    我认为Select-Object-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}
    

    【讨论】:

      【解决方案2】:

      您的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 ', '
      }}
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2016-03-05
          • 2023-04-11
          • 1970-01-01
          • 2021-07-26
          • 2011-09-15
          • 1970-01-01
          • 1970-01-01
          • 2023-03-09
          • 2011-08-18
          相关资源
          最近更新 更多