Intune-enrollment Ingericht Voor Ieder Microsoft 365-apparaat

💼 Management Samenvatting

Een foutloos ingerichte Intune-enrollment is de toegangspoort tot alle andere maatregelen binnen de Nederlandse Baseline voor Veilige Cloud. Zonder betrouwbare registratie van apparaten kunt u geen compliance handhaven, geen Conditional Access afdwingen en geen auditspoor leveren dat standhoudt bij een BIO- of NIS2-controle.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
8/10
Implementatie
280u (tech: 160u)
Van toepassing op:
Microsoft 365 E5
Intune
Windows 11
Android Enterprise
iOS/iPadOS
macOS

Veel organisaties gaan ervan uit dat apparaten automatisch worden ingeschreven zodra een licentie is toegewezen. In de praktijk blijken BYOD-apparaten, nieuw aangeschafte laptops of vervangende toestellen regelmatig buiten beheer te blijven. Daardoor ontbreken actuele configuratieprofielen, is het onduidelijk wie eigenaar is van een device en ontstaat er geen basis voor versleuteling, patching of remote wipe. Juist toezichthouders vragen steeds vaker om aantoonbaar bewijs dat iedere identiteitsketen eindigt op een geregistreerd, beoordeeld en compliant apparaat.

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

Implementatie

Dit artikel beschrijft hoe u Intune-enrollment positioneert als bestuurlijk proces, hoe u de technische architectuur inricht, welke operationele controles nodig zijn en hoe u auditors overtuigt met verifieerbaar bewijs. Het begeleidende PowerShell-script controleert via Microsoft Graph of apparaten daadwerkelijk zijn ingeschreven, wanneer zij voor het laatst hebben gesynchroniseerd, en of kritieke kenmerken zoals management agent, compliance status en eigenaarschap overeenkomen met de vastgelegde normen van de Nederlandse Baseline voor Veilige Cloud.

Strategische governance en positionering van Intune-enrollment

Intune-enrollment is geen puur technische handeling maar een bestuurlijke afspraak tussen de CISO-organisatie, HR, inkoop en de werkplekafdeling. Het proces bepaalt immers of een medewerker überhaupt toegang krijgt tot e-mail, Teams-vergaderingen of gevoelige dossiers. Begin met het vastleggen van beleid waarin staat dat ieder apparaat – ongeacht of het eigendom is van de organisatie, een leverancier of de medewerker zelf – zich moet laten registreren via Intune voordat productiedata beschikbaar komt. Maak hierbij het onderscheid tussen corporate-owned, personally owned en shared devices expliciet en koppel aan elk type concrete beveiligingsregels. Bestuurders krijgen zo inzicht in het aantal beheerde endpoints per informatieklasse en kunnen gericht investeringen doen in licenties, hardware-tokens of aanvullende beveiligingssoftware.

Vervolgens is het belangrijk om Intune-enrollment te verbinden met identiteitsgovernance. Koppel enrollment aan Microsoft Entra ID-dynamische groepen zodat alleen apparaten met een succesvol registratiestempel worden toegevoegd aan productieroosters, Teams-channels of applicatierollen. Conditional Access fungeert als poortwachter en weigert toegang zodra het apparaat geen compliance-rapport levert. Leg deze keten vast in het security governance handboek en verwijs naar de BIO-paragrafen 9 en 11 waarin staat dat werkplekken aantoonbaar moeten voldoen aan configuratie-eisen voordat zij verbinding mogen maken met vitale diensten. Door enrollment als harde toegangseis neer te zetten, ontstaat er voor directies geen ruimte meer om uitzonderingen te vragen zonder formele risicobeoordeling.

