Retentiepolicies In Microsoft 365 Volledig Geconfigureerd

💼 Management Samenvatting

Volledig en consistent geconfigureerde retentiepolicies in Microsoft 365 vormen een kernvoorwaarde voor betrouwbaar gegevensbeheer binnen Nederlandse overheidsorganisaties. Zij bepalen welke informatie hoe lang wordt bewaard, op welke wijze vernietiging plaatsvindt en hoe juridische, archiefrechtelijke en privacyverplichtingen in de praktijk worden afgedwongen in Exchange Online, SharePoint Online, OneDrive en Microsoft Teams.

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

Binnen de Nederlandse publieke sector is het niet langer acceptabel dat bewaartermijnen alleen in beleidsdocumenten bestaan terwijl de technische configuratie achterblijft. Inspecties, rekenkamers, toezichthouders en parlementaire enquêtes verwachten dat Archiefwet, AVG, BIO en NIS2 aantoonbaar zijn vertaald naar concrete maatregelen in de Microsoft 365‑tenant. Wanneer retentiepolicies ontbreken of slechts gedeeltelijk zijn ingericht, ontstaan er directe risico’s: persoonsgegevens worden langer bewaard dan noodzakelijk, cruciale dossiers worden te vroeg verwijderd, audittrails zijn onvolledig en het wordt nagenoeg onmogelijk om achteraf te reconstrueren welke besluiten zijn genomen en op basis van welke informatie. Ook leidt een inconsistente inrichting tot onzekerheid bij medewerkers: sommige mailboxen en Teams‑omgevingen worden automatisch opgeschoond, andere bewaren alles onbeperkt. Dit ondermijnt vertrouwen in het platform en belemmert digitale transformatie‑initiatieven.

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

Implementatie

Dit artikel beschrijft hoe Nederlandse overheidsorganisaties retentiepolicies in Microsoft 365 zó inrichten dat zij aantoonbaar compliant zijn met nationale en Europese regelgeving én tegelijkertijd werkbaar blijven voor gebruikers. De focus ligt op het uitlijnen van beleidskaders (bewaar- en vernietigingsschema’s, archiefbescheiden, privacybeleid) met technische mogelijkheden in Microsoft Purview Data Lifecycle Management. We behandelen de ontwerpprincipes voor een coherent setje retentiepolicies, de implementatie op kernwerkbelastingen, de koppeling met records management, de manier waarop u uitzonderingen en juridische bewaarplichten beheert en de rol van PowerShell‑automatisering via het bijbehorende script `retention-policies-configured.ps1`. Het doel is een volwassen retentie‑architectuur waarin beleid, techniek en governance elkaar versterken en bestuurders op elk moment een helder beeld hebben van bewaartermijnen en risico’s.

Governance en ontwerp van een retentie-architectuur

Een duurzaam retentiebeleid start bij governance en ontwerp, niet bij het willekeurig aanmaken van policies in het Purview‑portaal. Voor Nederlandse overheidsorganisaties betekent dit dat bestuur, CISO, Functionaris Gegevensbescherming (FG), concernjuristen, informatiebeheerders en archivarissen samen bepalen hoe informatie in Microsoft 365 gedurende de volledige levenscyclus wordt behandeld. De basis wordt gevormd door een formeel vastgesteld bewaarschema: een uitwerking van de Archiefwet, sectorale selectielijsten en interne beleidsafspraken over hoe lang dossiers, zaakgegevens, e‑mailcorrespondentie, bestuurlijke besluitvorming en ondersteunende documentatie moeten worden bewaard. Dit bewaarschema maakt onderscheid tussen blijvend te bewaren archiefbescheiden, informatie met een vaste bewaartermijn en informatie die na korte tijd mag worden vernietigd. Het governance‑model beschrijft wie eigenaar is van dit bewaarschema, hoe wijzigingen worden doorgevoerd en op welke wijze de koppeling wordt gelegd met technische configuraties in Microsoft 365.

