Elke maand dezelfde ronde: een export uit Intune, een licentieoverzicht uit het Microsoft 365-admincenter, en dan alles bij elkaar plakken in Excel. Het kost al gauw een half uur, je doet het twaalf keer per jaar, en het is maar de vraag of iemand het resultaat helemaal leest. Hieronder lees je hoe je daar één rapport van maakt dat zichzelf samenstelt en verstuurt.
Het halfuur dat elke maand terugkomt
In kleinere organisaties is een fulltime beheerder niet vanzelfsprekend. Het beheer van Microsoft 365 ligt bij de office manager, de oprichter of een externe partij die er een paar uur per maand voor heeft. Rapportage schiet er dan makkelijk bij in: je kijkt pas naar het licentieoverzicht als de factuur hoger uitvalt dan verwacht, en pas naar de updatestatus van laptops als iemand belt dat zijn toestel traag is.
Automatiseren helpt hier niet omdat het modern is, maar omdat het de drempel wegneemt. Een rapport dat elke eerste maandag in je mailbox ligt, lees je wél. En omdat het er elke maand is, zie je verschillen: vorige maand vier apparaten zonder recente check-in, nu elf. Dat verschil is de waarde, niet de momentopname.
Wat wil je eigenlijk weten?
Begin niet bij de techniek maar bij de vraag. Deze drie vragen zijn een bruikbaar startpunt:
- Welke apparaten lopen achter? Toestellen die al weken niet meer hebben ingecheckt, apparaten zonder versleuteling, of toestellen op een besturingssysteemversie die uit ondersteuning loopt.
- Welke licenties betaal je zonder gebruiker? Toegewezen versus beschikbaar per abonnement, plus licenties die nog aan geblokkeerde accounts hangen.
- Welke accounts zijn stil? Gebruikers die lang niet zijn aangemeld. Vaak zijn dat vertrekkers waarbij de uitdiensttreding niet helemaal is afgerond.
Drie tabellen, elk hooguit één scherm lang. Een rapport van veertig pagina’s leest niemand, ook jijzelf niet.
Drie routes, drie profielen
1. De ingebouwde rapportages
Intune en het Microsoft 365-admincenter hebben eigen rapportages met een exportknop. Geen ontwikkelwerk, geen rechtenvraagstuk: je klikt en je hebt een bestand. Nadeel: je moet het zelf blijven doen, en combineren met gegevens uit een ander portaal gaat alsnog handmatig. Prima als eerste stap om te bepalen welke kolommen je eigenlijk wilt zien, en om te controleren of je automatische rapport straks dezelfde aantallen geeft.
2. Power Automate
Lage drempel, zichtbare stappen, en iedereen in het team kan zien wat de flow doet. Je plant een flow, haalt gegevens op, zet ze in een bestand en mailt het. Let op twee dingen: aanroepen richting Microsoft Graph kunnen via connectoren lopen die als premium gelden, en de licentiestructuur van Power Platform verandert regelmatig. Kijk vóór je bouwt in de actuele Power Platform Licensing Guide en de licensing-FAQ van Microsoft welke licentie je nodig hebt, en in het release wave-plan voor Power Automate wat er in wave 1 van 2026 is uitgebracht; nieuwe functies publiceert Microsoft sinds september 2026 op de AI at Work-roadmap. Dat scheelt een flow die technisch werkt maar licentietechnisch niet mag.
3. PowerShell met Microsoft Graph
Veel controle en lage doorlopende kosten, maar je moet wel een script kunnen lezen. Je draait het in een geplande taak of in een cloud-runbook, haalt precies de velden op die je wilt, en stuurt het resultaat als bijlage. Houd rekening met de versiesprong van de Microsoft Graph PowerShell SDK: versie 3, gepland voor Q4 2026, ondersteunt Windows PowerShell 5.1 niet meer, dus je hebt PowerShell 7 nodig; wie op 5.1 blijft, moet bij een 2.x-release blijven. Die lijn kreeg op 30 september 2026 nog een update (V2.41) die botsende assemblies in gedeelde sessies oplost. Controleer de releases op GitHub en de openstaande issues voordat je een versie vastzet: V2.41 gaf bijvoorbeeld fouten in Azure Automation-runbooks op de PowerShell 7.2- en 7.4-runtimes.
De kleinste werkende opzet
Bouw niet meteen het ideale rapport. Mik op één tabel die klopt, en breid daarna uit.
- Maak een app-registratie in Microsoft Entra ID, met een duidelijke naam zoals “Rapportage maandelijks”.
- Ken alleen leesrechten toe voor de gegevens die je nodig hebt (apparaatgegevens, abonnementen, gebruikers). Zoek de exacte permissie op in de Graph-documentatie bij het endpoint dat je gebruikt; gok niet.
- Gebruik een certificaat in plaats van een secret als de omgeving waarin je draait dat ondersteunt.
- Schrijf het script of de flow met één uitvraag, bijvoorbeeld
Get-MgSubscribedSkuvoor het licentieoverzicht, en schrijf de uitkomst naar CSV. - Plan het op een vast moment, bijvoorbeeld de eerste maandag van de maand om 7:00.
- Laat het mailen naar een gedeelde mailbox, niet naar één persoon. Anders stopt het rapport als die persoon weggaat.
- Vergelijk de eerste twee runs handmatig met de export uit de portal. Pas als de aantallen kloppen, vertrouw je het.
Rechten: zo min mogelijk, en één duidelijke eigenaar
Laat een rapportage nooit draaien onder het persoonlijke account van een beheerder. Dat account krijgt ooit MFA-wijzigingen, verandert van wachtwoord of wordt uitgezet, en dan stopt het rapport zonder dat iemand het merkt. Een app-registratie met uitsluitend leesrechten is veiliger en overleeft personeelswissels.
Leg daarnaast vast wie eigenaar is: wie verlengt het certificaat, wie krijgt het bericht als een run mislukt, en waar staat de broncode. Eén regel in je documentatie voorkomt dat je over twee jaar een script hebt dat niemand durft aan te raken.
De valkuilen
- Verlopen certificaat of secret. Een veelvoorkomende reden dat rapportages stilvallen. Zet de vervaldatum in de agenda, niet alleen in je hoofd.
- Paginering. Microsoft Graph geeft resultaten in pagina’s terug. Verwerk je alleen de eerste pagina, dan klopt het aantal apparaten stilletjes niet.
- Throttling. Bij een tenantbrede uitvraag kun je een 429-antwoord krijgen. Respecteer de meegegeven wachttijd en probeer opnieuw, in plaats van de uitvraag af te breken.
- Geanonimiseerde namen. In gebruiksrapportages kunnen gebruikers- en groepsnamen verborgen zijn. Controleer die instelling als je in je rapport alleen hashes ziet.
- Tijdzone en zomertijd. Planningen staan vaak standaard in UTC. Niet erg voor een maandrapport, wel vervelend als je op een exacte afsluitdatum rekent.
- Stille fouten. Een run die mislukt moet je een bericht sturen. Geen bericht is geen bewijs dat het goed ging.
AI erbij: waar wel en waar niet
AI is nuttig bij het schrijven van het script, bij het uitleggen van een foutmelding en bij het formuleren van een samenvatting boven je tabel. Minder geschikt is het als controle op de cijfers zelf: een taalmodel telt niet, het schat. Laat de optelsom door je script doen en gebruik AI hooguit voor de begeleidende tekst.
Plak verder geen tenantgegevens, serienummers of gebruikersnamen in een willekeurige chatbot. Gebruik een dienst waarmee je organisatie afspraken heeft over dataverwerking, of anonimiseer je voorbeelddata voordat je iets deelt.
Checklist: in een middag live
- Kies maximaal drie vragen die je rapport beantwoordt.
- Haal dezelfde gegevens eerst handmatig op als referentie.
- Kies je route: ingebouwd, Power Automate of PowerShell met Graph.
- Maak een app-registratie met uitsluitend leesrechten en een certificaat.
- Bouw één tabel, plan hem, en mail naar een gedeelde mailbox.
- Vergelijk twee runs met de handmatige export.
- Zet vervaldatums en de eigenaar in je documentatie.
- Breid pas daarna uit met de tweede en derde tabel.
Voor de losse vraag tussendoor — wat is de status van dit ene toestel? — heb ik Deskside gemaakt: scan het serienummer en zie direct de status in Windows Autopilot, Microsoft Intune en Microsoft Entra ID. Een maandrapport en een snelle scan vullen elkaar aan: het rapport laat trends zien, de scan beantwoordt de vraag van nu. Wil je dit laten inrichten in jouw omgeving, kijk dan bij IT-consultancy of plan een kennismaking van een half uur.
Veelgestelde vragen
- Heb ik een betaalde Power Automate-licentie nodig?
- Dat hangt af van de connectoren die je gebruikt; aanroepen richting Microsoft Graph kunnen onder premium vallen. Controleer de actuele Power Platform Licensing Guide en de licensing-FAQ van Microsoft voordat je gaat bouwen, want de structuur wijzigt regelmatig.
- Welke PowerShell-versie heb ik nodig voor de Graph SDK?
- Versie 3 van de Microsoft Graph PowerShell SDK is aangekondigd voor Q4 2026 en ondersteunt Windows PowerShell 5.1 niet meer; daarvoor heb je PowerShell 7 nodig. Microsoft kondigde in september 2026 een retirementperiode van twaalf maanden aan; de 2.x-lijn kreeg op 30 september 2026 versie 2.41. Controleer de releases op GitHub voordat je een versie vastzet.
- Mag ik mijn eigen beheerdersaccount gebruiken voor de rapportage?
- Liever niet. Gebruik een app-registratie in Microsoft Entra ID met uitsluitend leesrechten en bij voorkeur een certificaat. Zo blijft het rapport draaien als jij van wachtwoord verandert of weggaat.
- Kan ik AI mijn rapport laten samenvatten?
- Voor de begeleidende tekst kan dat prima. Laat de cijfers zelf door je script optellen en plak geen gebruikersnamen of serienummers in een chatbot waarmee je organisatie geen afspraken heeft over dataverwerking.