Voor de Nederlandse publieke sector is draagvlak cruciaal. Werknemers, vakbonden en ondernemingsraden willen weten wat enrollment betekent voor monitoring, privacy en beheerrechten. Organiseer daarom informatie- en trainingssessies waarin u uitlegt dat Intune-enrollment primair dient om persoonsgegevens te beschermen en de continuïteit van dienstverlening te borgen. Bespreek welke data wordt verzameld (bijvoorbeeld OS-versies, encryptiestatus en compliance-uitkomsten) en wat bewust niet wordt vastgelegd (privégebruik, inhoud van bestanden of locatiedata). Transparantie over logging voorkomt weerstand en versnelt de acceptatie van BYOD-regelingen, terwijl bestuurders kunnen verwijzen naar deze documentatie als toezichthouders kritische vragen stellen.

Een volwassen governance-aanpak definieert ook escalatiepaden. Wanneer een apparaat niet langer synchroniseert of nooit een enrollment-rapport heeft aangeleverd, moet het verantwoordelijke team automatisch een ticket ontvangen. Stel KPI’s op zoals "percentage apparaten dat binnen acht uur na eerste login is ingeschreven" of "aantal apparaten dat langer dan dertig dagen geen Intune-check-in heeft gedaan". Deze indicatoren vloeien voort uit de Nederlandse Baseline voor Veilige Cloud en worden periodiek gepresenteerd in het CIO- en CISO-beraad. Door governance en rapportage bij elkaar te brengen ontstaat een cyclisch verbeterproces waarin enrollment niet wordt gezien als een eenmalige migratie, maar als een continu onderdeel van risicobeheersing.

Tot slot verdient de relatie met leveranciers en ketenpartners aandacht. Steeds meer organisaties werken samen in sectorale security-operaties of delen applicaties via interbestuurlijke afspraken. Neem in contracten en verwerkersovereenkomsten op dat externe partijen alleen toegang krijgen via apparaten die zijn geregistreerd in uw Intune-tenant of middels een federatief gecontroleerde tenant. Documenteer de due-diligence stappen, waaronder controle van management agent, versleutelingsstatus en patchniveau, zodat u kunt aantonen dat derde partijen dezelfde baseline hanteren. Daarmee voorkomt u dat een ketenpartij de zwakke schakel wordt in een BIO-audit of dat een incident leidt tot bestuurlijke aansprakelijkheid.

Architectuur en technische inrichting van enrollmentstromen

Gebruik PowerShell-script intune-enrollment-configured.ps1 (functie Invoke-IntuneEnrollmentAssessment) – Controleert via Microsoft Graph of apparaten correct zijn ingeschreven, recente check-ins hebben en de juiste management agent gebruiken..

Een schaalbaar ontwerp begint met een duidelijke segmentatie van enrollmentmethoden. Gebruik Windows Autopilot voor corporate laptops, Apple Business Manager en Device Enrollment Program voor iOS en macOS, en Android Enterprise met Zero Touch of Knox Mobile Enrollment voor mobiele toestellen. Elk kanaal levert een gecontroleerde keten waarin serienummers of IMEI’s vooraf zijn geregistreerd en automatisch in Intune belanden zodra het apparaat wordt opgestart. Voor BYOD-scenario’s definieert u afzonderlijke registratieroutes met Company Portal of web-based enrollment, gecombineerd met heldere instructies over welke rechten een gebruiker afgeeft. Documenteer per route welke certificaten, profielen en configuratiepakketten worden uitgerold zodat solution architects altijd kunnen herleiden waarom een apparaat een bepaald baseline-profiel ontving.

De technische architectuur moet ook rekening houden met hybride identiteit. Integreer Intune met Microsoft Entra ID en eventueel Azure AD Connect zodat apparaten automatisch worden gekoppeld aan de juiste identiteiten en licenties. Gebruik dynamic membership rules om apparaten in groepen te plaatsen op basis van platform, eigendomstype, risicoprofiel of departement. Zo kunt u Conditional Access-regels laten verwijzen naar deze groepen en voorkomt u dat gebruikers met een niet-geregistreerd apparaat alsnog productiedata downloaden. Leg vast hoe apparaatcertificaten worden uitgegeven, hoe Windows Hello for Business en Endpoint Analytics worden geactiveerd en hoe telemetry terugstroomt naar het SOC of het CISO-dashboard.

