Skip to content

Commit 92db8d8

Browse files
authored
Merge pull request #375 from KelvinTegelaar/dev
[pull] dev from KelvinTegelaar:dev
2 parents 48c2521 + 0a8b548 commit 92db8d8

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

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

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@ function Invoke-CIPPStandardConditionalAccessTemplate {
3131
param($Tenant, $Settings)
3232
##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'ConditionalAccess'
3333
$TestResult = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2')
34+
$Table = Get-CippTable -tablename 'templates'
3435

3536
if ($TestResult -eq $false) {
3637
Write-Host "We're exiting as the correct license is not present for this standard."
3738
return $true
3839
} #we're done.
40+
$AllCAPolicies = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $Tenant
3941

4042
if ($Settings.remediate -eq $true) {
41-
$AllCAPolicies = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $Tenant
4243
foreach ($Setting in $Settings) {
4344
try {
44-
$Table = Get-CippTable -tablename 'templates'
4545
$Filter = "PartitionKey eq 'CATemplate' and RowKey eq '$($Setting.TemplateList.value)'"
4646
$JSONObj = (Get-CippAzDataTableEntity @Table -Filter $Filter).JSON
4747
$null = New-CIPPCAPolicy -replacePattern 'displayName' -TenantFilter $tenant -state $Setting.state -RawJSON $JSONObj -Overwrite $true -APIName $APIName -Headers $Request.Headers -DisableSD $Setting.DisableSD
@@ -51,20 +51,24 @@ function Invoke-CIPPStandardConditionalAccessTemplate {
5151
}
5252
}
5353
}
54-
if ($Settings.report -eq $true) {
55-
$Policies = $Settings.TemplateList.JSON | ConvertFrom-Json -Depth 10
54+
if ($Settings.report -eq $true -or $Settings.remediate -eq $true) {
55+
$Filter = "PartitionKey eq 'CATemplate'"
56+
$Policies = (Get-CippAzDataTableEntity @Table -Filter $Filter | Where-Object RowKey -In $Settings.TemplateList.value).JSON | ConvertFrom-Json -Depth 10
5657
#check if all groups.displayName are in the existingGroups, if not $fieldvalue should contain all missing groups, else it should be true.
57-
$MissingPolicies = foreach ($policy in $Policies) {
58-
$CheckExististing = $AllCAPolicies | Where-Object -Property displayName -EQ $policy.displayname
58+
$MissingPolicies = foreach ($Setting in $Settings.TemplateList) {
59+
$policy = $Policies | Where-Object { $_.displayName -eq $Setting.label }
60+
$CheckExististing = $AllCAPolicies | Where-Object -Property displayName -EQ $Setting.label
5961
if (!$CheckExististing) {
60-
$policy.displayname
62+
Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Setting.label) is missing from this tenant." -Tenant $Tenant
63+
} else {
64+
$CompareObj = ConvertFrom-Json -ErrorAction SilentlyContinue -InputObject (New-CIPPCATemplate -TenantFilter $tenant -JSON $CheckExististing)
65+
$Compare = Compare-CIPPIntuneObject -ReferenceObject $policy -DifferenceObject $CompareObj
66+
if (!$Compare) {
67+
Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue $true -Tenant $Tenant
68+
} else {
69+
Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue $Compare -Tenant $Tenant
70+
}
6171
}
6272
}
63-
if ($MissingPolicies.Count -eq 0) {
64-
$fieldValue = $true
65-
} else {
66-
$fieldValue = $MissingPolicies -join ', '
67-
}
68-
Set-CIPPStandardsCompareField -FieldName 'standards.ConditionalAccessTemplate' -FieldValue $fieldValue -Tenant $Tenant
6973
}
7074
}

0 commit comments

Comments
 (0)