Ontwerp En Configuratie Van Retentiepolicies In Microsoft 365

💼 Management Samenvatting

Een doordachte configuratie van retentiepolicies in Microsoft 365 is onmisbaar voor Nederlandse overheidsorganisaties die willen voldoen aan Archiefwet, AVG, BIO en NIS2, én tegelijkertijd werkbare digitale samenwerkingsomgevingen willen bieden. Het gaat daarbij niet alleen om het instellen van een bewaartermijn, maar om het vertalen van formeel bewaarbeleid naar concrete, reproduceerbare configuraties in Microsoft Purview Data Lifecycle Management.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
8/10
Implementatie
140u (tech: 60u)
Van toepassing op:
M365
Exchange Online
SharePoint Online
OneDrive
Teams
Publieke Sector
Overheidsorganisaties

Veel organisaties beschikken inmiddels over beleidsdocumenten waarin bewaartermijnen en archiefcategorieën netjes zijn beschreven, maar missen de slag naar concrete technische inrichting. Daardoor ontstaan structurele risico’s: gegevens blijven langer bewaard dan is toegestaan, cruciale dossiers worden te vroeg verwijderd, en audittrails zijn incompleet of versnipperd over verschillende systemen. Bij WOO‑verzoeken, parlementaire onderzoeken of incidentanalyses blijkt dan dat het vrijwel onmogelijk is om achteraf aantoonbaar te maken welke informatie wanneer beschikbaar was. Daarnaast loopt de organisatie het risico op sancties van toezichthouders wanneer blijkt dat bewaartermijnen in de praktijk niet worden afgedwongen. Zonder goed ontworpen retentiepolicies blijft informatiebeheer afhankelijk van handmatige acties van medewerkers, wat niet schaalbaar en niet controleerbaar is in een complexe Microsoft 365‑tenant.

PowerShell Modules Vereist
Primary API: Microsoft Purview (Security & Compliance PowerShell)
Connection: Connect-IPPSSession
Required Modules: ExchangeOnlineManagement

Implementatie

Dit artikel beschrijft hoe u vanuit het perspectief van de Nederlandse Baseline voor Veilige Cloud retentiepolicies in Microsoft 365 ontwerpt en configureert. We starten met het vertalen van het formele bewaarschema naar een logisch model van retentielabels en ‑policies, gaan vervolgens in op de concrete configuratiestappen in Microsoft Purview voor Exchange Online, SharePoint, OneDrive en Teams, en eindigen met best practices voor testen, documenteren en overdragen aan beheer. Het artikel sluit aan op het controle‑artikel "Retentiepolicies in Microsoft 365 volledig geconfigureerd" en het bijbehorende script, maar focust nadrukkelijk op de ontwerpfase en de praktische inrichting. Het doel is dat CISO, FG, informatiebeheer en technisch beheer gezamenlijk een inrichting realiseren die zowel juridisch houdbaar als dagelijks werkbaar is, en die met behulp van het gekoppelde script `retention-policies-configuration.ps1` eenvoudig kan worden beoordeeld op consistentie.

Van bewaarbeleid naar ontwerp van retentiepolicies

Een goede configuratie van retentiepolicies begint niet in het Purview‑portaal, maar bij het vastgestelde bewaarbeleid van de organisatie. Voor Nederlandse overheidsorganisaties betekent dit dat Archiefwet, sectorale selectielijsten, interne informatieclassificatie en AVG‑verplichtingen één samenhangend geheel vormen. Praktisch gezien start u met een overzicht van informatiecategorieën: bestuurlijke besluitvorming, zaak- en projectdossiers, financiële administratie, HR‑dossiers, e‑mailcorrespondentie, samenwerkingsruimtes en tijdelijke werkomgevingen. Per categorie wordt bepaald of deze blijvend bewaard moet blijven, een vaste bewaartermijn kent of na korte tijd mag worden verwijderd. Dit overzicht wordt niet in technische termen beschreven, maar in de taal van de organisatie: directies, domeinen, diensten en primaire processen. Pas wanneer hierover consensus is bereikt tussen CISO, FG, archiefprofessional, jurist en lijnmanagement, is er een solide basis om naar technische inrichting te vertalen.