Vervolgens wordt het bewaarschema vertaald naar een logische set van retentiepolicies. In plaats van tientallen losstaande, moeilijk te beheren policies, streven organisaties naar een beperkte verzameling robuuste "bouwblokken" die herkenbaar zijn voor de praktijk. Denk aan generieke policies zoals "Algemene zakelijke communicatie – 7 jaar", "Financiële administratie – 10 jaar" of "Project- en zaakdossiers – bewaarplicht conform selectielijst". Voor blijvend te bewaren archief kan een aparte categorie worden ingericht waarin gegevens niet meer automatisch worden verwijderd, maar worden overgebracht naar een e‑depot of archiefomgeving. In het ontwerpproces wordt expliciet vastgelegd welke Microsoft 365‑locaties onder welke policy vallen: Exchange‑postvakken van bestuurders, generieke mailboxen, Teams‑omgevingen, SharePoint‑sites en OneDrive‑accounts. Door deze mapping te documenteren ontstaat een herleidbare lijn van juridische bewaarplichten naar concrete technische instellingen, wat essentieel is bij audits en parlementaire verantwoording.

Een volwassen retentie‑architectuur houdt ook rekening met uitzonderingen en bijzondere situaties. Sommige informatie moet langer worden bewaard vanwege lopende procedures, WOO‑verzoeken, parlementaire onderzoeken of sectorale regelgeving; andere informatie mag juist korter worden bewaard om dataminimalisatie en privacy te borgen. Het governance‑kader beschrijft hoe dergelijke uitzonderingen worden aangevraagd, beoordeeld en vastgelegd, en hoe zij zich verhouden tot standaardpolicies. Dit voorkomt dat individuele beheerders of afdelingen op eigen initiatief afwijkende configuraties inrichten die later moeilijk traceerbaar zijn. Tot slot wordt in het ontwerp een duidelijke scheiding aangebracht tussen wat geautomatiseerd wordt afgedwongen in de tenant (retentiepolicies en labels) en wat via procesafspraken en training bij gebruikers wordt belegd, bijvoorbeeld het correct classificeren van documenten en het gebruik van aangewezen samenwerkingsomgevingen voor archiefwaardige informatie.

Implementatie op Exchange, SharePoint, OneDrive en Teams

De implementatie van retentiepolicies in Microsoft 365 begint in Microsoft Purview Data Lifecycle Management. Vanuit het Purview‑portaal definieert de organisatie één of meer retention policies die de eerder ontworpen bouwblokken vertalen naar concrete instellingen. Voor Exchange Online betekent dit het selecteren van relevante postvakken (bijvoorbeeld alle gebruikerspostvakken, plus specifieke gedeelde mailboxen), het instellen van bewaartermijnen en het kiezen van een actie na afloop, zoals "Keep", "Delete" of "KeepAndDelete". Voor SharePoint Online worden beleidsregels gekoppeld aan sites die specifieke informatiecategorieën bevatten, bijvoorbeeld beleidsportalen, zaak- en projectomgevingen of samenwerkingssites met externe partners. OneDrive‑accounts worden doorgaans afgedekt door generieke policies die aansluiten bij personeelsdossiers en dagelijkse werkdocumenten, zodat ook persoonlijke werkbestanden na een bepaalde periode automatisch worden opgeschoond of gearchiveerd. Teams‑omgevingen worden indirect afgedekt via de onderliggende M365 Group, SharePoint‑site en chatberichten, waarvoor aparte retentieregels kunnen worden ingesteld.

Belangrijk is dat implementatie niet alleen een technische handeling is, maar een gecontroleerd veranderingstraject. Iedere nieuwe of aangepaste retentiepolicy wordt voorbereid in een acceptatie‑ of testtenant, of in ieder geval eerst toegepast op een beperkte pilotgroep. In deze pilotomgeving worden testdocumenten, chats en e‑mails aangemaakt met duidelijke kenmerken, zodat het gedrag van de policy over tijd kan worden geobserveerd. Beheerders documenteren welke items onder welke policy vallen, welke bewaartermijn is geconfigureerd, en welk gedrag verwacht wordt nadat de termijn verstreken is. Door gebruik te maken van auditlogs en Purview‑rapportages kan worden gecontroleerd of items correct worden gemarkeerd en of verwijderings‑ of bewaarakkoorden volgens verwachting optreden. Eventuele afwijkingen worden teruggekoppeld naar het ontwerpteam, dat zo nodig het bewaarschema, de mapping of de technische instelling aanpast voordat uitrol op grote schaal plaatsvindt.

