我正在尝试获取用户所属的AD组的列表,并且我有一个可以工作的脚本。但我需要用不同的方式来展示它。目前,该脚本在一行中显示一条记录,其中用户名,然后是下一个单元格中的多个组名,用分号分隔。
我希望所有的组都在每个单独的行中,并且用户名是重复的。
示例:
DavidChow -服务器管理组
DavidChow -桌面管理员组
DavidChow - Azure管理组
NinaChow -桌面用户组
这是我的脚本:
$UnameList= Import-Csv C:\temp\users_full_list.csv
ForEach ($username in $UnameList){
$groups=Get-ADPrincipalGroupMembership -Identity $username.Identity | select -expand name
$data = [PSCustomObject]@{
samaccountname = $username.Identity
count = $groups.count
memberOf = ($groups -join ';')}
Write-Output $data | Export-Csv C:\Temp\users_full_list_memberships.csv -Delimiter ";" -NoTypeInformation -Append
}发布于 2020-11-04 19:08:13
您可以为每个用户的每个组创建一个"data“对象,然后在最后将所有内容导出到CSV:
Import-Csv C:\temp\users_full_list.csv | foreach {
$identity = $_.Identity
Get-ADPrincipalGroupMembership -Identity $identity | foreach {
[PSCustomObject]@{
SamAccountName = $identity
GroupName = $_.Name
}
}
} | Export-Csv C:\Temp\users_full_list_memberships.csv -Delimiter ";" -NoTypeInformationhttps://stackoverflow.com/questions/64678780
复制相似问题