在PowerShell中导出用户的广告组成员身份

在PowerShell中导出用户的广告组成员身份,powershell,active-directory,Powershell,Active Directory,我需要导出用户分配到的所有组的列表。此命令适用于我的需要: Get-ADPrincipalGroupMembership username | select name | Export-Csv filepath 然而,我必须审查我公司大约100名用户,所以我想将这些CSV合并到Excel电子表格中。我的问题是,当我合并CSV时,我只是有一个随机的广告组列表 这个问题的解决方案是导出一个包含两列的CSV,而第1列包含广告用户名和广告组名的第2列,例如 用户A | A组;用户A | B组;用户A

我需要导出用户分配到的所有组的列表。此命令适用于我的需要:

Get-ADPrincipalGroupMembership username | select name | Export-Csv filepath
然而,我必须审查我公司大约100名用户,所以我想将这些CSV合并到Excel电子表格中。我的问题是,当我合并CSV时,我只是有一个随机的广告组列表

这个问题的解决方案是导出一个包含两列的CSV,而第1列包含广告用户名和广告组名的第2列,例如

用户A | A组;用户A | B组;用户A | C组


我已经发现,使用
Get-ADPrincipalGroupMembership
可能无法做到这一点,但不幸的是,我还没有找到任何解决方案。

您考虑的格式对查看和处理都很糟糕。或者构建一个将用户映射到每个组的列表(每行一个映射)

或者使用辅助分隔符加入组列表,并将用户映射到其所有组,如下所示:

$users = 'userA', 'userB', ...
foreach ($user in $users) {
    $groups = Get-ADPrincipalGroupMembership $user |
              Select-Object -Expand Name
    New-Object -Type PSObject -Property @{
        'User'  = $user
        'Group' = $groups -join '|'
    }
} | Export-Csv 'output.csv' -NoType

您考虑的格式对于查看和处理都很糟糕。或者构建一个将用户映射到每个组的列表(每行一个映射)

或者使用辅助分隔符加入组列表,并将用户映射到其所有组,如下所示:

$users = 'userA', 'userB', ...
foreach ($user in $users) {
    $groups = Get-ADPrincipalGroupMembership $user |
              Select-Object -Expand Name
    New-Object -Type PSObject -Property @{
        'User'  = $user
        'Group' = $groups -join '|'
    }
} | Export-Csv 'output.csv' -NoType

非常感谢你!我根本不是power powershell用户,因此我非常感谢您的帮助。非常感谢!我根本不是power powershell用户,因此我非常感谢您的帮助。