Microsoft Entra PowerShell

Overview

Microsoft Entra PowerShell (Modul Microsoft.Entra) ist ein szenarioorientiertes Modul für die Verwaltung und Automatisierung von Microsoft Entra ID: Benutzer, Gruppen, Anwendungen, Service Principals, Geräte, Lizenzen und Richtlinien. Es baut auf dem Microsoft Graph PowerShell SDK auf, gehört zu dessen Familie und lässt sich mit dessen Cmdlets frei kombinieren. Das Modul ist allgemein verfügbar und wird offen auf GitHub entwickelt, aktuell ist Version 1.3.0 vom 18. Mai 2026.

Hauptzweck ist der Umstieg alter Skripte: Die Vorgängermodule AzureAD und MSOnline sind abgekündigt, Microsoft hatte ihre Abschaltung für die Zeit nach dem 30. März 2025 angekündigt. Laut Microsoft ist Entra PowerShell zu über 98 Prozent kompatibel mit dem AzureAD-Modul und erreicht über 80 Prozent Parität zu den MSOnline-Cmdlets.

Abgrenzung: Das Graph PowerShell SDK bildet die Graph-API auf niedriger Ebene ab, Entra PowerShell bietet für Entra-Aufgaben lesbarere Cmdlets mit Pipeline-Unterstützung. Laut Microsoft ist die Wahl zwischen beiden eine Frage der Vorliebe, bestehende Graph-Skripte musst Du nicht umschreiben. Microsoft Entra ID ist der Verzeichnisdienst selbst, Entra Connect synchronisiert lokale AD-Identitäten.

How it works

Microsoft.Entra ist ein Metamodul mit neun Untermodulen: Applications, Authentication, CertificateBasedAuthentication, DirectoryManagement, Governance, Groups, Reports, SignIns und Users, jeweils als Microsoft.Entra.<Bereich>. Microsoft.Entra nutzt Microsoft Graph v1.0, das separate Modul Microsoft.Entra.Beta die Beta-Endpunkte. Der Ablauf:

  1. Installation: Install-Module -Name Microsoft.Entra -Repository PSGallery -Scope CurrentUser, alternativ nur einzelne Untermodule wie Microsoft.Entra.Users.
  2. Anmeldung: Connect-Entra -Scopes 'User.Read.All' meldet Dich mit den angeforderten Graph-Berechtigungen an. Mit -ClientId nutzt Du eine eigene App-Registrierung, außerdem werden eigene Service Principals und benutzerzugewiesene Managed Identities unterstützt. Die Anmeldung gilt nur für die aktuelle Sitzung.
  3. Verwaltung: Cmdlets wie Get-EntraUser -Filter arbeiten mit lesbaren Parametern und der PowerShell-Pipeline.
  4. Migration: Test-EntraScript analysiert ein altes AzureAD-Skript und meldet inkompatible Befehle mit Zeilennummer. Enable-EntraAzureADAlias aktiviert für die laufende Sitzung Aliase, sodass Befehle wie Get-AzureADApplication weiterlaufen. Meist ersetzt Du nur den Block mit Connect-AzureAD.

Bekannte Unterschiede: -All ist ein Switch (-All statt -All:$true), -Filter und -SearchString verhalten sich nicht in jedem Fall wie im AzureAD-Modul, und die Ausgabeobjekte weichen leicht ab.

Benefits

  • Schneller Umstieg: Dank Aliasen und Test-EntraScript laufen viele AzureAD-Skripte mit wenigen geänderten Zeilen weiter, statt komplett auf Graph-Cmdlets umgeschrieben zu werden
  • Lesbare Cmdlets: Szenariobasierte Befehle und Parameter liegen näher an der Sprache des Admins als die aus der API generierten Graph-SDK-Cmdlets
  • Kombinierbar: Weil das Modul auf dem Graph PowerShell SDK basiert, mischst Du Entra- und Graph-Cmdlets in einem Skript
  • Moderne Anmeldung: Delegierte Scopes, eigene App-Registrierungen und Managed Identities ersetzen die Anmeldewege der Altmodule

Practical example

Ein Handelsunternehmen mit 600 Mitarbeitenden betreibt seit Jahren Skripte für Onboarding, Gruppenpflege und Lizenzberichte auf Basis des AzureAD-Moduls, die wegen der Abkündigung umgestellt werden müssen. Die IT lässt jedes Skript zunächst durch Test-EntraScript laufen, ersetzt Connect-AzureAD durch Connect-Entra mit den nötigen Scopes und aktiviert Enable-EntraAzureADAlias. Die gemeldeten Sonderfälle, vor allem -All:$true, passt das Team von Hand an. Nach zwei Wochen laufen alle Skripte wieder, neue Skripte entstehen direkt mit den Entra-Cmdlets.

Things to keep in mind

  • Berechtigungen sind nicht vorab autorisiert, Du erteilst sie per Consent: Fordere nur die Scopes an, die das Skript tatsächlich braucht
  • Für unbeaufsichtigte Automatisierung eine eigene App-Registrierung oder eine Managed Identity nutzen statt eines Benutzerkontos
  • Microsoft.Entra und Microsoft.Entra.Beta nicht gemischt betreiben, Konflikte zwischen beiden löst nur die Deinstallation einer Variante
  • Update-Module entfernt alte Versionen nicht, alte Stände regelmäßig mit Uninstall-Module aufräumen
  • Den Aliasmodus als Übergang verstehen: Enable-EntraAzureADAlias gilt nur pro Sitzung, neue Skripte direkt mit Entra-Cmdlets schreiben

Licensing & availability

Das Modul ist kostenlos, wird über die PowerShell Gallery verteilt und unterstützt Windows PowerShell 5.1 sowie PowerShell 7 (empfohlen) unter Windows, Linux und macOS. Das Modul selbst setzt keine Lizenz voraus, die verwalteten Funktionen unterliegen der Lizenzierung von Microsoft Entra ID im Tenant. Stand: Oktober 2026.

Conclusion

Microsoft Entra PowerShell ist der direkte Migrationspfad für AzureAD- und MSOnline-Skripte. Für neue Automatisierungen wählst Du zwischen Entra-Cmdlets und Graph PowerShell SDK nach Lesbarkeit, beide lassen sich kombinieren.