Skip to content

Commit 67ff06f

Browse files
fix reporting
1 parent 5db6d40 commit 67ff06f

File tree

1 file changed

+26
-29
lines changed

1 file changed

+26
-29
lines changed

Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailboxRecipientLimits.ps1

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,12 @@ function Invoke-CIPPStandardMailboxRecipientLimits {
6969
if ($null -ne $Mailboxes -and @($Mailboxes).Count -gt 0) {
7070
# Process mailboxes and categorize them based on their plan limits
7171
$MailboxResults = @($Mailboxes) | ForEach-Object {
72-
$Mailbox = $_
7372

73+
$Mailbox = $_
74+
#if the mailbox username contains a guid, we can assume it's a system mailbox and skip it
75+
if ($Mailbox.UserPrincipalName -match '^[^@]+@[^.]+\.[^.]+$') {
76+
return
77+
}
7478
# Safe hashtable lookup - check if MailboxPlanId exists and is not null
7579
$Plan = $null
7680
if ($Mailbox.MailboxPlanId -and $MailboxPlanLookup.ContainsKey($Mailbox.MailboxPlanId)) {
@@ -83,8 +87,7 @@ function Invoke-CIPPStandardMailboxRecipientLimits {
8387
# If mailbox has "Unlimited" set but has a plan, use the plan's limit as the current limit
8488
$CurrentLimit = if ($Mailbox.RecipientLimits -eq 'Unlimited') {
8589
$PlanMaxRecipients
86-
}
87-
else {
90+
} else {
8891
$Mailbox.RecipientLimits
8992
}
9093

@@ -96,15 +99,13 @@ function Invoke-CIPPStandardMailboxRecipientLimits {
9699
PlanLimit = $PlanMaxRecipients
97100
PlanName = $Plan.DisplayName
98101
}
99-
}
100-
elseif ($CurrentLimit -ne $Settings.RecipientLimit) {
102+
} elseif ($CurrentLimit -ne $Settings.RecipientLimit) {
101103
[PSCustomObject]@{
102104
Type = 'ToUpdate'
103105
Mailbox = $Mailbox
104106
}
105107
}
106-
}
107-
elseif ($Mailbox.RecipientLimits -ne $Settings.RecipientLimit) {
108+
} elseif ($Mailbox.RecipientLimits -ne $Settings.RecipientLimit) {
108109
[PSCustomObject]@{
109110
Type = 'ToUpdate'
110111
Mailbox = $Mailbox
@@ -139,11 +140,11 @@ function Invoke-CIPPStandardMailboxRecipientLimits {
139140
$MailboxChanges = $MailboxesToUpdate | ForEach-Object {
140141
$CurrentLimit = if ($_.RecipientLimits -eq 'Unlimited') { 'Unlimited' } else { $_.RecipientLimits }
141142
@{
142-
Identity = $_.Identity
143-
DisplayName = $_.DisplayName
143+
Identity = $_.Identity
144+
DisplayName = $_.DisplayName
144145
PrimarySmtpAddress = $_.PrimarySmtpAddress
145-
CurrentLimit = $CurrentLimit
146-
NewLimit = $Settings.RecipientLimit
146+
CurrentLimit = $CurrentLimit
147+
NewLimit = $Settings.RecipientLimit
147148
}
148149
}
149150

@@ -165,13 +166,11 @@ function Invoke-CIPPStandardMailboxRecipientLimits {
165166
# Execute batch update
166167
$null = New-ExoBulkRequest -tenantid $Tenant -cmdletArray $UpdateRequests
167168
Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully applied recipient limits to $($MailboxesToUpdate.Count) mailboxes" -sev Info
168-
}
169-
catch {
169+
} catch {
170170
$ErrorMessage = Get-CippException -Exception $_
171171
Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set recipient limits. $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage
172172
}
173-
}
174-
else {
173+
} else {
175174
Write-LogMessage -API 'Standards' -tenant $Tenant -message "All mailboxes already have the correct recipient limit of $($Settings.RecipientLimit)" -sev Info
176175
}
177176
}
@@ -180,12 +179,11 @@ function Invoke-CIPPStandardMailboxRecipientLimits {
180179
if ($Settings.alert -eq $true) {
181180
if ($MailboxesToUpdate.Count -eq 0 -and $MailboxesWithPlanIssues.Count -eq 0) {
182181
Write-LogMessage -API 'Standards' -tenant $Tenant -message "All mailboxes have the correct recipient limit of $($Settings.RecipientLimit)" -sev Info
183-
}
184-
else {
182+
} else {
185183
# Create structured alert data
186184
$AlertData = @{
187-
RequestedLimit = $Settings.RecipientLimit
188-
MailboxesToUpdate = @()
185+
RequestedLimit = $Settings.RecipientLimit
186+
MailboxesToUpdate = @()
189187
MailboxesWithPlanIssues = @()
190188
}
191189

@@ -197,11 +195,11 @@ function Invoke-CIPPStandardMailboxRecipientLimits {
197195
$AlertData.MailboxesToUpdate = $MailboxesToUpdate | ForEach-Object {
198196
$CurrentLimit = if ($_.RecipientLimits -eq 'Unlimited') { 'Unlimited' } else { $_.RecipientLimits }
199197
@{
200-
Identity = $_.Identity
201-
DisplayName = $_.DisplayName
198+
Identity = $_.Identity
199+
DisplayName = $_.DisplayName
202200
PrimarySmtpAddress = $_.PrimarySmtpAddress
203-
CurrentLimit = $CurrentLimit
204-
RequiredLimit = $Settings.RecipientLimit
201+
CurrentLimit = $CurrentLimit
202+
RequiredLimit = $Settings.RecipientLimit
205203
}
206204
}
207205
# Add to alert objects list efficiently
@@ -214,10 +212,10 @@ function Invoke-CIPPStandardMailboxRecipientLimits {
214212
if ($MailboxesWithPlanIssues.Count -gt 0) {
215213
$AlertData.MailboxesWithPlanIssues = $MailboxesWithPlanIssues | ForEach-Object {
216214
@{
217-
Identity = $_.Identity
218-
CurrentLimit = $_.CurrentLimit
219-
PlanLimit = $_.PlanLimit
220-
PlanName = $_.PlanName
215+
Identity = $_.Identity
216+
CurrentLimit = $_.CurrentLimit
217+
PlanLimit = $_.PlanLimit
218+
PlanName = $_.PlanName
221219
RequestedLimit = $Settings.RecipientLimit
222220
}
223221
}
@@ -249,8 +247,7 @@ function Invoke-CIPPStandardMailboxRecipientLimits {
249247

250248
if ($MailboxesToUpdate.Count -eq 0 -and $MailboxesWithPlanIssues.Count -eq 0) {
251249
$FieldValue = $true
252-
}
253-
else {
250+
} else {
254251
$FieldValue = $ReportData
255252
}
256253
Set-CIPPStandardsCompareField -FieldName 'standards.MailboxRecipientLimits' -FieldValue $FieldValue -Tenant $Tenant

0 commit comments

Comments
 (0)