Een ander cruciaal element is het beheer van management agents. Stel als norm dat alle corporate apparaten ten minste de Intune MDM-agent gebruiken en dat Microsoft Defender for Endpoint of een gelijkwaardig EDR-product aanwezig is voor aanvullende signalering. Voor BYOD-apparaten legt u vast dat alleen MAM-only profielen zonder device compliance mogen worden aangeboden en dat deze niet mogen worden ingezet voor hoog-geclassificeerde informatie. De architectuur beschrijft ook hoe complianceprocedures worden getriggerd als de agent ontbreekt of verouderd is. Het script in deze map gebruikt Graph-velden zoals managementAgent en complianceState om afwijkingen vroegtijdig te signaleren, zodat beheerders weten welke registratieroute moet worden hersteld.

Tot slot hoort bij een volwassen architectuur een test- en validatiestrategie. Richt een aparte Intune-testtenant of sandbox in waarin u enrollmentscenario’s automatiseert met PowerShell en Graph. Gebruik de DebugMode van het script om configuratieregels te simuleren zonder productiegegevens en leg vast hoe release management plaatsvindt: welke configuraties moeten worden goedgekeurd door de CAB, hoe worden Autopilot-profielen gevalideerd en hoe snel worden wijzigingen uitgerold naar productie. Beschrijf hoe u fallbackscenario’s inricht voor het geval Autopilot of Apple Business Manager tijdelijk niet beschikbaar is, zodat nieuwe medewerkers toch binnen één werkdag een geregistreerd device ontvangen. Deze ontwerpdetails maken inzichtelijk dat enrollment een gecontroleerde keten vormt en geen verzameling losse scripts.

Operationeel beheer, monitoring en remediatie

Gebruik PowerShell-script intune-enrollment-configured.ps1 (functie Invoke-IntuneEnrollmentRemediation) – Biedt stappen voor het herstellen van ontbrekende enrollment, het herstarten van agents en het opnieuw uitrollen van configuraties..

Operationeel beheer draait om voorspelbaarheid. Definieer dagelijkse controles waarin u nagaat hoeveel apparaten het afgelopen etmaal een check-in hebben gedaan, welke enrollmentmethoden zijn gebruikt en of er pieken zichtbaar zijn die duiden op massale herregistraties. Automatiseer deze controles via Graph-queries die de resultaten wegschrijven naar Azure Monitor of een Power BI-dashboard. Het script in deze map kan als scheduled task worden uitgevoerd en genereert CSV-bewijs waarin u ziet welke apparaten langer dan dertig dagen niet hebben gesynchroniseerd, welke enrollmentType onbekend is en welke eigenaarschapssituatie niet overeenkomt met het HR-register. Voeg hieraan SLA’s toe: een servicedesk krijgt bijvoorbeeld vier uur om een ontbrekende registratie te herstellen voordat toegang automatisch wordt ingetrokken.

Monitoring moet verder gaan dan tellen. Leg in runbooks vast hoe u outliers onderzoekt. Wanneer het script meldt dat het managementAgent-veld onbekend is, controleert het beheerteam of het apparaat überhaupt nog actief is in Azure AD, of dat een reset nodig is. Bij apparaten die wel zijn ingeschreven maar geen compliance rapporteren, kijkt u naar conflicts tussen configuratieprofielen, verouderde versies van Company Portal of het ontbreken van licenties. Door deze analysecycli te documenteren ontstaat er een herhaalbaar proces waarin iedere storing leidt tot concrete acties: gebruiker informeren, profiel opnieuw pushen, apparaat blokkeren of escaleren naar het SOC.

Een belangrijk aandachtspunt is ketenintegratie met andere platformen. Endpoint Detection and Response, Defender for Cloud Apps en Purview gebruiken enrollmentdata om risico’s te beoordelen. Zorg ervoor dat de Intune-beheerder en het SOC afspraken maken over welke velden leidend zijn. Wanneer het script bijvoorbeeld aangeeft dat lastSyncDateTime ouder is dan veertien dagen, moet het SOC automatisch controleren of er afwijkende sign-in patronen zichtbaar zijn. Koppel deze signalen aan incident-response workflows zodat apparaten preventief in quarantaine worden geplaatst. Documenteer ook hoe uitzonderingen worden afgehandeld, bijvoorbeeld voor apparaten die alleen in crisisscenario’s worden gebruikt en daarom geen dagelijkse check-ins hebben.

