/
/

Berichte zur Benutzeraktivität in Microsoft 365 mit PowerShell abrufen

von Team Ninja
How to Get Microsoft 365 User Activity Reports using PowerShell blog banner image

Kurzüberblick

Dieser NinjaOne-Blogbeitrag bietet eine umfassende Liste grundlegender CMD-Befehle und einen tiefen Einblick in die Windows-Befehle mit über 70 wichtigen CMD-Befehlen für Anfänger:innen und Fortgeschrittene. Der Blogartikel erklärt praktische Befehle der Eingabeaufforderung für die Dateiverwaltung, die Navigation in Verzeichnissen, die Fehlersuche im Netzwerk, Festplattenoperationen und die Automatisierung mit echten Beispielen zur Steigerung der Produktivität. Egal, ob Sie grundlegende CMD-Befehle lernen oder fortgeschrittene Windows CLI-Tools beherrschen möchten, dieser Leitfaden hilft Ihnen, die Eingabeaufforderung effektiver zu verwenden.

Schlüsselpunkte

  • Erstellen Sie mit dem Microsoft Graph PowerShell-Modul über Get-MgUser ein Benutzerinventar und ergänzen Sie es anschließend um Nutzungskennzahlen aus Graph Reports.
  • Reichern Sie Ihre Inventare mit Postfach-Kennzahlen aus Exchange Online an, um überdimensionierte Postfächer, inaktive Konten und Migrationskandidaten zu erkennen.
  • Vereinheitlichen Sie Eigenschaftsnamen und Exportbenennungen, damit sich Datensätze sauber zusammenführen lassen und über alle Mandanten hinweg auditfähig bleiben.
  • Automatisieren Sie die Datenerfassung mit App-only-Authentifizierung, Wiederholungslogik und strukturierter Protokollierung, damit unbeaufsichtigte Workflows sicher und stabil laufen.

Berichte zur Benutzeraktivität in Microsoft 365 (früher Office 365) sind unverzichtbar, wenn Sie die Service-Nutzung nachverfolgen, die Produktivität Ihrer Kund:innen sichern sowie Sicherheit und Compliance aufrechterhalten wollen. Mit PowerShell sammeln Sie verwertbare Erkenntnisse aus Exchange Online, Teams, SharePoint und OneDrive auf einheitliche Weise.

Berichte zur Benutzeraktivität in Microsoft mit PowerShell erfassen

Microsoft Graph PowerShell liefert eine hohe Datenqualität und bietet leistungsstarke Filtermöglichkeiten. Mit PowerShell führen Sie Benutzerinventar, Nutzungsdaten und Postfach-Kennzahlen in einer zentralen Pipeline zusammen, um Lizenzen zu optimieren, Zugriffs-Governance durchzusetzen und Vorfälle zu untersuchen.

Für diese Einrichtung benötigen Sie Folgendes:

  • PowerShell 7 oder höher mit installierten Modulen für Microsoft Graph und Exchange Online.
  • Eine Azure-App-Registrierung mit Graph-Berechtigungen nach dem Least-Privilege-Prinzip, etwa Group.Read.All und Reports.Read.All, inklusive erteilter Zustimmung.
  • Optional Exchange Online-Berechtigungen für Postfachstatistiken.
  • Eine sichere Ablage für Anmeldeinformationen sowie einen zentralen Ausgabepfad für CSV und JSON.

Schritt 1: Benutzer:innen mit dem Microsoft Graph PowerShell-Modul inventarisieren

Ein vollständiges Benutzerinventar ist die Grundlage für die Überwachung und Verwaltung von Microsoft 365-Kund:innen. Das folgende Skript erfasst ausschließlich die relevantesten Benutzerdetails, verkürzt damit die Laufzeit und hält den Prozess auch bei großen Datenmengen effizient.

Wenn Sie über alle Mandanten hinweg ein einheitliches CSV-Exportformat verwenden, folgt jeder Bericht derselben Struktur. So lassen sich die Berichte leicht vergleichen, zusammenführen und später mit Daten aus Quellen wie Microsoft Graph Reports oder Exchange Online anreichern.

