From c1751bec4d2a6b499db864f8d324f9392da0b7a6 Mon Sep 17 00:00:00 2001 From: Marco Wende Date: Wed, 23 Sep 2026 12:37:55 +0200 Subject: [PATCH] =?UTF-8?q?Policies:=20ADMX-Import=20=C3=BCberspringt=20Ei?= =?UTF-8?q?nstellung=20sauber=20bei=20Presentation-Mismatch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bei ingesteten ADMX mit abweichender Ziel-Version ließ sich eine Presentation teils nicht zuordnen; bisher wurde die Einstellung dennoch (unvollständig) gepostet -> 400 BadRequest. Jetzt wird die ganze Einstellung mit klarer Meldung übersprungen, statt einen kaputten Body zu senden. Co-Authored-By: Claude Opus 4.8 --- src/PolicyIO.ps1 | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/PolicyIO.ps1 b/src/PolicyIO.ps1 index 6b9df4b..ca77500 100644 --- a/src/PolicyIO.ps1 +++ b/src/PolicyIO.ps1 @@ -586,14 +586,18 @@ function Import-GraphAdministrativeTemplate { try { $tgtPres = @(Get-GraphPaged -Uri "$defRoot/$defId/presentations" -AsRawJson) } catch { $tgtPres = @() } } - $presVals = @() + $presVals = @() $typeCounter = @{} + $presFailed = $false foreach ($pv in @(Get-PolicyProp $dv 'presentationValues')) { if (-not $pv) { continue } $pres = Get-PolicyProp $pv 'presentation' if ($ingested) { $presId = Resolve-TargetPresentationId -TargetPres $tgtPres -SrcPresentation $pres -Counter $typeCounter - if (-not $presId) { $errors += "${defName}: Presentation im Ziel nicht zuordenbar - Wert uebersprungen"; continue } + # Presentation nicht zuordenbar (andere ADMX-Version im Ziel): die GANZE + # Einstellung ueberspringen, statt mit unvollstaendigem Body ein 400 zu + # provozieren. + if (-not $presId) { $presFailed = $true; break } } else { $presId = [string](Get-PolicyProp $pres 'id') } @@ -608,6 +612,10 @@ function Import-GraphAdministrativeTemplate { } $presVals += $entry } + if ($presFailed) { + $errors += "${defName}: Eingabefelder passen nicht zur Ziel-ADMX (andere Version?) - uebersprungen" + continue + } $body = [ordered]@{ enabled = [bool](Get-PolicyProp $dv 'enabled')