De laatste schakel in operationeel beheer is communicatie met eindgebruikers en management. Ontwikkel notificaties die gebruikers informeren wanneer hun apparaat buiten beheer dreigt te vallen, inclusief duidelijke instructies voor herregistratie via Company Portal of Autopilot reset. Rapporteer maandelijks aan het CIO- en CISO-forum over trends: aantal nieuwe devices, aantal verwijderde enrollments, gemiddelde hersteltijd en de impact op auditbevindingen. Zo wordt enrollment niet gezien als technische randzaak maar als onderdeel van de dienstverlening die directieleden begrijpen en waarop zij kunnen sturen. Het script fungeert als objectieve thermometer en levert de gegevens aan die nodig zijn voor deze rapportages.

Assurance, documentatie en continue verantwoording

Auditors verwachten dat u kunt aantonen welke apparaten toegang hebben tot gegevens, wie verantwoordelijk is voor het beheer en welke controles plaatsvinden. Verzamel daarom alle enrollment-besluiten, CAB-notities en changeverzoeken in een centrale SharePoint-bibliotheek of recordsmanagementsysteem. Koppel ieder document aan een unieke referentie in de CMDB waarin staat welke configuratieprofielen zijn toegepast en welk team eigenaar is. Voeg daaraan scriptoutput toe zodat een auditor binnen enkele minuten kan zien dat het beleid niet alleen op papier bestaat maar ook daadwerkelijk is afgedwongen. Verwijs naar relevante BIO-paragrafen, ISO 27001-controles en AVG-artikelen om te laten zien dat enrollment integraal onderdeel is van het bredere complianceprogramma.

Continue verbetering is essentieel. Organiseer kwartaalreviews waarin security officers, werkplekspecialisten en privacy officers de enrollmentstatistieken bespreken. Analyseer trends zoals toename van onbekende enrollmentTypes of veranderingen in eigenaarschap, en bepaal welke architectuuraanpassingen nodig zijn. Documenteer verbeteracties met een verantwoordelijke, deadline en verwachte impact en koppel de resultaten terug tijdens de volgende review. Door deze ritmiek ontstaat een audittrail dat laat zien dat afwijkingen niet blijven liggen maar leiden tot aantoonbare verbeteringen. Dit sluit aan bij de eisen van NIS2 en toont toezichthouders dat u proactief handelt.

Zorg er tevens voor dat juridische en privacy-aspecten zijn geborgd. Beschrijf in verwerkersovereenkomsten welke enrollmentdata wordt verzameld, hoe lang deze wordt bewaard en welke rechten betrokkenen hebben. Stel procedures op voor inzage- of verwijderverzoeken en koppel deze aan het gegevensregister van de Functionaris Gegevensbescherming. Geef aan hoe het script gebruikt kan worden om relevante records te identificeren zonder dat onnodig veel persoonsgegevens worden geraadpleegd. Door transparant te zijn over deze processen voorkomt u discussies met ondernemingsraden en toont u aan dat enrollment geen verkapte vorm van personeelsmonitoring is.