Beispielskript für ein Benutzerinventar in PowerShell

Install-Module Microsoft.Graph -Scope CurrentUser
Import-Module Microsoft.Graph
Connect-MgGraph -Scopes "User.Read.All","Reports.Read.All"Get-MgUser -All -Property "id,displayName,userPrincipalName,mail,accountEnabled,createdDateTime,assignedLicenses" |
Select-Object id,displayName,userPrincipalName,mail,accountEnabled,createdDateTime, @{n='LicenseCount';e={$_.assignedLicenses.Count}} |
Export-Csv "C:\Reports\M365_Users.csv" -NoTypeInformation

Sie können einzelne Eigenschaften in der Zeile Get-MGUser -All -Property weglassen, um den Umfang Ihrer Abfrage zu steuern.

Schritt 2: Nutzungskennzahlen über die Graph Reports API ergänzen

Graph Reports liefert Einblicke in die Benutzeraktivität über die verschiedenen Microsoft 365-Dienste hinweg. Damit werden inaktive Konten ebenso sichtbar wie Bereiche mit besonders hoher Nutzung, sodass Sie entscheiden können, wo Lizenzen entzogen und wo Upgrades sinnvoll sind.

Beispielskripte für die Graph Reports API in PowerShell

Das folgende Skript ruft die Aktivität auf Benutzerebene über verschiedene Workloads hinweg für einen festgelegten Zeitraum ab.

Get-MgReportOffice365ActiveUserDetail -Date (Get-Date).AddDays(-1) -OutFile "C:\Reports\ActiveUserDetail.csv"

Beachten Sie, dass das obige Skript die Daten des Vortags abfragt, gekennzeichnet durch .AddDays (-1). Alternativ können Sie auch rollierende Zeiträume wie die folgenden verwenden:

# Last 7 days
Get-MgReportOffice365ActiveUserDetail -Period D7 -OutFile "C:\Reports\ActiveUserDetail_D7.csv"# Last 30 days
Get-MgReportOffice365ActiveUserDetail -Period D30 -OutFile "C:\Reports\ActiveUserDetail_D30.csv"

Anschließend können Sie die erzeugte CSV-Datei mit Ihrer bestehenden Inventarliste aus Schritt 1 zusammenführen, um inaktive oder wenig genutzte Konten nach Workload zu identifizieren:

$inv = Import-Csv "C:\Reports\M365_Users.csv" # From step 1
$usage = Import-Csv "C:\Reports\ActiveUserDetail.csv" # From step 2$joined = $inv | Join-Object -On userPrincipalName -Right $usage -Kind Left # or use a custom hash join
# Alternative without a module: build a hash on UPN for the usage file and add the fields you need$joined | Export-Csv "C:\Reports\M365_Users_Usage.csv" -NoTypeInformation

Schritt 3: Benutzerinventar mit Postfach-Kennzahlen aus Exchange Online anreichern

Wenn Sie Postfach-Kennzahlen in Ihre Inventarliste aufnehmen, erkennen Sie überdimensionierte oder schnell wachsende Postfächer, bevor sie die Produktivität Ihrer Kund:innen beeinträchtigen. Außerdem stellen Sie damit sicher, dass Kundenkonten und Richtlinien korrekt gepflegt werden, und unterstützen Administrator:innen dabei, Exchange Online-Postfächer reibungslos zu migrieren.

Beispielskript in PowerShell zum Abfragen von Exchange Online-Kennzahlen

Das folgende Skript stellt eine Verbindung zum Exchange Online-Dienst von Microsoft 365 her und ruft die wichtigsten Postfach-Kennzahlen pro Benutzer:in ab. Administrator:innen erhalten so einen Überblick über die Postfachnutzung, da zentrale Kennzahlen wie Postfachgröße, Anzahl der Elemente, gelöschte Elemente, letzte Anmeldezeit und Speicherlimits ausgelesen werden.

Connect-ExchangeOnline -UserPrincipalName [email protected]
Get-MailboxStatistics -Identity [email protected]