In de ontwerpfase wordt het bewaarbeleid vervolgens gemapt op het conceptuele model van Microsoft Purview: retentielabels, label policies en retention policies. Een veelgebruikte benadering is om eerst generieke labels te definiëren die corresponderen met herkenbare bewaarcategorieën zoals "Algemene zakelijke communicatie – 7 jaar", "Financiële documenten – 10 jaar", "Tijdelijke werkbestanden – 1 jaar" en "Blijvend te bewaren archief". Deze labels krijgen een duidelijke Nederlandstalige naam, beschrijving en bewaartermijn, inclusief de actie na afloop (bewaren, verwijderen of bewaren en daarna verwijderen). Vervolgens bepaalt u via label policies welke gebruikers, groepen, sites en Teams deze labels beschikbaar krijgen en in hoeverre automatisch classificeren wordt toegepast. Parallel hieraan ontwerpt u waar nodig tenant‑brede retention policies die zonder gebruikersactie minimale bewaartermijnen afdwingen voor bijvoorbeeld alle mailboxen of alle OneDrive‑accounts. Belangrijk is dat de samenhang tussen labels en policies wordt vastgelegd in documentatie, zodat later duidelijk blijft waarom bepaalde keuzes zijn gemaakt.

Een volwassen ontwerp houdt ook rekening met uitzonderingen en bijzondere regimes. Bepaalde informatie valt onder een strengere bewaarplicht (bijvoorbeeld medische gegevens, onderzoeksdossiers of informatie die onder WOO‑verzoeken kan vallen), terwijl andere informatie juist zo snel mogelijk moet worden verwijderd om dataminimalisatie te waarborgen. In plaats van ad‑hoc uitzonderingen per team of project te creëren, legt u in het ontwerp vast welke afwijkingen zijn toegestaan, hoe deze worden aangevraagd en goedgekeurd, en hoe zij technisch worden vertaald naar aanvullende labels of policies. Hierbij is het raadzaam om te werken met een beperkt aantal "bouwblokken" die in verschillende combinaties kunnen worden toegepast, zodat het geheel beheersbaar blijft. Dit ontwerpdocument beschrijft per informatiecategorie welke labels en policies van toepassing zijn, welke Microsoft 365‑locaties hieronder vallen en welk verantwoordelijke rol (proceseigenaar, informatiebeheerder) toezicht houdt op de naleving.

Configuratiestappen in Microsoft Purview voor M365‑werkbelastingen

Wanneer het ontwerp helder is, volgt de daadwerkelijke configuratie in Microsoft Purview. In de praktijk verloopt dit in meerdere iteraties. U begint in het Purview‑portaal met het aanmaken van retentielabels die de eerder gedefinieerde bewaarcategorieën weerspiegelen. Voor elk label stelt u de bewaartermijn, de starttrigger (bijvoorbeeld aanmaakdatum, wijzigingsdatum of het moment waarop het item als record is gemarkeerd) en de actie aan het einde van de termijn in. Vervolgens koppelt u deze labels via label policies aan concrete locaties: specifieke SharePoint‑sites, Teams‑kanalen, Exchange‑postvakken of OneDrive‑accounts. Hierbij is het belangrijk om beperkt te blijven in het aantal policies en zorgvuldig te testen welke labels voor welke doelgroepen zichtbaar zijn. Documenteer bij iedere policy waarom deze bestaat, welke locaties deze dekt en welke beleidsbeslissingen eraan ten grondslag liggen, zodat toekomstige beheerders niet hoeven te gissen naar de bedoeling.

Naast labels speelt ook de inrichting van tenant‑brede retention policies een cruciale rol. Daarmee kunt u bijvoorbeeld afdwingen dat alle mailboxen ten minste een bepaalde periode worden bewaard, ongeacht of gebruikers labels toepassen. Voor Nederlandse overheidsorganisaties is het vaak verstandig om een combinatie te gebruiken: een basispolicy die een minimale bewaartermijn afdwingt, aangevuld met fijnmazige labels voor specifieke archiefwaardige dossiers. In Microsoft Purview configureert u per policy welke workloads worden afgedekt (Exchange, SharePoint, OneDrive, M365‑groepen/Teams) en of u alle of slechts een selectie van locaties wilt opnemen. In deze fase controleert u ook de interactie met bestaande policies om conflicten of onduidelijke prioriteiten te voorkomen. Maak gebruik van de ingebouwde rapportages en het activiteitenlogboek om te verifiëren of policies daadwerkelijk actief worden en of items de verwachte retentiestatus krijgen.

Een belangrijk maar vaak onderschat onderdeel van configuratie is testen en gecontroleerde uitrol. In lijn met de Nederlandse Baseline voor Veilige Cloud richt u bij voorkeur een aparte testtenant of ten minste een duidelijke pilotgroep in productie in. U creëert voorbeeldmailboxen, Teams en SharePoint‑sites met testdata die verschillende retentiescenario’s afdekken: korte en lange bewaartermijnen, blijvend te bewaren informatie, tijdelijke samenwerkingsruimtes en gevoelige dossiers. Door over een langere periode (dagen tot weken) te observeren hoe labels en policies zich gedragen, krijgt u vertrouwen dat de configuratie overeenkomt met het ontworpen beleid. Eventuele afwijkingen worden teruggekoppeld naar het ontwerpteam, dat zonodig bewaartermijnen, labeldefinities of policy‑scopes bijstelt. In deze fase is het essentieel om alle bevindingen vast te leggen, inclusief screenshots, PowerShell‑uitvoer en beslisnotities, zodat de uiteindelijke configuratie later herleidbaar en reproduceerbaar is.

Governance, monitoring en overdracht naar beheer

Gebruik PowerShell-script retention-policies-configuration.ps1 (functie Invoke-Monitoring) – Voert een configuratie‑controle uit op retentiepolicies in Microsoft 365, gebruikt DebugMode voor lokale tests en rapporteert of de inrichting aansluit bij het ontwerp van het bewaarbeleid..

Na afronding van de initiële configuratie verschuift de aandacht naar beheer en continue verbetering. Retentie‑inrichting is geen eenmalig project, maar een doorlopend proces dat meebeweegt met wetswijzigingen, organisatieveranderingen en nieuwe Microsoft 365‑functionaliteit. Governance betekent dat er een formele eigenaar is voor het bewaarbeleid, dat wijzigingen worden behandeld in een change‑proces en dat beheerders niet zelfstandig afwijkende policies introduceren. Het gekoppelde script `retention-policies-configuration.ps1` ondersteunt dit door periodiek inzicht te geven in de huidige configuratie: welke policies bestaan, welke workloads en locaties zij afdekken en of er basiscomponenten ontbreken. Door het script in DebugMode te kunnen draaien, kunnen beheerders de logica lokaal testen zonder verbinding met de tenant, wat past bij veilige ontwikkel‑ en testpraktijken binnen de overheid.

Governance gaat verder dan techniek alleen. De resultaten van monitoring en periodieke reviews moeten worden ingebed in de bredere sturingslijn van de organisatie: rapportages aan CISO en FG, bespreking in een informatie‑ of securityboard en terugkoppeling naar directies en proceseigenaren. In rapportages wordt expliciet gemaakt welke onderdelen van de retentie‑architectuur goed functioneren, waar nog witte vlekken zijn (bijvoorbeeld ongeclassificeerde samenwerkingsomgevingen) en welke risico’s hieraan zijn verbonden. Deze inzichten worden vastgelegd in een risicoregister en gekoppeld aan concrete verbeteracties, zoals het uitfaseren van verouderde policies, het herstructureren van SharePoint‑sites of het bijscholen van informatie‑eigenaren. Zo ontstaat een cyclus van meten, bespreken, besluiten en verbeteren, waarin de technische inrichting van retentiebeleid aantoonbaar bijdraagt aan verantwoord en transparant overheidsoptreden.