Tot slot moet assurance het herstelvermogen aanspreken. Documenteer hoe u het script en aanvullende tooling inzet tijdens continuïteitstesten. Beschrijf scenario’s waarin een datacenteruitval, ransomware-incident of een landelijke crisissituatie plaatsvindt en hoe enrollmentinformatie wordt gebruikt om prioritaire apparaten opnieuw uit te rollen. Neem resultaten van deze oefeningen op in het crisisdossier en verwijs naar concrete tijdslijnen: hoeveel minuten zijn nodig om honderd laptops opnieuw te registreren, hoe snel kan een beleidswijziging worden uitgerold en welke fallback bestaat er als Apple Business Manager of Autopilot niet beschikbaar is. Deze details laten zien dat enrollment niet alleen vandaag werkt, maar ook tijdens de grootste stresstesten standhoudt.

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 Valideert of Intune-enrollment volledig is ingericht en levert remediatie-instructies. .DESCRIPTION Controleert via Microsoft Graph of apparaten daadwerkelijk zijn ingeschreven, recent hebben gesynchroniseerd en de juiste management agent, eigenaarschap en compliance-status bevatten. Ondersteunt DebugMode zodat beheerders lokaal kunnen testen zonder productiegegevens. .NOTES Filename : intune-enrollment-configured.ps1 Author : Nederlandse Baseline voor Veilige Cloud Version : 1.0 Related : content/m365/device-compliance/intune-enrollment-configured.json #> #Requires -Version 5.1 #Requires -Modules Microsoft.Graph [CmdletBinding()] param( [switch]$Assessment, [switch]$Remediation, [switch]$Revert, [switch]$ExportCsv, [switch]$DebugMode, [switch]$WhatIf ) Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' $script:Findings = @() $script:AssessmentExitCode = 0 function Write-Header { param( [string]$Title ) Write-Host "`n========================================" -ForegroundColor Cyan Write-Host $Title -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan } function Connect-GraphIfNeeded { if ($DebugMode) { Write-Host "DebugMode actief: Graph-verbinding wordt overgeslagen." -ForegroundColor Yellow return } if (-not (Get-MgContext)) { Write-Host "Verbinding maken met Microsoft Graph..." -ForegroundColor Yellow Connect-MgGraph -Scopes "DeviceManagementManagedDevices.Read.All","DeviceManagementConfiguration.Read.All" -ErrorAction Stop } } function Get-DebugDevices { return @( [pscustomobject]@{ DeviceName = "NLVC-AUTOPILOT-001" OperatingSystem = "Windows" OwnerType = "Company" EnrollmentType = "windowsAzureADJoin" ManagementAgent = "mdm" ComplianceState = "compliant" EnrolledDateTime = (Get-Date).AddDays(-12) LastSyncDateTime = (Get-Date).AddHours(-5) }, [pscustomobject]@{ DeviceName = "BYOD-iPhone-Laura" OperatingSystem = "iOS" OwnerType = "Personal" EnrollmentType = "userEnrollment" ManagementAgent = "mdm" ComplianceState = "noncompliant" EnrolledDateTime = (Get-Date).AddDays(-40) LastSyncDateTime = (Get-Date).AddDays(-31) }, [pscustomobject]@{ DeviceName = "Android-ZT-008" OperatingSystem = "Android" OwnerType = "Company" EnrollmentType = "androidEnterpriseFullyManaged" ManagementAgent = "mdm" ComplianceState = "compliant" EnrolledDateTime = (Get-Date).AddDays(-3) LastSyncDateTime = (Get-Date).AddHours(-1) }, [pscustomobject]@{ DeviceName = "macOS-DesignLab" OperatingSystem = "macOS" OwnerType = "Company" EnrollmentType = "" ManagementAgent = "unknown" ComplianceState = "unknown" EnrolledDateTime = (Get-Date).AddDays(-75) LastSyncDateTime = (Get-Date).AddDays(-60) } ) } function Get-ManagedDevices { Connect-GraphIfNeeded if ($DebugMode) { return Get-DebugDevices } $uri = "https://graph.microsoft.com/beta/deviceManagement/managedDevices?`$select=deviceName,operatingSystem,ownerType,enrollmentType,managementAgent,complianceState,enrolledDateTime,lastSyncDateTime" $devices = @() while ($uri) { $response = Invoke-MgGraphRequest -Method GET -Uri $uri -ErrorAction Stop if ($response.value) { foreach ($item in $response.value) { $devices += [pscustomobject]@{ DeviceName = $item.deviceName OperatingSystem = $item.operatingSystem OwnerType = $item.ownerType EnrollmentType = $item.enrollmentType ManagementAgent = $item.managementAgent ComplianceState = $item.complianceState EnrolledDateTime = if ($item.enrolledDateTime) { [datetime]$item.enrolledDateTime } else { $null } LastSyncDateTime = if ($item.lastSyncDateTime) { [datetime]$item.lastSyncDateTime } else { $null } } } } $uri = $response.'@odata.nextLink' } return $devices } function Add-Finding { param( [string]$DeviceName, [string]$Issue, [ValidateSet('Warning','Critical')] [string]$Severity = 'Warning' ) if ($Severity -eq 'Critical') { $script:AssessmentExitCode = 1 } $script:Findings += [pscustomobject]@{ DeviceName = $DeviceName Issue = $Issue Severity = $Severity } } function Invoke-IntuneEnrollmentAssessment { Write-Header -Title "Intune Enrollment Assessment" try { $devices = Get-ManagedDevices if (-not $devices) { Write-Host "Er zijn geen managed devices aangetroffen. Configureer enrollment voordat u verder gaat." -ForegroundColor Red exit 1 } $requiredPlatforms = @("Windows","Android","iOS","macOS") foreach ($platform in $requiredPlatforms) { if ($devices.OperatingSystem -notcontains $platform) { Add-Finding -DeviceName $platform -Issue "Geen enkel apparaat voor platform $platform ingeschreven." -Severity Critical } } $staleThreshold = (Get-Date).AddDays(-30) $syncThreshold = (Get-Date).AddDays(-14) foreach ($device in $devices) { $name = if ([string]::IsNullOrEmpty($device.DeviceName)) { "(Onbekend apparaat)" } else { $device.DeviceName } if ([string]::IsNullOrEmpty($device.EnrollmentType)) { Add-Finding -DeviceName $name -Issue "EnrollmentType ontbreekt; controleer Autopilot, ABM of Android Zero Touch." -Severity Critical } if ([string]::IsNullOrEmpty($device.ManagementAgent) -or $device.ManagementAgent -eq "unknown") { Add-Finding -DeviceName $name -Issue "Management agent niet geregistreerd of onbekend." -Severity Critical } if ($device.OwnerType -notin @("Company","Personal")) { Add-Finding -DeviceName $name -Issue "Eigenaarschap is niet bepaald; stem af met HR en CMDB." -Severity Warning } if ($device.ComplianceState -eq "noncompliant" -or $device.ComplianceState -eq "unknown") { Add-Finding -DeviceName $name -Issue "Apparaat is niet compliant of onbekend; afdwingen van her-enrollment vereist." -Severity Critical } if ($device.EnrolledDateTime -and $device.EnrolledDateTime -lt (Get-Date).AddYears(-1)) { Add-Finding -DeviceName $name -Issue "Apparaat is langer dan een jaar niet opnieuw aangemeld; beoordeel of het nog actief is." -Severity Warning } if (-not $device.LastSyncDateTime) { Add-Finding -DeviceName $name -Issue "Geen lastSyncDateTime geregistreerd; apparaat levert geen telemetry aan." -Severity Critical } elseif ($device.LastSyncDateTime -lt $syncThreshold) { Add-Finding -DeviceName $name -Issue "Laatste check-in ouder dan 14 dagen; plan herregistratie." -Severity Critical } elseif ($device.LastSyncDateTime -lt $staleThreshold) { Add-Finding -DeviceName $name -Issue "Laatste check-in ouder dan 30 dagen; onderzoek bereikbaarheid." -Severity Warning } } if ($script:Findings.Count -eq 0) { Write-Host "Alle gecontroleerde apparaten voldoen aan de enrollment-baseline." -ForegroundColor Green if ($ExportCsv) { Write-Host "Geen bevindingen om te exporteren." -ForegroundColor Gray } exit 0 } Write-Host "Er zijn enrollment-bevindingen gedetecteerd:" -ForegroundColor Red $script:Findings | Sort-Object Severity, DeviceName | Format-Table -AutoSize | Out-String | Write-Host if ($ExportCsv) { $outputPath = Join-Path -Path (Get-Location) -ChildPath ("intune-enrollment-findings-{0}.csv" -f (Get-Date -Format "yyyyMMdd-HHmmss")) $script:Findings | Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8 Write-Host "Bevindingen geëxporteerd naar $outputPath" -ForegroundColor Yellow } exit $script:AssessmentExitCode } catch { Write-Host "Fout tijdens assessment: $_" -ForegroundColor Red exit 2 } } function Invoke-IntuneEnrollmentRemediation { Write-Header -Title "Intune Enrollment Remediatie" try { Write-Host "Gebruik deze volgorde om ontbrekende enrollment op te lossen." -ForegroundColor Yellow Write-Host "`n1. Controleer onboardingkanalen" -ForegroundColor Cyan Write-Host " - Verifieer of Autopilot, Apple Business Manager en Android Zero Touch de juiste serienummers bevatten." -ForegroundColor Gray Write-Host " - Registratie ontbreekt vaak doordat nieuwe hardware niet in de importbestanden staat." -ForegroundColor Gray Write-Host "`n2. Herstel management agents" -ForegroundColor Cyan Write-Host " - Push de Company Portal opnieuw of voer een Autopilot reset uit voor Windows." -ForegroundColor Gray Write-Host " - Controleer of Defender for Endpoint signalen leveren; combineer agentstatus met het scriptresultaat." -ForegroundColor Gray Write-Host "`n3. Registreer eigenaarschap" -ForegroundColor Cyan Write-Host " - Werk de CMDB bij en sync HR-gegevens zodat OwnerType overeenkomt met contractvormen." -ForegroundColor Gray Write-Host " - Koppel dynamische Entra ID-groepen zodat Conditional Access non-compliant apparaten blokkeert." -ForegroundColor Gray Write-Host "`n4. Valideer herstel" -ForegroundColor Cyan Write-Host " - Voer dit script opnieuw uit met -Assessment -ExportCsv om auditproof bewijs te genereren." -ForegroundColor Gray Write-Host " - Gebruik -DebugMode in labomgevingen zodat testen maximaal vijftien seconden duren en geen productiegegevens raken." -ForegroundColor Gray if ($WhatIf) { Write-Host "`nWhatIf actief: er zijn alleen instructies getoond, geen configuraties aangepast." -ForegroundColor Yellow } } catch { Write-Host "Fout tijdens remediatie-instructies: $_" -ForegroundColor Red exit 2 } } function Invoke-IntuneEnrollmentRevert { Write-Header -Title "Intune Enrollment Revert" Write-Host "Waarschuwing: versoepelingen verhogen direct het risico op ongecontroleerde toegang." -ForegroundColor Yellow Write-Host "Leg CISO-goedkeuring en einddatum vast voordat u uitzonderingen toestaat." -ForegroundColor Yellow Write-Host "`nTijdelijke maatregelen:" -ForegroundColor Cyan Write-Host " - Maak een afzonderlijk uitzonderingsprofiel met beperkte toegang en forceer herbeoordeling binnen tien werkdagen." -ForegroundColor Gray Write-Host " - Gebruik Conditional Access rapportages om uitzonderingsapparaten continu te monitoren." -ForegroundColor Gray Write-Host " - Verwijder uitzonderingen zodra de originele enrollmentroute weer beschikbaar is." -ForegroundColor Gray } try { switch ($true) { { $Assessment } { Invoke-IntuneEnrollmentAssessment; break } { $Remediation } { Invoke-IntuneEnrollmentRemediation; break } { $Revert } { Invoke-IntuneEnrollmentRevert; break } default { Write-Host "Gebruik: -Assessment | -Remediation | -Revert [-ExportCsv] [-DebugMode] [-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: Apparaten zonder Intune-registratie kunnen niet worden gecontroleerd op encryptie, patchniveau of compliance. Bij een incident is niet te herleiden welke endpoints toegang hadden en ontbreekt bewijs richting toezichthouders.

Management Samenvatting

Maak Intune-enrollment tot harde toegangseis, automatiseer alle registratieroutes en gebruik het script `code/m365/device-compliance/intune-enrollment-configured.ps1` voor dagelijkse bewijsvoering.