Führen Sie das Skript für Benutzer:innen aus, auf die eines der folgenden Kriterien zutrifft:

  • Schnelles Postfachwachstum
  • Postfächer mit hohem Speicherbedarf oder nahe am Kontingent
  • VIP-, freigegebene oder Ressourcenpostfächer
  • Migrationskandidaten
  • Compliance-relevante Benutzer:innen

Schritt 4: Berichte zur Benutzeraktivität in Microsoft 365 vereinheitlichen, exportieren und speichern

Wenn Sie Kennzahlen über Get-MgUser, Graph Reports und Exchange Online abrufen, passen diese standardmäßig nicht zusammen. Durch Normalisierung erhalten Sie vereinheitlichte Exporte in einem konsistenten Datenformat, das die Automatisierung vereinfacht und über alle Mandanten hinweg reproduzierbare Abläufe ermöglicht.

Empfohlener Maßnahmenplan:

  1. Vereinheitlichen Sie Eigenschaftsnamen und ergänzen Sie berechnete Felder wie LicenseCount, IsEnabled und AsOf, damit sich Datensätze sauber zusammenführen lassen.
  2. Exportieren Sie CSV-Dateien für die Mitarbeiter:innen im Betrieb und JSON für Dashboards und Automatisierung.
  3. Benennen Sie jede Datei mit Mandanten-ID, Zeitfenster und Skriptversion, um die Nachvollziehbarkeit zu verbessern. Zum Beispiel:
    • users_{TenantId}_{Window}_{ScriptVersion}.csv
    • users_{TenantId}_{Window}_{ScriptVersion}.json

Schritt 5: Workflows mit sicherer Authentifizierung und Protokollierung automatisieren

Die Kombination aus Vereinheitlichung und Automatisierung erlaubt es Ihnen, Workflows über mehrere Mandanten hinweg zu replizieren. Sichere Anmeldungen sorgen dafür, dass Ihre Skripte unbeaufsichtigt und planmäßig reibungslos laufen.

Automatisierte Wiederholungs- und Backoff-Workflows halten Jobs stabil, selbst wenn Microsoft 365 Anfragen drosselt. Eine strukturierte Protokollierung wiederum belegt die Wirksamkeit Ihres Skripts, indem sie festhält, was ausgeführt wurde und welche Kennzahlen dabei entstanden sind.

Empfohlener Maßnahmenplan:

  1. Setzen Sie auf App-only-Authentifizierung, damit unbeaufsichtigte Skripte ohne Unterbrechung laufen.
  2. Ergänzen Sie Wiederholungs- und Backoff-Konfigurationen, um die Datenerfassung trotz API-Drosselung stabil zu halten.
  3. Führen Sie ein detailliertes Ausführungsprotokoll mit Start- und Endzeiten, Filtern und Datensatzanzahl, damit die Nachvollziehbarkeit bei Audits oder Reviews gewahrt bleibt.
  4. Planen Sie häufige Inventarprüfungen und wöchentliche Aktivitätsaktualisierungen ein, damit Ihre Berichte aktuell bleiben, ohne unnötige Kosten zu verursachen.
  5. MSPs können mit PowerShell-Schleifen mehrere Kund:innen durchlaufen und für jeden Mandanten separate Berichte erzeugen.

Schritt 6: Benutzerberichte aus Microsoft 365 operativ nutzen

Sind alle nötigen Berichtsdaten erfasst, werden aus reinen Kennzahlen erst dann verwertbare Erkenntnisse, wenn Sie Ihre Ergebnisse operativ nutzen. Indem Sie die Exporte in Compliance-, Governance- und Service-Review-Prozesse einbinden, gewinnen Sie Transparenz über den Betrieb Ihrer Kund:innen.

So helfen Sie Ihren Kund:innen, fundierte Entscheidungen zu treffen und Risiken zu verringern. Außerdem können Sie ihnen belegbare Pläne vorlegen, die messbare Service-Verbesserungen bringen.

