Files
Sandbox/Add-ManagerToDistributionGroup.ps1
Zack Meier 03dba08135 sync
2026-04-15 15:42:41 -05:00

50 lines
1.6 KiB
PowerShell

### 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
}