From 782473dc22a08e274e4e9c208efb5ee0b150fa95 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu, 30 Jan 2025 13:01:37 +0100 Subject: [PATCH 1/2] Fix groups due to incorrect header ussed in standards.json, thanks bobby --- .../Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 index cb20b7d7fae9..69d4f18fdb99 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 @@ -15,7 +15,7 @@ function Invoke-CIPPStandardGroupTemplate { CAT Templates DISABLEDFEATURES - + IMPACT Medium ADDEDCOMPONENT @@ -29,7 +29,9 @@ function Invoke-CIPPStandardGroupTemplate { ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'GroupTemplate' If ($Settings.remediate -eq $true) { - + #Because the list name changed from TemplateList to groupTemplate by someone :@, we'll need to set it back to TemplateList + $Settings.groupTemplate ? ($Settings | Add-Member -NotePropertyName 'TemplateList' -NotePropertyValue $Settings.groupTemplate) : $null + Write-Host "Settings: $($Settings.TemplateList | ConvertTo-Json)" foreach ($Template in $Settings.TemplateList) { try { $Table = Get-CippTable -tablename 'templates' From 3bbb7465b99ef27ea3831c48e8d995fbbe2175a6 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu, 30 Jan 2025 13:31:16 +0100 Subject: [PATCH 2/2] fixes issue with templatelist --- .../HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 | 1 + Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 | 2 +- Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 | 1 + .../Standards/Invoke-CIPPStandardIntuneTemplate.ps1 | 8 +++++--- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 index ef5930708f45..0408fb793275 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 @@ -18,6 +18,7 @@ Function Invoke-AddPolicy { $displayname = $Request.Body.displayName $description = $Request.Body.Description $AssignTo = if ($Request.Body.AssignTo -ne 'on') { $Request.Body.AssignTo } + $Request.body.customGroup ? ($AssignTo = $Request.body.customGroup) : $null $RawJSON = $Request.Body.RAWJson $results = foreach ($Tenant in $tenants) { diff --git a/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 index 08f88bd167c6..78a1ee21ea5d 100644 --- a/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 @@ -47,6 +47,7 @@ function Set-CIPPAssignedPolicy { ) } default { + Write-Host "We're supposed to assign a custom group. The group is $GroupName" $GroupNames = $GroupName.Split(',') $GroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName&$top=999' -tenantid $TenantFilter | ForEach-Object { $Group = $_ @@ -78,7 +79,6 @@ function Set-CIPPAssignedPolicy { Write-LogMessage -user $ExecutingUser -API $APIName -message "Assigned $GroupName to Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter } } catch { - #$ErrorMessage = Get-CippException -Exception $_ $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -user $ExecutingUser -API $APIName -message "Failed to assign $GroupName to Policy $PolicyId, using Platform $PlatformType and $Type. The error is:$ErrorMessage" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage } diff --git a/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 index ba69897b7e88..95929155730a 100644 --- a/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 @@ -133,6 +133,7 @@ function Set-CIPPIntunePolicy { if ($AssignTo) { Write-Host "Assigning policy to $($AssignTo) with ID $($CreateRequest.id) and type $TemplateTypeURL for tenant $tenantFilter" Write-Host "ID is $($CreateRequest.id)" + Set-CIPPAssignedPolicy -GroupName $AssignTo -PolicyId $CreateRequest.id -Type $TemplateTypeURL -TenantFilter $tenantFilter } return "Successfully $($PostType) policy for $($tenantFilter) with display name $($Displayname)" diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 index 3963933db0e4..68a437bd4bc4 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 @@ -15,7 +15,7 @@ function Invoke-CIPPStandardIntuneTemplate { MULTIPLE True DISABLEDFEATURES - + IMPACT High ADDEDCOMPONENT @@ -33,17 +33,19 @@ function Invoke-CIPPStandardIntuneTemplate { If ($Settings.remediate -eq $true) { Write-Host 'starting template deploy' + Write-Host "The full settings are $($Settings | ConvertTo-Json)" $APINAME = 'Standards' - foreach ($Template in $Settings.TemplateList) { + foreach ($Template in $Settings) { Write-Host "working on template deploy: $($Template | ConvertTo-Json)" try { $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'IntuneTemplate'" $Request = @{body = $null } - $Request.body = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object -Property RowKey -Like "$($template.value)*").JSON | ConvertFrom-Json + $Request.body = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object -Property RowKey -Like "$($Template.TemplateList.value)*").JSON | ConvertFrom-Json $displayname = $request.body.Displayname $description = $request.body.Description $RawJSON = $Request.body.RawJSON + $Template.customGroup ? ($Template.AssignTo = $Template.customGroup) : $null Set-CIPPIntunePolicy -TemplateType $Request.body.Type -Description $description -DisplayName $displayname -RawJSON $RawJSON -AssignTo $Template.AssignTo -tenantFilter $Tenant } catch {