Empfohlener Maßnahmenplan:

  1. Fügen Sie Benutzer- und Aktivitätsauszüge Ihren Compliance-Paketen bei, um nachzuweisen, dass Sie korrekte Zugriffsaufzeichnungen führen und die Datennutzung überwachen.
  2. Gleichen Sie die Berichte mit Meldungen aus der Personalabteilung oder dem Verzeichnisdienst ab, um inaktive Benutzer:innen, veraltete Zugriffsrechte oder verwaiste Lizenzen aufzuspüren.
  3. Präsentieren Sie die wichtigsten Ergebnisse in QBRs, um Adoptionstrends, Nutzungswachstum oder Risikoreduzierung sichtbar zu machen.
  4. Archivieren Sie Berichte, um eine faktenbasierte Ausgangsbasis für Analysen nach Vorfällen und eine schnellere Behebung zu schaffen.

Erfassung von Benutzerberichten in Microsoft 365 automatisieren

Manuelle Schritte bei der Datenerfassung verlangsamen die Analyse durch sich wiederholende Abläufe und treiben zudem die Betriebskosten in die Höhe. Mit Automatisierung machen Sie aus der Datenerfassung einen einheitlichen, standardisierten Prozess, der menschliche Fehler minimiert.

Beispiele für Automatisierungsansätze:

  • Richten Sie einen nächtlichen Skript-Job ein, der Benutzerinventare mit dem Microsoft Graph PowerShell-Modul exportiert.
  • Planen Sie wöchentliche Skripte, die Details zu aktiven Benutzer:innen erfassen, sowie einen gezielten Job, der Postfachstatistiken für markierte Benutzer:innen sammelt.
  • Automatisieren Sie die Erstellung von Exporten mit Zeitstempel und deren anschließende Übergabe an Ihr Nachweis-Repository.

NinjaOne-Funktionen für die Erfassung von Berichten zur Benutzeraktivität in Microsoft 365

NinjaOne verbessert die Erfassung und Verwaltung von Berichten zur Benutzeraktivität in Microsoft Office 365 durch Automatisierung, Sicherheit und Skalierbarkeit.

  • Remote-Skriptbereitstellung: Führen Sie Skripte für Graph Reports, Exchange Online und Microsoft Graph PowerShell sofort zentral und in großem Umfang über das Remote-Skripting von NinjaOne aus
  • Geplante Automatisierungen: Mit der Funktion für geplante Automatisierungen führen Sie Erfassungsskripte zu festgelegten Zeitpunkten aus, etwa beim Systemstart oder bei der Benutzeranmeldung.
  • Sichere benutzerdefinierte Felder: Speichern Sie sensible Anmeldeinformationen in sicheren benutzerdefinierten Feldern und greifen Sie zentral per PowerShell-Skript darauf zu.
  • Umfassende Skripting-Möglichkeiten: Erstellen Sie eigene PowerShell-Skripte, um unter anderem Benutzerinventare zu automatisieren, inaktive Benutzer:innen nach Workload zu identifizieren oder Kandidaten für die Lizenzoptimierung zu ermitteln.

Darüber hinaus vereinfachen die Remote-Skripting- und Planungsfunktionen von NinjaOne PowerShell-basierte Workflows und ermöglichen zentrale Bereitstellungen über mehrere Mandanten hinweg.

Erfassung von Benutzerberichten in Microsoft 365 mit PowerShell optimieren

Mit der Abkündigung der Module MSOnline und AzureAD brachte der Wechsel zu Microsoft Graph PowerShell einen modernen, einheitlichen Ansatz für die Datenerfassung über alle Microsoft 365-Dienste hinweg.

Indem Teams sichere Automatisierung, vereinheitlichte Exporte und eine schlanke Aufbereitung von Nachweisen kombinieren, werden aus reinen Kennzahlen operative Transparenz und verwertbare Erkenntnisse, die Audits unterstützen, die Lizenznutzung optimieren und Untersuchungen von Vorfällen beschleunigen.

Verwandte Themen:

FAQs

