因此,我有一个脚本,用于获取每个用户以及该用户所属的所有组。当我导出到CSV时,它在一列中包含该用户,在下一列中包含该用户所属的所有组。是否可以使每个组都有自己的行,而不是在一个单元格中包含所有组?这是输出的外观
[用户][用户组a、用户组b等]
我想要
[用户][用户组a]
[][用户组b]
这是我的代码,如果有人想要它:
$users = get-azureaduser -Top 400 | Where-Object{$_.jobtitle -ne $null} |Where-Object{$_.department -eq "Information Technology"} | select userprincipalname
$groups = ForEach($user in $users){
$usergroups = get-azureadusermembership -ObjectId $user.UserPrincipalName | select displayname
New-Object -TypeName PSObject -Property @{
User=$user.UserPrincipalName
Groups = [string]$usergroups.displayname
}
}
$groups | Export-Csv -Path 'C:\TEXTDUMP\usergroups.csv'
2条答案
按热度按时间ruarlubt1#
您只需要在组成员上执行一个额外的
foreach
循环:这将为 * 每个成员资格 * 而不是每个用户生成1个CSV行
ivqmmu1c2#
我相信您希望扩展每组的数据,每组每行。如果是这样,您需要循环
Get-AzureADUserMembership
的结果:有一段时间没有使用AzureAD模块,但我相信过滤器:
应该工作并且是以下各项的良好替代品: