Intune Device Compliance Policies

💼 Management Samenvatting

Device compliance policies vormen de ruggengraat van modern endpointbeheer binnen de Nederlandse Baseline voor Veilige Cloud. Door in Intune, Entra ID en Microsoft Defender duidelijke eisen vast te leggen voor encryptie, gezondheidsstatus en risico-indicatoren, krijgen bestuurders aantoonbare zekerheid dat elk apparaat aan hetzelfde minimum voldoet voordat het toegang krijgt tot gevoelige informatie. Het onderwerp raakt zowel CISO's als werkplekbeheerders, omdat technische instellingen alleen waarde hebben wanneer zij verankerd zijn in beleid, contractsafspraken en auditbare processen.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
9/10
Implementatie
76u (tech: 48u)
Van toepassing op:
Windows 11
Windows 10
macOS
iOS/iPadOS
Android Enterprise
Microsoft 365

BIO, AVG, NIS2, Wbni en sectorspecifieke kaders eisen dat organisaties aantonen welke controles worden uitgevoerd voordat devices toegang krijgen tot staats- en burgerdata. Incidentonderzoeken van NCSC en IBD tonen dat ransomware vaak start op endpoints zonder bijgewerkte compliance policies, waardoor Conditional Access de risico's niet herkent en SOC's pas reageren zodra exfiltratie zichtbaar wordt. Door compliance policies centraal te stellen, reduceren organisaties die blindspot: afwijkende firmware, uitgeschakelde antivirus of ontbrekende BitLocker-sleutels worden direct naar quarantine gestuurd, bestuurders krijgen meetbare KPI's en auditors kunnen exact herleiden welke eisen golden op een bepaalde datum.

PowerShell Modules Vereist
Primary API: Microsoft Graph
Connection: Connect-MgGraph
Required Modules: Microsoft.Graph.DeviceManagement, Microsoft.Graph.Beta.DeviceManagement

Implementatie

Dit artikel beschrijft hoe Nederlandse overheden device compliance policies strategisch positioneren. We behandelen governance en budgettering, het architectuurontwerp inclusief platform-specifieke instellingen, operationele monitoring met Microsoft Graph, en de audit- en verbetercyclus. Elk hoofdstuk koppelt beleid aan concrete scripts, dashboards en rapportages zodat teams de volledige keten - van beleidsbesluit tot remediatie - kunnen uitvoeren zonder improvisatie.

Governance, beleid en risicosturing

Een volwassen compliance-strategie begint bij het bestuur. De CIO benoemt compliance policies als kritieke beheersmaatregel binnen het informatiebeveiligingsbeleid en koppelt ze aan risicotolerantie: toegang tot primaire processen is uitsluitend toegestaan voor apparaten die de baseline-test doorstaan. Het CISO-office vertaalt dat besluit naar normatieve statements: BitLocker, Secure Boot, antivirusstatus, jailbreak-detectie en minimumversies worden verplicht, afwijkingen krijgen een maximale doorlooptijd van vijf dagen en uitzonderingen vereisen compenserende maatregelen zoals extra netwerksegmentatie of strengere Conditional Access. Deze uitgangspunten worden geborgd in het ISMS, inkoopcontracten en CAB-procedures, zodat elke licentie- of hardwarebeslissing automatisch wordt getoetst op impact voor compliance policies. Budgetten voor licenties, automatisering en expertise worden hierdoor niet langer als optioneel beschouwd maar zijn ingebed in de planning van zowel CIO-office als uitvoeringsorganisaties.

Het lifecycle-proces voor compliance policies is net zo belangrijk als de technische instellingen. Elke wijziging start met een risicoanalyse waarin SOC, privacy, juridisch en werkplekbeheer beschrijven waarom een nieuwe eis nodig is, welke gebruikersgroepen geraakt worden en hoe communicatie, training en change-management verlopen. Het change board beoordeelt scenario's zoals het verhogen van de minimum OS-versie of het verplichten van Pluton-chips, en koppelt daar deadlines, rollback-plannen en testdatasets aan. Documentatie wordt direct opgeslagen in het ISMS, inclusief context over dreigingsinformatie en auditvereisten, zodat dezelfde informatie voor bestuurders en toezichthouders beschikbaar is. Door elk besluit traceerbaar te maken in CAB-notulen en Git-repositories ontstaat een auditpad waarin duidelijk is welke beleidsregels golden tijdens een incident of externe review.

De governance-structuur kent duidelijke rolverdeling. Intune-beheerders beheren technische profielen, maar rapporteren aan een compliance steering committee waarin ook HR, inkoop, security operations en vertegenwoordigers van uitvoeringsorganisaties zitten. Dit comité beoordeelt voortgangsrapportages, bewaakt uitzonderingen en zorgt dat compliance policies synchroon lopen met andere controls zoals Windows Update for Business, Defender for Endpoint en Conditional Access. Daarnaast benoemt de organisatie proceseigenaren per platform (Windows, macOS, iOS/iPadOS, Android Enterprise) zodat cryptografische eisen, jailbreakevaluaties en app-gezondheidschecks consistent worden toegepast over de hele vloot. Omdat dit comité rechtstreeks rapporteert aan de CISO, worden bestuurlijke besluiten snel vertaald naar technische backlog-items, wat de doorlooptijd van verbeteringen drastisch verkort.

Ten slotte definieert governance de koppeling met dataclassificatie en leveranciersketen. Devices met staatsgeheime of politiegegevens krijgen een strakkere policy met eisen zoals eSIM-pinning, TPM 2.0 en automatische remote wipe, terwijl onderwijs- of burgerbalies extra nadruk krijgen op privacy-eisen en logging. Leveranciers moeten contractueel aantonen dat hun images, drivers en beheertools geen instellingen overschrijven die de compliance policy afdwingt en dat updates tijdig beschikbaar blijven. Deze afspraken worden ondersteund door kwartaalreviews waarin leveranciersrapportages naast interne meetwaarden worden gelegd, waardoor duidelijk wordt waar investeringen nodig blijven en waar governance al volwassen is. De effectiviteit van leveranciersmaatregelen wordt zichtbaar gemaakt via maturity-scores, zodat zwakke schakels onmiddellijk escaleren naar contractmanagement.

Architectuur en technische configuratie

Gebruik PowerShell-script device-compliance-policies.ps1 (functie Invoke-ComplianceAssessment) – Controleert via Microsoft Graph of compliance policies bestaan voor alle platforms, of assignments actueel zijn en of kritieke instellingen (encryptie, Secure Boot, minimumversies) worden afgedwongen..

Technische architectuur begint met het ontwerpen van lagen die ieder besturingssysteem de juiste controls geven. Voor Windows-apparaten betekent dit dat compliance policies verplichten dat BitLocker actief is met XTS-AES 256, Secure Boot is ingeschakeld, Defender realtime bescherming draait en dat apparaten minimaal Windows 11 23H2 of Windows 10 22H2 gebruiken. Voor macOS wordt FileVault afdwinging gecombineerd met eisen voor Gatekeeper en systeemextensies, terwijl mobiele platforms worden gecontroleerd op jailbreak of root, minimum patchniveau en hardware encryptie. Elke policy verwijst naar dezelfde baseline-ID, zodat rapportages de instellingen kunnen herleiden naar het bestuurlijke besluit. Voor Linux of gespecialiseerde apparaten beschrijft het ontwerp welke custom compliance scripts vereist zijn om dezelfde zekerheid te verkrijgen.

Dynamische groepen en filters vormen de lijm tussen beleid en apparaten. Het ontwerp beschrijft hoe Entra ID dynamische device-groepen worden opgebouwd op basis van AutopilotGroupTag, ownership, deployment ring en vertrouwelijkheidslabel, zodat de juiste policy automatisch wordt toegewezen zodra een apparaat zich registreert. Graph-automatiseringen controleren dagelijks of elke policy minstens een assignment heeft, of alle platformvarianten een actuele configuratie bezitten en of deadline-instellingen aansluiten op het patchbeleid. Daarnaast worden compliance policy scripts gekoppeld aan update-ringen: zodra een ring naar productie gaat, controleert het script of de minimumversie in de policy overeenkomt met de nieuwe build. Het ontwerp beschrijft ook hoe filters samenwerken met Scoped Tags, zodat beheer door koepelorganisaties en decentrale IT-afdelingen zonder conflicten verloopt.

Custom settings vullen de standaardpolicy aan. Voor Windows wordt gebruikgemaakt van de setting catalog om TPM 2.0, firmware-telemetrie en Microsoft Connected User Experiences blokkades af te dwingen, terwijl voor mobile platforms App Protection Policies worden gekoppeld om jailbreak-detectie te ondersteunen. Het ontwerp documenteert hoe dreigingsniveaus worden gemapt op acties: een status non compliant kan een directe device block triggeren, terwijl not evaluated maximaal zes uur in quarantaine blijft voordat escalatie volgt. Deze mapping zorgt ervoor dat Zero Trust policies en SIEM-regels dezelfde taal gebruiken wanneer zij beslissingen nemen over toegang.

Validatie en uitrol volgen een iteratief patroon. Voor elke wijziging wordt een lab ingericht waarin referentiehardware van leveranciers is opgenomen, inclusief scenario's voor offline agentschappen of voertuigen met beperkte connectiviteit. Testcases controleren of compliance policies correct reageren op BitLocker-suspensies, BIOS-wijzigingen, oude antivirusversies en verlopen certificaten. Pas na een geslaagde testrapportage wordt de wijziging uitgerold via ringstructuren: eerst pilot, dan early adopters, daarna productie. Elke stap krijgt meetpunten die door het script worden uitgelezen, zodat regressies meteen zichtbaar zijn. De architectuur voorziet bovendien in fallback-procedures: als een policy een kritieke applicatie blokkeert, kan een tijdelijke uitzonderingspolicy automatisch worden aangemaakt met einddatum en compenserende maatregel. De fallback is bovendien gekoppeld aan juridische afspraken, zodat bestuurders weten welke residuele risico's tijdelijk worden geaccepteerd.

Operations, monitoring en respons

Gebruik PowerShell-script device-compliance-policies.ps1 (functie Invoke-ComplianceMonitoring) – Genereert dagelijkse rapportages over compliancepercentages, uitzonderingen en achterstanden, inclusief CSV-export en directe koppeling naar ITSM-tickets..

Operationele beheersing draait om data. Het monitoringteam combineert Graph-exports zoals deviceCompliancePolicySettingStateSummaries, policyDeviceStateSummary en deviceCompliancePolicies met Intune-rapporten en Defender-signalen. De scriptmodule vertaalt deze data naar een uniform overzicht met aantallen compliant, non compliant, in herstelfase en niet gerapporteerd per platform. Hierdoor ziet het SOC binnen minuten welke apparaten in gebreke blijven en welke beleidsinstelling verantwoordelijk is. Dezelfde dataset voedt automatisering die bijvoorbeeld ServiceNow-tickets aanmaakt zodra non compliance boven een afgesproken drempel komt. Wanneer er geen telemetrie binnenkomt, genereert het script automatisch een health-check zodat verloren apparaten niet onopgemerkt blijven.

Dashboards in Power BI en Microsoft Fabric presenteren de belangrijkste indicatoren aan bestuurders en proceseigenaren. KPI's zoals het percentage apparaten dat binnen 30 minuten na onboarding compliant is, het aantal uitzonderingen ouder dan 14 dagen en de gemiddelde tijd tot remediatie worden dagelijks bijgewerkt. Teams ontvangen automatische alerts via Teams of e-mail wanneer KPI's de rode zone raken; de alert bevat een directe link naar het scriptresultaat en het ITSM-ticket zodat context niet verloren gaat. Rapportages zijn afgestemd op bestuurdersagenda's, waardoor cijfers over compliance automatisch worden meegenomen in kwartaalrapportages richting ministeries en toezichthouders.

Incidentrespons is verweven met monitoring. Wanneer het script detecteert dat een kritieke instelling zoals Secure Boot op meerdere apparaten wordt uitgeschakeld, start automatisch een containment-procedure: Conditional Access blokkeert toegang, Defender krijgt een indicator en de servicedesk ontvangt een draaiboek voor gebruikerscommunicatie. Tegelijkertijd verzamelt het script context zoals hardwarevendor, patchniveau en netwerksegment, zodat forensisch onderzoek sneller tot conclusies komt. Lessons learned uit incidenten worden direct toegevoegd aan het kennisportaal, waardoor vergelijkbare situaties in de toekomst sneller worden opgelost. Door remediation playbooks vooraf te documenteren blijft de responstijd onder de door NIS2 vereiste grenzen en kunnen bestuurders aantonen dat proportionele maatregelen zijn getroffen.

Capaciteitsmanagement en leverancierssturing maken de operatie compleet. De organisatie plant wekelijks welke teams compliance-achterstanden oplossen, welke leveranciers firmware-updates moeten leveren en welke projecten tijdelijk extra monitoring vereisen zoals verkiezingssoftware of inspectiediensten. Het monitoringproces levert daarvoor workloadprognoses, inclusief welk percentage issues automatisch kan worden opgelost via Intune remediation scripts en hoeveel gevallen handmatige interventie vragen. Op basis hiervan worden SLA's aangescherpt en wordt budgetallocatie onderbouwd richting bestuurders. Op die manier ontstaat een transparante keten waarin iedereen weet hoeveel capaciteit nodig is om compliant te blijven.

Audittrail en continue verbetering

Audittrail en bewijsvoering zijn kernonderdelen van de Baseline. Elke compliance policy wijziging genereert automatisch een Git-commit, een CAB-referentie en een export van de relevante Graph-instellingen inclusief JSON-payload en timestamp. Het script slaat deze exports op in een aparte SharePoint-bibliotheek met append-only permissies en een digitale handtekening zodat auditors kunnen controleren dat er niet is gemanipuleerd. Daarnaast worden scriptruns gelogd met correlatie-ID's, waardoor forensische teams precies weten met welke dataset een rapportage is gemaakt. Deze aanpak voorkomt discussies over brondata en versnelt externe audits aanzienlijk.

Bewijs stopt niet bij configuratiebestanden. Intune-rapporten over device compliance, ServiceNow-tickets over uitzonderingen, HR-gegevens over toestemmingen en leveranciersverklaringen worden samengebracht in een dossier per apparaatcategorie of organisatorische eenheid. Deze dossiers bevatten ook besluiten van het patchboard, interne communicatie en waarschuwingen die naar gebruikers zijn verstuurd. Door elk dossier te koppelen aan dataclassificaties waarborgt de organisatie dat vertrouwelijke gegevens alleen toegankelijk zijn voor geautoriseerde auditors en dat retentiebeleid strookt met de Archiefwet. Door zero-trust principes toe te passen op auditdossiers blijft privacy beschermd zonder dat bewijs verdwijnt.

Continue verbetering wordt uitgevoerd via een PDCA-cyclus. Elk kwartaal organiseert het team een maturity review waarin steekproeven worden genomen uit drie willekeurige maanden en waarin de effectiviteit van automatische remediatie, SOC-alerts en servicedeskprocessen wordt gemeten. Bevindingen leiden tot concrete verbeteracties zoals het aanscherpen van minimumversies, het toevoegen van nieuwe signalen aan Defender, het automatiseren van uitzonderingsverlengingen of het actualiseren van communicatie-templates. Deze acties krijgen eigenaars, deadlines en succescriteria en worden gevolgd in het ISMS, zodat bestuurders kunnen bijhouden hoe snel de organisatie leert. De review levert ook input voor strategische roadmaps richting bestuurders.

