I have a weird scenario where I am trying to populate a .CSV file using PowerShell, but it's not a traditional .CSV file. I want to have two columns with multiple values in a single cell.
Desired CSV Out:
Team Name Team Users Team Access
Team 1 User 1 App 1
User 2 App 2
User 3 App 3
Team 2 User 4 App 1
User 5 App 2
User 6 App 3
So essentially, for the above, I would only want two rows with all that information.
When I try to use Export-CSV, with defined variables for the Users and Apps, my CSV looks like this:
Team Name Team Users Team Access
Team 1 System.Object[] System.Object[]
Team 2 System.Object[] System.Object[]
So I'm wondering how I can either take the object values as literal values or use something like Add-Content / Add-Member to add values based on the CSV headers?
This is my current code:
$RBAC_Groups = Get-ADGroup -Filter {Name -like "RBAC*"} -SearchBase "DC=example,DC=com"
ForEach ($Group in $RBAC_Groups) {
#Get AD Group Members
$Users = Get-ADGroupMember -Identity $Group.Name
#Get AD Group Member Of
$Membership = Get-ADPrincipalGroupMembership $Group.Name
$Final = New-Object psobject
$Final | Add-Member -MemberType NoteProperty -Name "RBAC Group" -Value $Group.Name
$Final | Add-Member -MemberType NoteProperty -Name "RBAC Users" -Value $Users.Name
$Final | Add-Member -MemberType NoteProperty -Name "RBAC Access" -Value $Membership.Name
$Final | Export-Csv -Path C:\Temp\RBAC_Weekly_Audit.csv -Append -NoTypeInformation
}
Thanks,