Validate CSV of SamAccountNames against multiple groups

Hello,

I need to validate a CSV of SANs against multiple group. I only want to return the users who do not belong to ALL of the groups. Currently my code returns everyone and I understand why (it’s only looking at the members of the last group), but not how to fix. I also realize I probably need to create a hashtable for my output to remove the “@{SamAccountName=” in my results. List of CSV may contain 3000 accts if it helps.

EDIT: By not being part of these groups we determine they are no longer in AD, that’s why I’m not using memberOf.

$Users = Import-Csv -Path "C:\AdminTools\PowerShell\SamAccountNames.csv"

$agroup = "group1"

$bgroup = "group2"

$cgroup = "group3"

$dgroup = "group4"

$egroup = "group5"

$fgroup = "group6"

$Members = Get-ADGroupMember -Identity "$agroup" -Recursive | Select -ExpandProperty samaccountname

$Members = Get-ADGroupMember -Identity "$bgroup" -Recursive | Select -ExpandProperty samaccountname

$Members = Get-ADGroupMember -Identity "$cgroup" -Recursive | Select -ExpandProperty samaccountname

$Members = Get-ADGroupMember -Identity "$dgroup" -Recursive | Select -ExpandProperty samaccountname

$Members = Get-ADGroupMember -Identity "$egroup" -Recursive | Select -ExpandProperty samaccountname

$Members = Get-ADGroupMember -Identity "$fgroup" -Recursive | Select -ExpandProperty samaccountname

foreach ($user in $users)

{

if ($Members -Contains $User.SamAccountName){

#Write-Host "$User in Group"

} Else {

Write-Host "$User not in group"

}

}

 

Seems to be working now. I forgot to use += over = so it doesnt overwrite.