/
/

Zo haalt u rapporten over Microsoft 365-groepen op met PowerShell

door Team Ninja
How to Get Microsoft 365 Group Reports Using PowerShell blog banner image

Directe samenvatting

Deze blogpost van NinjaOne biedt een uitgebreide basislijst met CMD-commands en een deep dive duik in Windows-commands met meer dan 70 essentiële cmd-commands voor zowel beginners als gevorderden. Het legt praktische opdrachtpromptcommando’s uit voor file management, directory navigation, network troubleshooting, disk operations en automatisering met echte voorbeelden om de productiviteit te verbeteren. Of u nu fundamentele cmd-commands leert of geavanceerde Windows CLI-tools onder de knie krijgt, deze gids helpt u de Command Prompt effectiever te gebruiken.

Belangrijkste punten

  • Met Microsoft Graph PowerShell kunt u uitgebreide rapporten over Microsoft 365-groepen genereren, inclusief groepsnamen, groepstypen en zichtbaarheid.
  • Door Exchange Online PowerShell te combineren met gegevens uit Graph, rapporteert u nauwkeurig over eigenaarschap en lidmaatschap van groepen.
  • Met de Microsoft Graph Reports API volgt u groepsactiviteit en spoort u inactieve of verweesde groepen op over periodes van 7, 30 of 90 dagen.
  • U kunt rapportage over Microsoft 365 automatiseren met app-only-authenticatie, geplande PowerShell-taken en CSV- of JSON-exports voor consistente opvolging.
  • Multi-tenant rapporten over Microsoft 365 standaardiseert u met gescripte verbindingsloops, logs met tijdstempels en uniforme rapportage over alle organisaties heen.

Rapportage over Microsoft 365-groepen helpt beheerders om eigenaarschap, lidmaatschap, zichtbaarheid en gebruik te volgen in Teams, SharePoint, Planner en Outlook.

Oude rapportagemethoden bieden simpelweg niet de automatisering en diepgang die moderne beheerders nodig hebben. Daarom stappen steeds meer organisaties over op tools zoals Graph PowerShell en de Graph Reports-endpoints om rapporten te genereren.

Deze platformen automatiseren repetitieve taken, zoals het verzamelen van lidmaatschapsgegevens en leveren bovendien veel rijkere datasets.

In deze gids laten we zien hoe u rapportage over Microsoft 365-groepen met PowerShell en Graph Reports automatiseert.

Rapporten over Microsoft 365-groepen automatiseren met PowerShell

PowerShell en Microsoft Graph zijn de twee onmisbare tools om schaalbare en veilige rapportage over Microsoft 365-groepen op te zetten.

Vereisten

  • De modules Microsoft Graph PowerShell SDK en Exchange Online
  • Een Azure-appregistratie met de API-scopes Reports.Read.All en Group.Read.All
  • App-only- of gedelegeerde referenties, veilig opgeslagen in een Key Vault of een versleuteld JSON-bestand
  • Beheerdersrechten voor toegang tot de rapportage van de Microsoft 365-tenant en Exchange Online

Methode 1: volledige groepsinventarisatie met Microsoft Graph PowerShell

Use case: deze methode brengt een veilige verbinding tot stand met Microsoft Graph, waarmee u uw Microsoft 365-gegevens kunt opvragen. Ideaal voor een volledige inventarisatie van alle groepen in uw tenant, inclusief Teams-groepen en dynamische groepen

A. Modules installeren en importeren

Install-Module Microsoft.Graph -Scope CurrentUser

Import-Module Microsoft.Graph

Connect-MgGraph -Scopes "Group.Read.All","Reports.Read.All"

Hiermee installeert u de SDK veilig en maakt u verbinding met de juiste machtigingen.

B. Gebruik Get-MgGroup om alle Microsoft 365-groepen te inventariseren

Get-MgGroup -All | Select DisplayName,GroupTypes,Visibility,CreatedDateTime |

Export-Csv "C:\Reports\GroupInventory.csv" -NoTypeInformation

Tip: filter de resultaten op groepstype of naamgevingsconventie om Teams-groepen of dynamische groepen te isoleren.

Methode 2: lidmaatschap en eigenaarschap ophalen via Exchange Online

Use case: met deze methode haalt u gegevens over lidmaatschap en eigenaarschap rechtstreeks uit Exchange Online. Dat is vooral handig voor beheerders die e-mailbeveiligingsgroepen of distributielijsten in Microsoft 365 beheren.

A. Verbinding maken met Exchange Online:

Connect-ExchangeOnline -UserPrincipalName [email protected]

Get-UnifiedGroup | Select DisplayName,PrimarySmtpAddress,AccessType |