Get-MailboxStatistics liefert pro Benutzer:in die Postfachgröße, die Anzahl der Elemente, gelöschte Elemente, die letzte Anmeldezeit und die Speicherlimits. Anhand dieser Kennzahlen erkennen Sie schnelles Postfachwachstum, Konten nahe am Kontingent und Migrationskandidaten, bevor daraus ein Problem wird.

Benennen Sie jeden Export mit Mandanten-ID, Zeitfenster und Skriptversion, zum Beispiel users_{TenantId}_{Window}_{ScriptVersion}.csv. So bleiben die Dateien nachvollziehbar und auditfähig, wenn Sie Berichte für viele Kund:innen verwalten.

Fügen Sie Benutzer- und Aktivitätsauszüge Ihren Compliance-Paketen bei, um Zugriffsaufzeichnungen zu dokumentieren, und zeigen Sie in QBRs Adoptionstrends oder Risikoreduzierung auf. Durch die Archivierung dieser Berichte entsteht außerdem eine faktenbasierte Ausgangsbasis für Analysen nach Vorfällen.

Um Benutzerberichte aus Microsoft 365 zu erfassen, benötigt Ihre Azure AD-App oder Ihr Administratorkonto Graph-Berechtigungen wie Reports.Read.All, User.Read.All und Directory.Read.All. Für Postfach-Kennzahlen können zusätzlich Exchange Online-Rollen wie View-Only Recipients oder Mailbox Search erforderlich sein.

Microsoft 365 drosselt API-Anfragen bei hoher Last, und ein Skript ohne Wiederholungslogik kann mitten im Durchlauf abbrechen. Mit Backoff-Konfigurationen bleiben Ihre Erfassungsjobs auch dann stabil, wenn Anfragen begrenzt werden.

Das könnte Sie auch interessieren

Sind Sie bereit, die schwierigsten Aufgaben der IT zu vereinfachen?

NinjaOne Allgemeine Geschäftsbedingungen für Skripte

Indem Sie unten auf die Schaltfläche „Ich akzeptiere“ klicken, erklären Sie Ihr Einverständnis mit den folgenden rechtlichen Bedingungen sowie mit unseren Nutzungsbedingungen:

  • Eigentumsrechte: NinjaOne besitzt und wird weiterhin alle Rechte, Titel und Interessen an dem Skript (einschließlich des Urheberrechts) behalten. NinjaOne gewährt Ihnen eine eingeschränkte Lizenz zur Nutzung des Skripts in Übereinstimmung mit diesen rechtlichen Bedingungen.
  • Einschränkung der Nutzung: Sie dürfen das Skript nur für Ihre legitimen persönlichen oder internen Geschäftszwecke verwenden und es nicht an Dritte weitergeben.
  • Verbot der Wiederveröffentlichung: Sie sind unter keinen Umständen berechtigt, das Skript in einer Skriptbibliothek, die einem anderen Softwareanbieter gehört oder von diesem kontrolliert wird, erneut zu veröffentlichen.
  • Gewährleistungsausschluss: Das Skript wird „wie gesehen“ und „wie verfügbar“ bereitgestellt, ohne jegliche Garantie. NinjaOne gibt keine Versprechen oder Garantien, dass das Skript frei von Fehlern ist oder dass es Ihre speziellen Bedürfnisse oder Erwartungen erfüllt.
  • Risikoübernahme: Die Verwendung des Skripts erfolgt auf eigene Gefahr. Sie erkennen an, dass die Nutzung des Skripts mit bestimmten Risiken verbunden ist, und Sie verstehen und übernehmen jedes dieser Risiken.
  • Verzicht und Freigabe: Sie machen NinjaOne nicht für nachteilige oder unbeabsichtigte Folgen verantwortlich, die sich aus Ihrer Nutzung des Skripts ergeben, und Sie verzichten auf alle gesetzlichen oder billigkeitsrechtlichen Rechte oder Rechtsmittel, die Sie gegen NinjaOne im Zusammenhang mit Ihrer Nutzung des Skripts haben könnten.
  • EULA: Wenn Sie ein NinjaOne-Kunde sind, unterliegt Ihre Nutzung des Skripts dem für Sie geltenden Endbenutzer-Lizenzvertrag (EULA).