Skip to content

Commit 880a96e

Browse files
feat: add better logging and some "already" checks to standards missing it (KelvinTegelaar#1984)
Enhance logging messages to clarify the status of settings and improve error handling during remediation processes across various standards. This should remove some unnecessary graph calls
2 parents f45bf3a + 6619f0a commit 880a96e

8 files changed

Lines changed: 67 additions & 49 deletions

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

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -93,22 +93,29 @@ function Invoke-CIPPStandardAutopilotStatusPage {
9393

9494
# Remediate if the state is not correct
9595
if ($Settings.remediate -eq $true) {
96-
try {
97-
$Parameters = @{
98-
TenantFilter = $Tenant
99-
ShowProgress = $Settings.ShowProgress
100-
BlockDevice = $Settings.BlockDevice
101-
InstallWindowsUpdates = $InstallWindowsUpdates
102-
AllowReset = $Settings.AllowReset
103-
EnableLog = $Settings.EnableLog
104-
ErrorMessage = $Settings.ErrorMessage
105-
TimeOutInMinutes = $Settings.TimeOutInMinutes
106-
AllowFail = $Settings.AllowFail
107-
OBEEOnly = $Settings.OBEEOnly
108-
}
96+
if ($StateIsCorrect -eq $true) {
97+
Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Autopilot Enrollment Status Page is already configured correctly.' -sev Info
98+
} else {
99+
try {
100+
$Parameters = @{
101+
TenantFilter = $Tenant
102+
ShowProgress = $Settings.ShowProgress
103+
BlockDevice = $Settings.BlockDevice
104+
InstallWindowsUpdates = $InstallWindowsUpdates
105+
AllowReset = $Settings.AllowReset
106+
EnableLog = $Settings.EnableLog
107+
ErrorMessage = $Settings.ErrorMessage
108+
TimeOutInMinutes = $Settings.TimeOutInMinutes
109+
AllowFail = $Settings.AllowFail
110+
OBEEOnly = $Settings.OBEEOnly
111+
}
109112

110-
Set-CIPPDefaultAPEnrollment @Parameters
111-
} catch {
113+
Set-CIPPDefaultAPEnrollment @Parameters
114+
Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Autopilot Enrollment Status Page settings have been updated.' -sev Info
115+
} catch {
116+
$ErrorMessage = Get-CippException -Exception $_
117+
Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Autopilot Enrollment Status Page: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage
118+
}
112119
}
113120
}
114121

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ function Invoke-CIPPStandardDisableGuests {
121121
Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to process bulk disable guests request: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage
122122
}
123123
} else {
124-
Write-LogMessage -API 'Standards' -tenant $tenant -message "No guests accounts with a login longer than $checkDays days ago." -sev Info
124+
Write-LogMessage -API 'Standards' -tenant $tenant -message "No guests accounts with a login longer than $checkDays days ago - all guest accounts are already compliant." -sev Info
125125
}
126126
}
127127
if ($Settings.alert -eq $true) {

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,24 @@ function Invoke-CIPPStandardEXODisableAutoForwarding {
4545

4646
try {
4747
$CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedOutboundSpamFilterPolicy' -cmdParams @{Identity = 'Default' } -useSystemMailbox $true
48-
}
49-
catch {
48+
} catch {
5049
$ErrorMessage = Get-NormalizedError -Message $_.Exception.Message
5150
Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EXODisableAutoForwarding state for $Tenant. Error: $ErrorMessage" -Sev Error
5251
return
5352
}
5453
$StateIsCorrect = $CurrentInfo.AutoForwardingMode -eq 'Off'
5554

5655
if ($Settings.remediate -eq $true) {
57-
try {
58-
New-ExoRequest -tenantid $tenant -cmdlet 'Set-HostedOutboundSpamFilterPolicy' -cmdParams @{ Identity = 'Default'; AutoForwardingMode = 'Off' } -useSystemMailbox $true
59-
Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled auto forwarding' -sev Info
60-
} catch {
61-
$ErrorMessage = Get-CippException -Exception $_
62-
Write-LogMessage -API 'Standards' -tenant $tenant -message "Could not disable auto forwarding. $($ErrorMessage.NormalizedError)" -sev Error
56+
if ($StateIsCorrect -eq $true) {
57+
Write-LogMessage -API 'Standards' -tenant $tenant -message 'Auto forwarding is already disabled.' -sev Info
58+
} else {
59+
try {
60+
New-ExoRequest -tenantid $tenant -cmdlet 'Set-HostedOutboundSpamFilterPolicy' -cmdParams @{ Identity = 'Default'; AutoForwardingMode = 'Off' } -useSystemMailbox $true
61+
Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled auto forwarding' -sev Info
62+
} catch {
63+
$ErrorMessage = Get-CippException -Exception $_
64+
Write-LogMessage -API 'Standards' -tenant $tenant -message "Could not disable auto forwarding. $($ErrorMessage.NormalizedError)" -sev Error
65+
}
6366
}
6467
}
6568

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

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -48,30 +48,34 @@ function Invoke-CIPPStandardNudgeMFA {
4848

4949
if ($Settings.remediate -eq $true) {
5050
$StateName = $State.Substring(0, 1).ToUpper() + $State.Substring(1)
51-
try {
52-
$GraphRequest = @{
53-
tenantid = $Tenant
54-
uri = 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy'
55-
AsApp = $false
56-
Type = 'PATCH'
57-
ContentType = 'application/json'
58-
Body = @{
59-
registrationEnforcement = @{
60-
authenticationMethodsRegistrationCampaign = @{
61-
state = $State
62-
snoozeDurationInDays = $Settings.snoozeDurationInDays
63-
enforceRegistrationAfterAllowedSnoozes = $true
64-
includeTargets = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.includeTargets
65-
excludeTargets = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.excludeTargets
51+
if ($StateIsCorrect -eq $true) {
52+
Write-LogMessage -API 'Standards' -tenant $Tenant -message "Authenticator App Nudge is already set to $State with a snooze duration of $($Settings.snoozeDurationInDays)." -sev Info
53+
} else {
54+
try {
55+
$GraphRequest = @{
56+
tenantid = $Tenant
57+
uri = 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy'
58+
AsApp = $false
59+
Type = 'PATCH'
60+
ContentType = 'application/json'
61+
Body = @{
62+
registrationEnforcement = @{
63+
authenticationMethodsRegistrationCampaign = @{
64+
state = $State
65+
snoozeDurationInDays = $Settings.snoozeDurationInDays
66+
enforceRegistrationAfterAllowedSnoozes = $true
67+
includeTargets = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.includeTargets
68+
excludeTargets = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.excludeTargets
69+
}
6670
}
67-
}
68-
} | ConvertTo-Json -Depth 10 -Compress
71+
} | ConvertTo-Json -Depth 10 -Compress
72+
}
73+
New-GraphPostRequest @GraphRequest
74+
Write-LogMessage -API 'Standards' -tenant $Tenant -message "$StateName Authenticator App Nudge with a snooze duration of $($Settings.snoozeDurationInDays)" -sev Info
75+
} catch {
76+
$ErrorMessage = Get-CippException -Exception $_
77+
Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Authenticator App Nudge to $State. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage
6978
}
70-
New-GraphPostRequest @GraphRequest
71-
Write-LogMessage -API 'Standards' -tenant $Tenant -message "$StateName Authenticator App Nudge with a snooze duration of $($Settings.snoozeDurationInDays)" -sev Info
72-
} catch {
73-
$ErrorMessage = Get-CippException -Exception $_
74-
Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Authenticator App Nudge to $State. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage
7579
}
7680
}
7781

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ function Invoke-CIPPStandardPerUserMFA {
5858
$UpdateDB = $false
5959
if (($UsersWithoutMFA | Measure-Object).Count -gt 0) {
6060
try {
61-
$MFAMessage = Set-CIPPPerUserMFA -TenantFilter $Tenant -userId @($UsersWithoutMFA.userPrincipalName) -State 'enforced'
61+
$MFAMessage = Set-CIPPPerUserMFA -TenantFilter $Tenant -UserId @($UsersWithoutMFA.userPrincipalName) -State 'enforced'
6262
Write-LogMessage -API 'Standards' -tenant $tenant -message $MFAMessage -sev Info
6363
$UpdateDB = $true
6464
} catch {
@@ -74,6 +74,8 @@ function Invoke-CIPPStandardPerUserMFA {
7474
Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh user cache after remediation: $($_.Exception.Message)" -sev Warning
7575
}
7676
}
77+
} else {
78+
Write-LogMessage -API 'Standards' -tenant $tenant -message 'All users already have Legacy MFA enforced.' -sev Info
7779
}
7880
}
7981
if ($Settings.alert -eq $true) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function Invoke-CIPPStandardQuarantineRequestAlert {
5050

5151
if ($Settings.remediate -eq $true) {
5252
if ($StateIsCorrect -eq $true) {
53-
Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Quarantine Request Alert is configured correctly' -sev Info
53+
Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Quarantine Request Alert is already configured correctly.' -sev Info
5454
} else {
5555
$cmdParams = @{
5656
'NotifyUser' = $Settings.NotifyUser

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ function Invoke-CIPPStandardSharePointMassDeletionAlert {
6666

6767
if ($Settings.remediate -eq $true) {
6868
if ($StateIsCorrect -eq $true) {
69-
Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint mass deletion of files alert is configured correctly' -sev Info
69+
Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint mass deletion of files alert is already configured correctly.' -sev Info
7070
} else {
7171
$cmdParams = @{
7272
'NotifyUser' = $Settings.NotifyUser.value

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ function Invoke-CIPPStandardUserPreferredLanguage {
7777
Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh user cache after remediation: $($_.Exception.Message)" -sev Warning
7878
}
7979
}
80+
} else {
81+
Write-LogMessage -API 'Standards' -tenant $Tenant -message "All users already have the preferred language set to $preferredLanguage." -sev Info
8082
}
8183
}
8284

0 commit comments

Comments
 (0)