@@ -167,29 +167,7 @@ function Invoke-EditGroup {
167167 $AddOwners = $userobj.AddOwner
168168 try {
169169 if ($AddOwners ) {
170- if ($GroupType -eq ' Distribution List' -or $GroupType -eq ' Mail-Enabled Security' ) {
171- $CurrentOwners = New-ExoRequest - tenantid $TenantId - cmdlet ' Get-DistributionGroup' - cmdParams @ { Identity = $userobj.groupid } - UseSystemMailbox $true | Select-Object - ExpandProperty ManagedBy
172- $NewManagedBy = [System.Collections.Generic.List [string ]]::new()
173- foreach ($CurrentOwner in $CurrentOwners ) {
174- $NewManagedBy.Add ($CurrentOwner )
175- }
176- foreach ($NewOwner in $AddOwners ) {
177- $NewManagedBy.Add ($NewOwner.addedFields.id )
178- }
179-
180- $NewManagedBy = $NewManagedBy | Sort-Object - Unique
181- $params = @ { Identity = $userobj.groupid ; ManagedBy = $NewManagedBy }
182- $ExoBulkRequests.Add (@ {
183- CmdletInput = @ {
184- CmdletName = ' Set-DistributionGroup'
185- Parameters = $params
186- }
187- })
188- $ExoLogs.Add (@ {
189- message = " Added owner(s) $ ( $AddOwners.value -join ' , ' ) to $ ( $GroupName ) group"
190- target = $userobj.groupid
191- })
192- } else {
170+ if ($GroupType -notin @ (' Distribution List' , ' Mail-Enabled Security' )) {
193171 $AddOwners | ForEach-Object {
194172 $Owner = $_.value
195173 $ID = $_.addedFields.id
@@ -219,22 +197,7 @@ function Invoke-EditGroup {
219197 $RemoveOwners = $userobj.RemoveOwner
220198 try {
221199 if ($RemoveOwners ) {
222- if ($GroupType -eq ' Distribution List' -or $GroupType -eq ' Mail-Enabled Security' ) {
223- # get current owners
224- $CurrentOwners = New-ExoRequest - tenantid $TenantId - cmdlet ' Get-DistributionGroup' - cmdParams @ { Identity = $userobj.groupid } - UseSystemMailbox $true | Select-Object - ExpandProperty ManagedBy
225- $NewManagedBy = $CurrentOwners | Where-Object { $_ -notin $RemoveOwners.addedFields.id }
226- $params = @ { Identity = $userobj.groupid ; ManagedBy = $NewManagedBy }
227- $ExoBulkRequests.Add (@ {
228- CmdletInput = @ {
229- CmdletName = ' Set-DistributionGroup'
230- Parameters = $params
231- }
232- })
233- $ExoLogs.Add (@ {
234- message = " Removed owner(s) $ ( $RemoveOwners.value -join ' , ' ) from $ ( $GroupName ) group"
235- target = $userobj.groupid
236- })
237- } else {
200+ if ($GroupType -notin @ (' Distribution List' , ' Mail-Enabled Security' )) {
238201 $RemoveOwners | ForEach-Object {
239202 $ID = $_.addedFields.id
240203 $BulkRequests.Add (@ {
@@ -253,6 +216,41 @@ function Invoke-EditGroup {
253216 Write-Warning " Error in RemoveOwners: $ ( $_.Exception.Message ) "
254217 }
255218
219+ if ($GroupType -in @ ( ' Distribution List' , ' Mail-Enabled Security' ) -and ($AddOwners -or $RemoveOwners )) {
220+ $CurrentOwners = New-ExoRequest - tenantid $TenantId - cmdlet ' Get-DistributionGroup' - cmdParams @ { Identity = $userobj.groupid } - UseSystemMailbox $true | Select-Object - ExpandProperty ManagedBy
221+
222+ $NewManagedBy = [system.collections.generic.list [string ]]::new()
223+ foreach ($CurrentOwner in $CurrentOwners ) {
224+ if ($RemoveOwners -and $RemoveOwners.addedFields.id -contains $CurrentOwner ) {
225+ $OwnerToRemove = $RemoveOwners | Where-Object { $_.addedFields.id -eq $CurrentOwner }
226+ $ExoLogs.Add (@ {
227+ message = " Removed owner $ ( $OwnerToRemove.label ) from $ ( $GroupName ) group"
228+ target = $userobj.groupid
229+ })
230+ continue
231+ }
232+ $NewManagedBy.Add ($CurrentOwner )
233+ }
234+ if ($AddOwners ) {
235+ foreach ($NewOwner in $AddOwners ) {
236+ $NewManagedBy.Add ($NewOwner.addedFields.id )
237+ $ExoLogs.Add (@ {
238+ message = " Added owner $ ( $NewOwner.label ) to $ ( $GroupName ) group"
239+ target = $userobj.groupid
240+ })
241+ }
242+ }
243+
244+ $NewManagedBy = $NewManagedBy | Sort-Object - Unique
245+ $params = @ { Identity = $userobj.groupid ; ManagedBy = $NewManagedBy }
246+ $ExoBulkRequests.Add (@ {
247+ CmdletInput = @ {
248+ CmdletName = ' Set-DistributionGroup'
249+ Parameters = $params
250+ }
251+ })
252+ }
253+
256254 Write-Information " Graph Bulk Requests: $ ( $BulkRequests.Count ) "
257255 if ($BulkRequests.Count -gt 0 ) {
258256 # Write-Warning 'EditUser - Executing Graph Bulk Requests'
0 commit comments