Tijdens de implementatie wordt ook de samenhang met andere compliance‑functionaliteit geborgd. Retentiepolicies werken bijvoorbeeld nauw samen met sensitivity labels, records management en legal hold. Voor archiefwaardige documenten kan een combinatie worden gebruikt van een retentielabel dat een recordstatus afdwingt en een policy die de bewaartermijn bepaalt. Bij lopende onderzoeken kan een legal hold tijdelijk de reguliere vernietiging onderbreken. Het is daarom essentieel dat CISO, FG, juridisch adviseurs en informatiebeheerders gezamenlijk bepalen hoe deze functionaliteiten elkaar aanvullen in plaats van tegenwerken. In documentatie rond de implementatie wordt per workload vastgelegd welke policies actief zijn, hoe zij zich verhouden tot legal hold‑scenario’s, welke uitzonderingen bestaan en welke procedures gelden voor wijzigingsbeheer. Dit vormt de basis voor het scriptmatige toezicht dat in de volgende sectie wordt beschreven.

Monitoring, automatisering en audittrail

Gebruik PowerShell-script retention-policies-configured.ps1 (functie Invoke-Monitoring) – Controleert of er ten minste één actieve retentiepolicy is die Exchange, SharePoint, OneDrive en Microsoft 365‑groepen/Teams afdekt en rapporteert de volwassenheid van de huidige configuratie..

Zodra retentiepolicies zijn ingericht, verschuift de aandacht naar monitoring en borging. Configuraties kunnen in de loop der tijd drastisch veranderen door migraties, herstructureringen, wijzigingen in licentiemodellen of menselijke fouten. Een eenmalige inrichting is daarom onvoldoende; er is doorlopende controle nodig. Met Security & Compliance PowerShell kan de organisatie periodiek scripts uitvoeren die alle RetentionCompliancePolicy‑ en RetentionComplianceRule‑objecten inventariseren. Daarmee ontstaat een objectief beeld van welke policies bestaan, welke workloads zij afdekken, welke bewaartermijnen zijn geconfigureerd en of policies daadwerkelijk zijn ingeschakeld. Het bijbehorende script `retention-policies-configured.ps1` is ontworpen om deze informatie op een gestandaardiseerde manier op te halen en samen te vatten in een eenvoudig te interpreteren rapport, inclusief een binaire "isCompliant"‑indicator die aangeeft of minimaal één policy de kernwerkbelastingen volledig afdekt.

Monitoringresultaten moeten niet in een la verdwijnen, maar onderdeel worden van de reguliere governance‑cyclus. In volwassen organisaties worden de uitkomsten van het monitoringscript gekoppeld aan dashboards in bijvoorbeeld Power BI of een GRC‑oplossing, zodat CISO, FG, bestuurders en audit‑/controlfuncties in één oogopslag kunnen zien of de retentieconfiguratie nog in lijn is met het vastgestelde beleid. Trendanalyses over meerdere kwartalen laten zien of vermeende verbeteringen daadwerkelijk tot meer dekking en minder uitzonderingen leiden. Afwijkingen – zoals het ontbreken van beleid voor bepaalde sites of het per ongeluk uitschakelen van een basispolicy – worden vastgelegd als formele bevindingen in het risicoregister. Voor iedere bevinding worden eigenaar, impact, mitigerende acties en doorlooptijd geregistreerd. Deze structuur maakt het mogelijk om tijdens ENSIA‑, ISO‑ of interne audits nauwkeurig aan te tonen welke controles plaatsvinden, welke tekortkomingen zijn geïdentificeerd en hoe daarop is gereageerd.