Export-Csv "C:\Reports\UnifiedGroups.csv" -NoTypeInformation

B. Groepsleden of eigenaren weergeven:

Get-UnifiedGroupLinks -Identity "<GroupName>" -LinkType Members |

Select Name,PrimarySmtpAddress

C. Groepseigenaren weergeven:

Get-UnifiedGroupLinks -Identity "<GroupName>" -LinkType Owners

Select Name,PrimarySmtpAddress

Exporteer de resultaten voor beoordeling of auditdocumentatie.

Methode 3: groepsbetrokkenheid analyseren met de Microsoft Graph Reports API

Use case: met deze methode analyseert u groepsactiviteit en krijgt u inzicht in de lifecycle.

A. Roep de Graph Reports API aan voor groepsactiviteit

$uri = "https://graph.microsoft.com/v1.0/reports/getOffice365GroupsActivityDetail(period='D30')"

Invoke-MgGraphRequest -Method GET -Uri $uri |

ConvertFrom-Csv | Export-Csv "C:\Reports\GroupActivity_D30.csv" -NoTypeInformation

Vergelijk de activiteitsaantallen met de lidmaatschapsgegevens om te zien welke groepen inactief zijn, nauwelijks gebruikt worden of geen eigenaar hebben.

Methode 4: exports en planning automatiseren

Use case: met deze methode genereert u automatisch groepsrapporten voor compliance en managementrapportage.

  1. Beveilig uw app-referenties door ze op te slaan in een versleuteld JSON-bestand.
  2. Gebruik een geplande PowerShell-taak of een Azure Automation-runbook voor uitvoering in de cloud:

$timestamp = Get-Date -Format "yyyyMMdd_HHmm"
Get-MgGroup -All | Export-Csv "C:\Reports\Groups_$timestamp.csv" -NoTypeInformation

  1. Schakel logging in voor elke uitvoering en zorg dat die de belangrijkste details bevat, zoals tijdstempels, tenantnaam, aantal records en de status geslaagd of mislukt.
  2. Eventueel kunt u de geëxporteerde CSV-bestanden invoeren in Power BI of in een compliancerapportpakket.

Beste praktijken voor rapporten over Microsoft 365-groepen met PowerShell en Graph Reports

PraktijkDoelOpgeleverde waarde
Graph-cmdlets voor inventarisatieZorgt voor aansluiting op moderne Microsoft Graph API’s bij het ophalen van groeps- en directorygegevensLevert nauwkeurige, betrouwbare en volledig ondersteunde inventarisresultaten
Exchange Online voor lidmaatschapsgegevensVersterkt de governance door inzicht te geven in groepseigenaarschap en toegangsrechtenStelt beheerders in staat vast te stellen wie elke groep bezit en wie waartoe toegang heeft
Graph Reports API voor activiteitsinzichtenGeeft zicht op de lifecycle van groepen door gebruik en betrokkenheid te volgenMaakt het eenvoudiger om inactieve, overbodige of eigenaarloze groepen te herkennen
App-only-authenticatieVerbetert de beveiliging doordat interactieve aanmeldingen overbodig wordenBiedt veilige, tokengebaseerde authenticatie die beheerderstoegang beschermt
Geplande exportsStandaardiseert het verzamelen van gegevens via automatiseringZorgt voor herhaalbare rapportage en doorlopend bewijsmateriaal voor compliance-audits

Valideren en veelvoorkomende problemen oplossen

Als uw script fouten geeft of onvolledige gegevens oplevert, gebruik dan de onderstaande checklist om veelvoorkomende problemen op te sporen en te verhelpen.

  • Lege resultaten: controleer de logginginstellingen van de tenant en ga na of de Graph API-machtigingen correct zijn toegewezen.
  • Toegang geweigerd: zorg dat er expliciet beheerderstoestemming is verleend voor alle vereiste API-scopes in de Azure-appregistratie.
  • Rate limits: pas vertragings- of retry-logica toe bij grotere tenants om verzoeken af te remmen en de rate limits van de Graph API niet te overschrijden.
  • Scriptfouten: plaats queryblokken in een Try/Catch om uitzonderingen correct af te handelen en de fout te loggen voor latere analyse.
  • Verlopen tokens: stel notificaties in om het verlopen van tokens te bewaken en roteer uw app-secrets regelmatig. Zo blijven uw geautomatiseerde rapporten gewoon draaien.

Automatisering bij rapportage over Microsoft 365-groepen

Automatisering kan voor MSP’s het verschil maken. Een dagelijks geplande taak die via app-only-authenticatie verbinding maakt met Microsoft Graph helpt u bijvoorbeeld om:

  • Groepslijsten en activiteitsgegevens op te halen uit meerdere klanttenants.
  • Gegevens samen te voegen in één CSV-rapport, compleet met tijdstempels.
  • Rapporten automatisch per e-mail naar de aangewezen beheerders te sturen.