Tot slot borgt trainings- en kennismanagement de duurzaamheid van het programma. Nieuwe beheerders volgen een certificeringstraject waarin zij lab-scenario's doorlopen, scriptresultaten interpreteren en leren hoe zij meetgegevens presenteren aan bestuurders. Lessons learned uit audits of incidenten worden gedeeld in kwartaalwebinars met andere instellingen binnen de Nederlandse Baseline voor Veilige Cloud, zodat sectorbrede verbeteringen ontstaan. Door training te koppelen aan auditbevindingen wordt zichtbaar hoe kennisopbouw direct leidt tot minder uitzonderingen en snellere remediatie. Zo wordt kennisdeling onderdeel van de besturingscyclus in plaats van een adhoc activiteit.

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<#+ .SYNOPSIS Controle van Microsoft Intune device compliance policies. .DESCRIPTION Voert assessments uit op platformdekking, assignments en kritieke instellingen, genereert monitoringrapportages en biedt remediatie-instructies volgens de Nederlandse Baseline voor Veilige Cloud. .NOTES Filename : device-compliance-policies.ps1 Author : Nederlandse Baseline voor Veilige Cloud Version : 1.0 Related : content/m365/device-management/device-compliance-policies.json .EXAMPLE .\device-compliance-policies.ps1 -Assessment -LocalDebug .EXAMPLE .\device-compliance-policies.ps1 -Monitoring -ExportPath .\compliance.csv .EXAMPLE .\device-compliance-policies.ps1 -Remediation -WhatIf #> #Requires -Version 5.1 #Requires -Modules Microsoft.Graph.DeviceManagement [CmdletBinding(DefaultParameterSetName = 'Assessment')] param( [Parameter(ParameterSetName = 'Assessment')] [switch]$Assessment, [Parameter(ParameterSetName = 'Monitoring')] [switch]$Monitoring, [Parameter(ParameterSetName = 'Remediation')] [switch]$Remediation, [switch]$LocalDebug, [string]$ExportPath, [switch]$WhatIf ) $ErrorActionPreference = 'Stop' function Initialize-ComplianceContext { if ($LocalDebug) { Write-Verbose 'LocalDebug actief: Graph-verbinding wordt overgeslagen.' return } $context = Get-MgContext if (-not $context) { Write-Host 'Verbinden met Microsoft Graph...' -ForegroundColor Yellow Connect-MgGraph -Scopes @( 'DeviceManagementConfiguration.Read.All', 'DeviceManagementConfiguration.ReadWrite.All', 'DeviceManagementApps.Read.All' ) -ErrorAction Stop | Out-Null $context = Get-MgContext } if ($context.ApiVersion -ne 'beta') { Select-MgProfile -Name 'beta' } } function Get-ComplianceSampleData { $now = Get-Date return [pscustomobject]@{ Policies = @( [pscustomobject]@{ displayName = 'Windows Baseline' platform = 'windows10AndLater' lastModifiedDateTime = $now.AddDays(-2) scheduledActionsForRule = @() assignments = @('DG-Windows-Prod') }, [pscustomobject]@{ displayName = 'macOS Security' platform = 'macOS' lastModifiedDateTime = $now.AddDays(-5) scheduledActionsForRule = @() assignments = @('DG-macOS') }, [pscustomobject]@{ displayName = 'Android Enterprise' platform = 'androidForWork' lastModifiedDateTime = $now.AddDays(-1) scheduledActionsForRule = @() assignments = @('DG-Android') }, [pscustomobject]@{ displayName = 'iOS/iPadOS' platform = 'iOS' lastModifiedDateTime = $now.AddDays(-1) scheduledActionsForRule = @() assignments = @('DG-iOS') } ) DeviceSummary = [pscustomobject]@{ compliantDeviceCount = 2850 nonCompliantDeviceCount = 72 inGracePeriodCount = 31 configManagerCount = 0 notApplicableDeviceCount = 44 remediatedDeviceCount = 18 } SettingSummaries = @( [pscustomobject]@{ setting = 'RequireBitLocker' nonCompliantDeviceCount = 10 }, [pscustomobject]@{ setting = 'RequireSecureBoot' nonCompliantDeviceCount = 6 } ) Exceptions = @( [pscustomobject]@{ Policy = 'Windows Baseline' DeviceName = 'RvIG-LAP-0007' ExpiresOn = $now.AddDays(4) Reason = 'Forensisch onderzoek' } ) } } function Get-ComplianceInventory { Initialize-ComplianceContext if ($LocalDebug) { return Get-ComplianceSampleData } $policies = Invoke-MgGraphRequest -Method GET -Uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies?$expand=assignments' -ErrorAction Stop $summary = Invoke-MgGraphRequest -Method GET -Uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicyDeviceStateSummary' -ErrorAction Stop $settingSummary = Invoke-MgGraphRequest -Method GET -Uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicySettingStateSummaries' -ErrorAction Stop return [pscustomobject]@{ Policies = $policies.value DeviceSummary = $summary SettingSummaries= $settingSummary.value Exceptions = @() } } function Invoke-ComplianceAssessment { try { $inventory = Get-ComplianceInventory $issues = @() $requiredPlatforms = @('windows10AndLater','macOS','androidForWork','iOS') foreach ($platform in $requiredPlatforms) { $policy = $inventory.Policies | Where-Object { $_.platform -eq $platform } if (-not $policy) { $issues += "Geen compliance policy gevonden voor platform '$platform'." continue } foreach ($item in @($policy)) { if (-not $item.assignments -or $item.assignments.Count -eq 0) { $issues += "Policy '$($item.displayName)' heeft geen assignments." } $lastModified = Get-Date $item.lastModifiedDateTime if ((Get-Date) - $lastModified -gt [TimeSpan]::FromDays(30)) { $issues += "Policy '$($item.displayName)' is langer dan 30 dagen niet bijgewerkt." } } } foreach ($setting in @($inventory.SettingSummaries)) { if ($setting.nonCompliantDeviceCount -gt 25) { $issues += "Instelling '$($setting.setting)' heeft $($setting.nonCompliantDeviceCount) non-compliant apparaten." } } if (-not $inventory.DeviceSummary) { $issues += 'Device state summary kon niet worden opgehaald.' } if ($issues.Count -eq 0) { Write-Host 'COMPLIANT: Alle gecontroleerde beleidscriteria zijn aanwezig.' -ForegroundColor Green return 0 } else { Write-Host "NON-COMPLIANT: $($issues.Count) bevinding(en)." -ForegroundColor Red $issues | ForEach-Object { Write-Host " - $_" -ForegroundColor Yellow } return 1 } } catch { Write-Host "ERROR tijdens assessment: $_" -ForegroundColor Red return 2 } } function Invoke-ComplianceMonitoring { param( [string]$ExportPath ) try { $inventory = Get-ComplianceInventory $summary = $inventory.DeviceSummary if ($summary) { Write-Host "Compliant apparaten : $($summary.compliantDeviceCount)" -ForegroundColor Cyan Write-Host "Non compliant : $($summary.nonCompliantDeviceCount)" -ForegroundColor Cyan Write-Host "Grace period : $($summary.inGracePeriodCount)" -ForegroundColor Cyan } $policyRows = foreach ($policy in @($inventory.Policies)) { [pscustomobject]@{ PolicyName = $policy.displayName Platform = $policy.platform Assignments= (@($policy.assignments)).Count LastUpdate = $policy.lastModifiedDateTime } } if ($ExportPath) { $dir = Split-Path -Parent $ExportPath if ($dir -and -not (Test-Path $dir)) { New-Item -ItemType Directory -Path $dir -Force | Out-Null } $policyRows | Export-Csv -Path $ExportPath -NoTypeInformation -Encoding UTF8 Write-Host "Rapport geëxporteerd naar $ExportPath" -ForegroundColor Green } if ($inventory.Exceptions.Count -gt 0) { Write-Host 'Actieve uitzonderingen:' -ForegroundColor Yellow $inventory.Exceptions | Format-Table -AutoSize | Out-String | Write-Host } $thresholdExceeded = $summary -and $summary.nonCompliantDeviceCount -gt [math]::Round($summary.compliantDeviceCount * 0.05) return $thresholdExceeded ? 1 : 0 } catch { Write-Host "ERROR tijdens monitoring: $_" -ForegroundColor Red return 2 } } function Invoke-ComplianceRemediation { try { Write-Host 'Remediatie-aanpak:' -ForegroundColor Yellow Write-Host '1. Review Intune > Apparaat-compliance > Policies en valideer platformdekking.' -ForegroundColor Gray Write-Host '2. Controleer of BitLocker, Secure Boot en antivirus verplicht zijn binnen elke Windows policy.' -ForegroundColor Gray Write-Host '3. Gebruik dynamische groepen om assignments direct aan vertrouwelijkheidslabels te koppelen.' -ForegroundColor Gray Write-Host '4. Automatiseer uitzonderingen met einddatum en compenserende maatregelen in ITSM.' -ForegroundColor Gray Write-Host '5. Synchroniseer resultaten met Conditional Access zodat non-compliant apparaten direct worden geblokkeerd.' -ForegroundColor Gray if ($WhatIf) { Write-Host 'WhatIf actief: er zijn geen wijzigingen aangebracht.' -ForegroundColor Yellow } return 0 } catch { Write-Host "ERROR tijdens remediatie: $_" -ForegroundColor Red return 2 } } Write-Host "`n========================================" -ForegroundColor Cyan Write-Host 'Intune Device Compliance Policies' -ForegroundColor Cyan Write-Host 'Nederlandse Baseline voor Veilige Cloud' -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan try { switch ($PSCmdlet.ParameterSetName) { 'Assessment' { $exitCode = Invoke-ComplianceAssessment exit $exitCode } 'Monitoring' { $exitCode = Invoke-ComplianceMonitoring -ExportPath $ExportPath exit $exitCode } 'Remediation' { $exitCode = Invoke-ComplianceRemediation exit $exitCode } default { Write-Host 'Gebruik -Assessment, -Monitoring of -Remediation (optioneel -LocalDebug, -ExportPath, -WhatIf).' -ForegroundColor Yellow } } } catch { Write-Host "Onverwachte fout: $_" -ForegroundColor Red exit 2 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Het ontbreken van aantoonbare device compliance policies leidt tot ongecontroleerde toegang, vertraagde incidentrespons en overtredingen van BIO, AVG en NIS2. Bestuurders lopen het risico op aanwijzingen van toezichthouders, herstelkosten na datalekken en reputatieschade wanneer niet bewezen kan worden dat devices vooraf zijn getoetst.

Management Samenvatting

Bouw een governancegedreven complianceprogramma waarin Intune policies, Graph-monitoring en auditbestanden samenwerken. Alleen apparaten die bewijs leveren van encryptie, patchniveau en gezondheidsstatus krijgen toegang, waardoor risico's dalen en compliance aantoonbaar wordt.