A weird question I was asked today, can I get a list of users not in a group, caught me off guard as people usually need to know who is a member of a group, not who is not in a group.....
PowerShell to the rescue, shared for your convenience....
$groups = 'Group1', 'Group2', 'Group3'
$whereFilter = $groups | Foreach-Object {
$g = (Get-ADGroup $_).DistinguishedName
"{0} '{1}'" -f '$_.memberOf -notcontains',$g
}
$whereFilter = [scriptblock]::Create($whereFilter -join " -and ")
$users = (Get-ADUser -filter {objectclass -eq "user"} -properties memberof).where($whereFilter)
$users | Select-Object SamAccountName,DistinguishedName |
Export-Csv Temp.csv -NoTypeInformation -Encoding UTF8
This will return a CSV for your Excel excitement.