Deze aanpak beperkt het handwerk voor uw team, zodat zij zich op belangrijkere taken kunnen richten.

Rapportage over Microsoft 365-groepen vereenvoudigen met NinjaOne

NinjaOne maakt rapportage over Microsoft 365-groepen moeiteloos. Dankzij een krachtige scripting-engine kunt u PowerShell-implementaties automatiseren in alle klantomgevingen.

Met veilige opslag van referenties kunt u scripts bouwen die bruikbare inzichten opleveren, automatisch CSV-rapporten genereren en die rechtstreeks aan de klantdocumentatie koppelen zonder in te leveren op beveiliging.

Begin een gratis trial van de #1 endpoint management software op G2

Geen creditcard vereist. Krijg volledige toegang tot alle functies.

Slimmere rapporten over Microsoft 365-groepen met PowerShell

Moderne PowerShell-rapportage voor Microsoft 365-groepen maakt gebruik van graph-gebaseerde cmdlets en API’s en levert daarmee een precisie en automatisering die oude rapportagemethoden niet kunnen evenaren.

Door inventarisatie-, lidmaatschaps- en activiteitsgegevens in één rapport samen te brengen, krijgt u cruciaal inzicht in elke klanttenant of bedrijfsonderdeel dat u beheert. Belangrijker nog: zo blijft uw rapportageproces schaalbaar en toekomstbestendig.

Gerelateerde onderwerpen:

FAQs

Voor de meeste organisaties dekt een wekelijks gepland rapport de belangrijkste operationele use cases: verweesde groepen opsporen, groepen zonder recente activiteit herkennen en wijzigingen in lidmaatschap volgen die kunnen wijzen op ongeautoriseerde toegang of verouderde toewijzingen. In compliancegedreven omgevingen die werken onder SOC 2, HIPAA of ISO 27001 levert een dagelijkse geautomatiseerde uitvoering met CSV-exports voorzien van tijdstempels een doorlopend auditspoor op zonder handwerk. Deze frameworks schrijven geen specifieke rapportagefrequentie voor, dus bepaal uw ritme op basis van uw interne beleid en de verwachtingen van uw auditor.. Is opslag een aandachtspunt, dan zijn dagelijkse deltarapporten die alleen de wijzigingen sinds de laatste volledige export vastleggen aanzienlijk efficiënter.

Ja. U kunt interactieve Connect-MgGraph-authenticatie vervangen door app-only-authenticatie met een service principal via een geregistreerde applicatie in Microsoft Entra ID. Vervolgens doorloopt u een array met tenant-ID’s en maakt u binnen één scriptuitvoering achtereenvolgens verbinding met elke klant om de gegevens te exporteren. Neem in elke export de tenant-identificatie op in zowel de bestandsnaam als de CSV-kolomgegevens, zodat rapporten van meerdere tenants later kunnen worden samengevoegd tot één compliance-overzicht zonder onduidelijkheid over welk record bij welke klant hoort.

Bouw gestructureerde logging in bij elke scriptuitvoering door de starttijd, tenantnaam, het totale aantal records en de status geslaagd of mislukt weg te schrijven naar een permanent logbestand dat vermeldingen over meerdere uitvoeringen verzamelt. Wilt u direct notificaties bij fouten, plaats dan elk belangrijk queryblok in een Try/Catch-statement en configureer het Catch-blok zo dat het een e-mailmelding verstuurt of naar een monitoring-webhook schrijft zodra een uitzondering wordt opgevangen. Zo ontdekt u een mislukt rapport meteen en niet pas wanneer een compliancedeadline het gat blootlegt.

Power BI is de krachtigste optie voor organisaties die al op de Microsoft 365-stack draaien. Voor eenvoudigere of meer ad-hocanalyses volstaan draaitabellen in Excel op de geëxporteerde CSV-bestanden voor gangbare beheerderstaken: inactieve groepen herkennen op basis van de datum van laatste activiteit, eigenaarschap vergelijken met een export uit de HR-directory of filteren op groepen die een bepaalde omvang overschrijden. MSP’s die rapporten genereren voor meerdere klanttenants kunnen alle exports invoeren in een gedeelde Power BI-workspace die is gekoppeld aan een centrale opslaglocatie. Eén dashboard toont dan de gezondheid van groepen voor alle klanten met slicers op tenantniveau, wat de voorbereiding van een QBR aanzienlijk versnelt.

Dit vindt u misschien ook leuk

Klaar om de moeilijkste delen van IT te vereenvoudigen?