Tot slot levert monitoring ook input op voor continue verbetering en architectuurkeuzes. Wanneer uit rapportages blijkt dat de retentieconfiguratie structureel complexer wordt – met veel kleine, overlappende policies – kan dat aanleiding zijn om het ontwerp te herzien en terug te gaan naar een eenvoudiger set bouwblokken. Wanneer uit loggegevens blijkt dat bepaalde workloads of afdelingen consequent buiten beleid vallen, is mogelijk aanvullende training of aanpassing van provisioning‑processen nodig. Door monitoring, automatisering en auditing zo te organiseren dat zij aansluiten op de bredere governance‑ en architectuurlijn van "Nederlandse Baseline voor Veilige Cloud", ontstaat een toekomstbestendig stelsel waarin retentie niet langer een losstaande IT‑instelling is, maar een integraal onderdeel van verantwoorde digitale dienstverlening.

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 op volledige configuratie van retentiepolicies in Microsoft 365 (compliance-perspectief) .DESCRIPTION Dit script controleert of er ten minste één actieve retentiepolicy aanwezig is in Microsoft 365 die de kernwerkbelastingen (Exchange, SharePoint, OneDrive en Microsoft 365 Groups/Teams) afdekt en ondersteunt beheerders met praktische remediatie-informatie. Het script sluit aan op het artikel 'Retentiepolicies in Microsoft 365 volledig geconfigureerd' binnen de Nederlandse Baseline voor Veilige Cloud en is bedoeld als controle- en rapportagetool voor CISO's, FG's, informatiebeheerders en technisch beheerders. .NOTES Filename: retention-policies-configured.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-11-26 Version: 1.0 Related JSON: content/m365/compliance/retention-policies-configured.json Category: compliance Workload: m365 .LINK https://github.com/m365-tenant-best-practise .EXAMPLE .\retention-policies-configured.ps1 -Monitoring -DebugMode Voert een lokale debug-run uit zonder verbinding met Microsoft 365 en toont voorbeeldresultaten. .EXAMPLE .\retention-policies-configured.ps1 -Monitoring Controleert in de live tenant of er ten minste één retentiepolicy is die alle kernwerkbelastingen afdekt. .EXAMPLE .\retention-policies-configured.ps1 -Remediation -WhatIf Toont welke stappen u zou nemen om een basis-baselinepolicy in te richten, zonder wijzigingen door te voeren. #> #Requires -Version 5.1 #Requires -Modules ExchangeOnlineManagement [CmdletBinding()] param( [Parameter(HelpMessage = "Controleer de huidige status van retentiepolicies")] [switch]$Monitoring, [Parameter(HelpMessage = "Geef remediatie-advies en (optioneel) voorbeeldcmdlets voor een basispolicy")] [switch]$Remediation, [Parameter(HelpMessage = "Toon welke acties uitgevoerd zouden worden zonder ze daadwerkelijk toe te passen")] [switch]$WhatIf, [Parameter(HelpMessage = "Voer een veilige lokale test uit zonder verbinding met Microsoft 365")] [switch]$DebugMode ) $ErrorActionPreference = 'Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Retention Policies Configured (Compliance)" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan $script:BaselinePolicyName = "NBVC M365 Baseline Retention Policy" function Connect-ComplianceService { <# .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 -ShowBanner:$false -ErrorAction Stop | Out-Null } function Get-RetentionOverview { <# .SYNOPSIS Haalt retentiepolicies en bijbehorende regels op en bepaalt dekking. .OUTPUTS PSCustomObject met per policy dekking op Exchange/SharePoint/OneDrive/Groups. #> [CmdletBinding()] param() $policies = Get-RetentionCompliancePolicy -ErrorAction Stop $rules = Get-RetentionComplianceRule -ErrorAction SilentlyContinue foreach ($policy in $policies) { $policyRules = $rules | Where-Object { $_.Policy -eq $policy.Name } if (-not $policyRules) { continue } $hasExchange = $policy.ExchangeLocation -and $policy.ExchangeLocation.Count -gt 0 $hasSharePoint = $policy.SharePointLocation -and $policy.SharePointLocation.Count -gt 0 $hasOneDrive = $policy.OneDriveLocation -and $policy.OneDriveLocation.Count -gt 0 $hasModernGroups = $policy.ModernGroupLocation -and $policy.ModernGroupLocation.Count -gt 0 $hasRetentionRule = $false $maxRetentionDays = 0 foreach ($rule in $policyRules) { if ($rule.RetentionDuration) { $hasRetentionRule = $true $days = [int]$rule.RetentionDuration if ($days -gt $maxRetentionDays) { $maxRetentionDays = $days } } } [PSCustomObject]@{ Name = $policy.Name Enabled = $policy.Enabled HasExchange = $hasExchange HasSharePoint = $hasSharePoint HasOneDrive = $hasOneDrive HasModernGroups = $hasModernGroups HasRetention = $hasRetentionRule MaxRetentionDays= $maxRetentionDays IsBaselineReady = $policy.Enabled -and $hasRetentionRule -and $hasExchange -and $hasSharePoint -and $hasOneDrive -and $hasModernGroups } } } function Invoke-Monitoring { <# .SYNOPSIS Controleert of er een volwassen retentiepolicy-configuratie aanwezig is. .OUTPUTS PSCustomObject met globale status en details per policy. #> [CmdletBinding()] param() $result = [PSCustomObject]@{ ScriptName = "retention-policies-configured.ps1" Timestamp = Get-Date IsCompliant = $false TotalPolicies = 0 BaselineReadyCount = 0 Policies = @() Findings = @() } try { 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 $sample = [PSCustomObject]@{ Name = $script:BaselinePolicyName Enabled = $true HasExchange = $true HasSharePoint = $true HasOneDrive = $true HasModernGroups = $true HasRetention = $true MaxRetentionDays= 2555 IsBaselineReady = $true } $result.TotalPolicies = 1 $result.BaselineReadyCount = 1 $result.IsCompliant = $true $result.Policies = @($sample) } else { Connect-ComplianceService Write-Host "Ophalen van retentiepolicies en regels..." -ForegroundColor Gray $overview = Get-RetentionOverview if (-not $overview) { $result.Findings += "Er zijn geen retentiepolicies met actieve regels gevonden in Microsoft Purview." } else { $result.TotalPolicies = ($overview | Measure-Object).Count $result.Policies = $overview foreach ($p in $overview) { if ($p.IsBaselineReady) { $result.BaselineReadyCount++ } } if ($result.BaselineReadyCount -eq 0) { $result.Findings += "Er is geen enkele retentiepolicy gevonden die Exchange, SharePoint, OneDrive en Microsoft 365 Groups/Teams volledig afdekt met een retentieregel." } } $result.IsCompliant = ($result.BaselineReadyCount -gt 0) } Write-Host "`nSamenvatting retentiepolicies:" -ForegroundColor Cyan Write-Host (" Totaal aantal policies : {0}" -f $result.TotalPolicies) -ForegroundColor White Write-Host (" Policies met volledige dekking : {0}" -f $result.BaselineReadyCount) -ForegroundColor White if ($result.IsCompliant) { Write-Host "`n[OK] Er is ten minste één actieve retentiepolicy die alle kernwerkbelastingen afdekt." -ForegroundColor Green } else { Write-Host "`n[FAIL] Er is geen volledig dekkende retentiepolicy gevonden." -ForegroundColor Red foreach ($finding in $result.Findings) { Write-Host " - $finding" -ForegroundColor Yellow } } return $result } catch { Write-Host "`n[FAIL] Fout tijdens monitoring: $_" -ForegroundColor Red throw } } function Invoke-Remediation { <# .SYNOPSIS Geeft advies en voorbeeldcmdlets voor het inrichten van een baseline-retentiepolicy. .DESCRIPTION Voert standaard geen wijzigingen door in productie, maar toont welke stappen nodig zijn om een generieke baselinepolicy voor kernwerkbelastingen in te richten. #> [CmdletBinding()] param() try { if (-not $DebugMode) { Connect-ComplianceService } else { Write-Host "DebugMode: er wordt geen verbinding gemaakt; alleen voorbeelden en uitleg worden getoond." -ForegroundColor Yellow } Write-Host "`nRemediatie-advies retentiepolicies:" -ForegroundColor Cyan Write-Host "`n1. Beoordeel bestaande policies" -ForegroundColor White Write-Host " - Gebruik de Monitoring-functie of Purview-rapportages om te bepalen welke policies al bestaan." -ForegroundColor Gray Write-Host " - Controleer of een of meer policies alle kernwerkbelastingen afdekken (Exchange, SharePoint, OneDrive, M365 Groups/Teams)." -ForegroundColor Gray Write-Host "`n2. Voorstel voor een generieke baselinepolicy" -ForegroundColor White Write-Host " - Naamvoorbeeld: '$script:BaselinePolicyName'." -ForegroundColor Gray Write-Host " - Locaties: alle Exchange-postvakken, alle SharePoint-sites, alle OneDrive-accounts en alle Microsoft 365 Groups/Teams." -ForegroundColor Gray Write-Host " - Bewaartermijn: afstemmen op het formele bewaarschema (bijvoorbeeld 7 of 10 jaar)." -ForegroundColor Gray Write-Host "`n3. Voorbeeldcmdlets (vereenvoudigd, afstemmen op eigen beleid)" -ForegroundColor White Write-Host " De onderstaande cmdlets zijn een startpunt en moeten worden aangepast aan de Archiefwet-selectielijst en interne afspraken:" -ForegroundColor Gray Write-Host "`n # Voorbeeld: nieuwe retentiepolicy voor kernwerkbelastingen" -ForegroundColor DarkGray Write-Host " New-RetentionCompliancePolicy -Name '$script:BaselinePolicyName' -ExchangeLocation All -SharePointLocation All -OneDriveLocation All -ModernGroupLocation All -Enabled \$true" -ForegroundColor DarkGray Write-Host " " -ForegroundColor DarkGray Write-Host " # Voorbeeld: basisretentieregel (circa 7 jaar, ongeveer 2555 dagen)" -ForegroundColor DarkGray Write-Host " New-RetentionComplianceRule -Name '$script:BaselinePolicyName - Rule' -Policy '$script:BaselinePolicyName' -RetentionDuration 2555 -RetentionComplianceAction KeepAndDelete" -ForegroundColor DarkGray if ($WhatIf) { Write-Host "`nWhatIf: er zijn geen wijzigingen aangebracht. Gebruik bovenstaande cmdlets alleen na interne afstemming en testen in een acceptatieomgeving." -ForegroundColor Yellow } else { Write-Host "`nLET OP: Dit script voert bewust geen automatische creatie of wijziging van policies uit." -ForegroundColor Yellow Write-Host "Stem concreet beleid altijd af met CISO, FG, informatiebeheer en juridische functiehouders en implementeer wijzigingen via gecontroleerde change-processen." -ForegroundColor Yellow } } catch { Write-Host "`n[FAIL] Fout tijdens remediatie-ondersteuning: $_" -ForegroundColor Red throw } } try { if ($Monitoring) { $monitorResult = Invoke-Monitoring if (-not $DebugMode) { if ($monitorResult.IsCompliant) { exit 0 } else { exit 1 } } } elseif ($Remediation) { Invoke-Remediation } else { Write-Host "Beschikbare parameters:" -ForegroundColor Yellow Write-Host " -Monitoring : Controleer de status van retentiepolicies" -ForegroundColor Gray Write-Host " -Remediation : Toon remediatie-advies en voorbeeldcmdlets" -ForegroundColor Gray Write-Host " -DebugMode : Voer een veilige lokale test uit zonder verbinding met Microsoft 365" -ForegroundColor Gray Write-Host " -WhatIf : Toon welke acties u zou nemen zonder wijzigingen door te voeren" -ForegroundColor Gray Write-Host "`nVoorbeeld: .\retention-policies-configured.ps1 -Monitoring -DebugMode" -ForegroundColor Cyan } } catch { Write-Error "Scriptuitvoering is mislukt: $_" exit 2 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan } # Exitcodes: # 0 = Compliant (minimaal één baselinepolicy actief) # 1 = Niet compliant (geen volledige dekking) # 2 = Fout tijdens uitvoering

Risico zonder implementatie

Risico zonder implementatie
High: Zonder volledig en aantoonbaar geconfigureerde retentiepolicies in Microsoft 365 kan de organisatie niet consistent voldoen aan bewaarplichten, loopt zij verhoogd risico op sancties van toezichthouders en verliest zij controle over de levenscyclus van kritieke informatie.

Management Samenvatting

Ontwerp een beheersbare set retentiepolicies op basis van het formele bewaarschema, implementeer deze in Microsoft Purview voor Exchange, SharePoint, OneDrive en Teams en borg de status via geautomatiseerde monitoring. Dit artikel en het gekoppelde script helpen Nederlandse overheidsorganisaties om retentiebeleid structureel, aantoonbaar en toekomstbestendig te maken.