Tot slot is een zorgvuldige overdracht naar dagelijks beheer essentieel. Beheerders hebben duidelijke documentatie nodig over welke scripts beschikbaar zijn, hoe DebugMode veilig kan worden gebruikt, welke parameters in productie zijn toegestaan en hoe resultaten moeten worden geïnterpreteerd. In operationele runbooks wordt beschreven hoe vaak het monitoringscript moet worden uitgevoerd, hoe bevindingen worden geregistreerd en welke escalatieroutes gelden bij ernstige afwijkingen. Door beheerprocessen, technische tooling en beleidskaders expliciet met elkaar te verbinden, wordt voorkomen dat retentiebeleid langzaam verwatert na verloop van tijd. In plaats daarvan blijft de configuratie levend, toetsbaar en wendbaar – in lijn met de ambities van de Nederlandse Baseline voor Veilige Cloud.

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 Configuratiecontrole voor retentiepolicies in Microsoft 365 .DESCRIPTION Dit script ondersteunt Nederlandse overheidsorganisaties bij het beoordelen van de inrichting van retentiepolicies in Microsoft 365. Het richt zich op de vraag of er op een consistente manier retentie- en/of records management policies zijn geconfigureerd die aansluiten bij het formele bewaarbeleid en de Nederlandse Baseline voor Veilige Cloud. In Monitoring-modus wordt een samenvatting getoond van aanwezige RetentionCompliancePolicy- en RetentionComplianceRule-objecten, inclusief dekking van Exchange, SharePoint, OneDrive en Microsoft 365 Groups/Teams. In DebugMode wordt geen verbinding gemaakt met Microsoft 365 en wordt gewerkt met voorbeelddata, zodat het script lokaal getest kan worden. .NOTES Filename: retention-policies-configuration.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-11-26 Version: 1.0 Related JSON: content/m365/compliance/retention-policies-configuration.json Category: compliance Workload: m365 .LINK https://github.com/m365-tenant-best-practise .EXAMPLE .\retention-policies-configuration.ps1 -Monitoring -DebugMode Voert een lokale debug-run uit zonder verbinding te maken met Microsoft 365 en toont voorbeeldresultaten. .EXAMPLE .\retention-policies-configuration.ps1 -Monitoring Haalt de huidige retentiepolicies op en beoordeelt of er basisconfiguratie aanwezig is voor de kernwerkbelastingen. .EXAMPLE .\retention-policies-configuration.ps1 -Remediation -WhatIf Toont welke stappen een beheerder kan nemen om ontbrekende configuratie aan te vullen, zonder daadwerkelijke wijzigingen door te voeren. #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement [CmdletBinding()] param( [Parameter(HelpMessage = "Monitor huidige configuratie van retentiepolicies")] [switch]$Monitoring, [Parameter(HelpMessage = "Toon remediatie-advies en voorbeeldcmdlets")] [switch]$Remediation, [Parameter(HelpMessage = "Toon welke acties zouden worden uitgevoerd zonder wijzigingen")] [switch]$WhatIf, [Parameter(HelpMessage = "Voer een lokale debug-run uit zonder verbinding met Microsoft 365")] [switch]$DebugMode, [Parameter(HelpMessage = "Plaatsvervanger voor toekomstig rollback-scenario, voert nu geen rollback uit")] [switch]$Revert ) $ErrorActionPreference = 'Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Retentiepolicies configuratie (M365)" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Connect-ComplianceServices { <# .SYNOPSIS Maakt verbinding met het Microsoft 365 Security & Compliance endpoint. .DESCRIPTION Gebruikt Connect-IPPSSession uit de ExchangeOnlineManagement-module. #> [CmdletBinding()] param() Write-Host "Verbinding maken met Microsoft Purview (Security & Compliance)..." -ForegroundColor Gray Connect-IPPSSession -ErrorAction Stop | Out-Null } function Get-RetentionConfigurationState { <# .SYNOPSIS Haalt een samenvatting op van de retentieconfiguratie. .DESCRIPTION Rapporteert of er één of meer retentie- of labelgebaseerde policies aanwezig zijn en welke workloads zij afdekken. In DebugMode wordt voorbeelddata geretourneerd. .OUTPUTS PSCustomObject met: - ScriptName - IsConfigured - HasRetentionPolicies - HasLabelPolicies - CoversExchange - CoversSharePoint - CoversOneDrive - CoversM365Groups - Findings #> [CmdletBinding()] param() $result = [PSCustomObject]@{ ScriptName = "retention-policies-configuration.ps1" IsConfigured = $false Timestamp = Get-Date HasRetentionPolicies = $false HasLabelPolicies = $false CoversExchange = $false CoversSharePoint = $false CoversOneDrive = $false CoversM365Groups = $false Findings = @() } if ($DebugMode) { Write-Host "DebugMode ingeschakeld: er wordt geen verbinding gemaakt met Microsoft 365." -ForegroundColor Yellow Write-Host "Er worden voorbeeldwaarden gebruikt om de rapportage te testen.`n" -ForegroundColor Yellow $result.HasRetentionPolicies = $true $result.HasLabelPolicies = $true $result.CoversExchange = $true $result.CoversSharePoint = $true $result.CoversOneDrive = $true $result.CoversM365Groups = $false $result.Findings += "DebugMode: voorbeelddata – controleer in productie of Teams/Microsoft 365 Groups volledig onder retentiebeleid vallen." } else { Connect-ComplianceServices Write-Host "Ophalen van retentiepolicies..." -ForegroundColor Gray $retentionPolicies = Get-RetentionCompliancePolicy -ErrorAction SilentlyContinue $retentionRules = Get-RetentionComplianceRule -ErrorAction SilentlyContinue Write-Host "Ophalen van label policies..." -ForegroundColor Gray $labelPolicies = Get-LabelPolicy -ErrorAction SilentlyContinue $result.HasRetentionPolicies = ($retentionPolicies -ne $null -and $retentionPolicies.Count -gt 0) $result.HasLabelPolicies = ($labelPolicies -ne $null -and $labelPolicies.Count -gt 0) if ($result.HasRetentionPolicies -and $retentionPolicies.Count -gt 0) { foreach ($policy in $retentionPolicies) { if ($policy.ExchangeLocation -and $policy.ExchangeLocation.Count -gt 0) { $result.CoversExchange = $true } if ($policy.SharePointLocation -and $policy.SharePointLocation.Count -gt 0) { $result.CoversSharePoint = $true } if ($policy.OneDriveLocation -and $policy.OneDriveLocation.Count -gt 0) { $result.CoversOneDrive = $true } if ($policy.ModernGroupLocation -and $policy.ModernGroupLocation.Count -gt 0) { $result.CoversM365Groups = $true } } } if (-not $result.HasRetentionPolicies) { $result.Findings += "Er zijn geen RetentionCompliancePolicy-objecten gevonden. Richt ten minste één tenant-brede of scope-specifieke retentiepolicy in." } if (-not $result.HasLabelPolicies) { $result.Findings += "Er zijn geen label policies gevonden. Overweeg retentielabels voor archiefwaardige informatie en dossierstructuren." } if ($result.HasRetentionPolicies -and (-not $result.CoversExchange -or -not $result.CoversSharePoint -or -not $result.CoversOneDrive)) { $result.Findings += "Niet alle kernwerkbelastingen (Exchange, SharePoint, OneDrive) worden door retentiepolicies afgedekt. Valideer scope en mapping van policies." } if ($result.HasRetentionPolicies -and -not $result.CoversM365Groups) { $result.Findings += "Er zijn geen retentiepolicies gevonden die Microsoft 365 Groups/Teams expliciet afdekken. Controleer of Teams-omgevingen onder beleid vallen." } } $result.IsConfigured = ( ($result.HasRetentionPolicies -or $result.HasLabelPolicies) -and ($result.CoversExchange -or $result.CoversSharePoint -or $result.CoversOneDrive) ) return $result } function Invoke-Monitoring { <# .SYNOPSIS Controleert de huidige configuratie van retentiepolicies. .DESCRIPTION Roept Get-RetentionConfigurationState aan en toont een samenvatting op het scherm. Exitcode 0 betekent dat er basisconfiguratie aanwezig is, 1 betekent dat dit onvoldoende is. #> [CmdletBinding()] param() try { $state = Get-RetentionConfigurationState Write-Host "`nResultaat retentieconfiguratie:" -ForegroundColor Cyan Write-Host (" Retentiepolicies aanwezig : {0}" -f $state.HasRetentionPolicies) -ForegroundColor White Write-Host (" Label policies aanwezig : {0}" -f $state.HasLabelPolicies) -ForegroundColor White Write-Host (" Dekt Exchange : {0}" -f $state.CoversExchange) -ForegroundColor White Write-Host (" Dekt SharePoint : {0}" -f $state.CoversSharePoint) -ForegroundColor White Write-Host (" Dekt OneDrive : {0}" -f $state.CoversOneDrive) -ForegroundColor White Write-Host (" Dekt M365 Groups/Teams : {0}" -f $state.CoversM365Groups) -ForegroundColor White if ($state.IsConfigured) { Write-Host "`n[OK] Er is een basisconfiguratie van retentiepolicies aanwezig." -ForegroundColor Green if ($state.Findings.Count -gt 0) { Write-Host "Let op: er zijn aanvullende aandachtspunten gedetecteerd:" -ForegroundColor Yellow foreach ($finding in $state.Findings) { Write-Host " - $finding" -ForegroundColor Yellow } } exit 0 } else { Write-Host "`n[FAIL] De huidige retentieconfiguratie is onvoldoende of afwezig." -ForegroundColor Red if ($state.Findings.Count -gt 0) { Write-Host "Details:" -ForegroundColor Yellow foreach ($finding in $state.Findings) { Write-Host " - $finding" -ForegroundColor Yellow } } exit 1 } } catch { Write-Host "`n[FAIL] Fout tijdens monitoring: $_" -ForegroundColor Red exit 2 } } function Invoke-Remediation { <# .SYNOPSIS Geeft remediatie-advies voor retentieconfiguratie. .DESCRIPTION Voert zelf geen grootschalige wijzigingen door, maar helpt beheerders met concrete PowerShell-voorbeelden en stappen in Microsoft Purview. In DebugMode worden enkel voorbeelden getoond zonder cloudverbinding. #> [CmdletBinding()] param() try { if ($DebugMode) { Write-Host "DebugMode: remediatiestappen worden alleen als voorbeeld getoond; er wordt geen verbinding gemaakt." -ForegroundColor Yellow } else { Connect-ComplianceServices } Write-Host "`nRemediatie-advies voor retentieconfiguratie:" -ForegroundColor Cyan Write-Host "`n1. Inventariseer bestaand bewaarbeleid" -ForegroundColor White Write-Host " - Zorg voor een formeel bewaarschema en informatieclassificatie voordat u policies inricht." -ForegroundColor Gray Write-Host "`n2. Richt basisretentiepolicies in" -ForegroundColor White Write-Host " - Definieer ten minste één policy die alle Exchange-postvakken en SharePoint/OneDrive-locaties afdekt." -ForegroundColor Gray Write-Host " - Voorbeeld (vereenvoudigd, pas aan aan uw bewaarschema):" -ForegroundColor Gray Write-Host " New-RetentionCompliancePolicy -Name 'NBVC-Basis-Retention' -ExchangeLocation All -SharePointLocation All -OneDriveLocation All" -ForegroundColor DarkGray Write-Host "`n3. Voeg retentielabels toe voor archiefwaardige informatie" -ForegroundColor White Write-Host " - Gebruik retentielabels voor dossiers met afwijkende of blijvende bewaarplicht." -ForegroundColor Gray Write-Host " - Publiceer labels via label policies naar relevante sites, Teams en mailboxen." -ForegroundColor Gray Write-Host "`n4. Valideer dekkingsgraad met monitoring-scripts" -ForegroundColor White Write-Host " - Gebruik dit script en het script 'retention-policies-configured.ps1' om de dekkingsgraad te toetsen." -ForegroundColor Gray if ($WhatIf) { Write-Host "`nWhatIf: er zijn geen wijzigingen toegepast, bovenstaande cmdlets zijn voorbeelden voor beheerders." -ForegroundColor Yellow } else { Write-Host "`nLet op: voer daadwerkelijke wijzigingen alleen uit na interne afstemming, change-goedkeuring en testen in een acceptatieomgeving." -ForegroundColor Yellow } } catch { Write-Host "`n[FAIL] Fout tijdens remediatie-ondersteuning: $_" -ForegroundColor Red exit 2 } } function Invoke-Revert { <# .SYNOPSIS Plaatsvervangende functie voor toekomstig rollback-scenario. .DESCRIPTION Dit script voert geen automatische rollback uit van retentieconfiguratie. Rollback vereist een zorgvuldige impactanalyse en change-procedure. #> [CmdletBinding()] param() Write-Host "`nEr is geen automatische rollback-functionaliteit geïmplementeerd voor dit script." -ForegroundColor Yellow Write-Host "Documenteer en beheer eventuele wijzigingen via uw reguliere change-managementproces." -ForegroundColor Yellow } try { if ($Revert) { Invoke-Revert } elseif ($Remediation) { Invoke-Remediation } elseif ($Monitoring) { Invoke-Monitoring } else { Write-Host "Beschikbare parameters:" -ForegroundColor Yellow Write-Host " -Monitoring : Controleer de huidige retentieconfiguratie" -ForegroundColor Gray Write-Host " -Remediation : Toon remediatie-advies en voorbeeldcmdlets" -ForegroundColor Gray Write-Host " -DebugMode : Voer een lokale test uit zonder cloudverbinding" -ForegroundColor Gray Write-Host " -WhatIf : Toon remediatievoorbeelden zonder uitvoer" -ForegroundColor Gray Write-Host " -Revert : Toon informatie over rollback (geen automatische rollback)" -ForegroundColor Gray Write-Host "`nVoorbeeld: .\retention-policies-configuration.ps1 -Monitoring -DebugMode" -ForegroundColor Cyan } } catch { Write-Error "Scriptuitvoering is mislukt: $_" exit 2 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan } # Exitcodes: # 0 = Basisconfiguratie aanwezig # 1 = Configuratie onvoldoende of afwezig # 2 = Fout tijdens uitvoering

Risico zonder implementatie

Risico zonder implementatie
High: Zonder zorgvuldig ontworpen en geconfigureerde retentiepolicies blijft bewaarbeleid vooral papierwerk en kan de organisatie niet aantonen dat wettelijke bewaartermijnen in Microsoft 365 daadwerkelijk worden nageleefd.

Management Samenvatting

Vertaal het formele bewaarschema naar een beheersbare set retentielabels en ‑policies in Microsoft Purview, test de configuratie uitgebreid en borg governance en monitoring met behulp van het script `retention-policies-configuration.ps1`. Zo ontstaat een concrete, toetsbare en toekomstbestendige inrichting van retentiebeleid voor Nederlandse overheidsorganisaties.