### fill in first three lines with csv path and distribution group names $Import = Import-Csv 'D:\Downloads\nd-all-managers.csv' -Header DeptNum,CAPSUPN,UPN,Name,Cabinet $AllStateGroupName = '' $CabinetGroupName = '' $AllStateGroup = Get-DistributionGroup -Identity $AllStateGroupName $AllStateGroupMembers = $AllStateGroup | Get-DistributionGroupMember $CabinetGroup = Get-DistributionGroup -Identity $CabinetGroupName $CabinetGroupMembers = $CabinetGroup | Get-DistributionGroupMember $CompareAllState = Compare-Object -ReferenceObject $Import -DifferenceObject $AllStateGroupMembers -IncludeEqual # <= Add to Group # == No change # => Remove from group $AllStateUsersToAdd = $Compare | Where-Object SideIndicator -eq '<=' $AllStateUsersToRemove = $Compare | Where-Object SideIndicator -eq '=>' ForEach($User in $AllStateUsersToAdd) { Add-DistributionGroupMember -Identity $AllStateGroupName -Member $User } ForEach($User in $AllStateUsersToRemove) { Remove-DistributionGroupMember -Identity $AllStateGroupName -Member $User } $CompareCabinetManagers = Compare-Object -ReferenceObject ($Import | Where-Object Cabinet -eq 'Y') -DifferenceObject $CabinetGroupMembers -IncludeEqual # <= Add to Group # == No change # => Remove from group $CabinetUsersToAdd = $Compare | Where-Object SideIndicator -eq '<=' $CabinetUsersToRemove = $Compare | Where-Object SideIndicator -eq '=>' ForEach($User in $CabinetUsersToAdd) { Add-DistributionGroupMember -Identity $CabinetGroupName -Member $User } ForEach($User in $CabinetUsersToRemove) { Remove-DistributionGroupMember -Identity $CabinetGroupName -Member $User }