sync
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
### 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
|
||||
}
|
||||
Reference in New Issue
Block a user