Aktivieren oder Deaktivieren des Zugriffs auf Exchange Online PowerShell

Exchange Online PowerShell ist die Verwaltungsschnittstelle, mit der Administratoren den Exchange Online-Teil einer Microsoft 365-Organisation über die Befehlszeile verwalten können (einschließlich vieler Sicherheitsfeatures in Exchange Online Protection und Microsoft Defender für Office 365).

Standardmäßig dürfen alle Konten in Microsoft 365 Exchange Online PowerShell verwenden. Dieser Zugriff bietet Benutzern keine Verwaltungsfunktionen in einer Organisation. Sie sind weiterhin durch die rollenbasierte Zugriffssteuerung (Role Based Access Control, RBAC) eingeschränkt (sie können z. B. Einstellungen für ihr eigenes Postfach konfigurieren oder Verteilergruppen verwalten, die sie besitzen, aber nicht viel mehr).

Administratoren können die Verfahren in diesem Artikel verwenden, um die Möglichkeit eines Benutzers, eine Verbindung mit Exchange Online PowerShell herzustellen, zu deaktivieren oder zu aktivieren.

Was sollten Sie wissen, bevor Sie beginnen?

  • Geschätzte Zeit bis zum Abschließen der einzelnen Verfahren: Weniger als 5 Minuten

  • Die Verfahren in diesem Artikel sind nur in Exchange Online PowerShell verfügbar. Wie Sie eine Verbindung mit Exchange Online PowerShell herstellen, finden Sie unter Herstellen einer Verbindung mit Exchange Online PowerShell.

  • Ihnen müssen Berechtigungen zugewiesen werden, bevor Sie die Verfahren in diesem Artikel ausführen können. Sie haben folgende Optionen:

    • Exchange Online RBAC: Mitgliedschaft in den Rollengruppen Organisationsverwaltung oder Empfängerverwaltung .
    • Microsoft Entra RBAC: Durch die Mitgliedschaft in den Rollen Exchange-Administrator oder Globaler Administrator* erhalten Benutzer die erforderlichen Berechtigungen und Berechtigungen für andere Features in Microsoft 365.

    Wichtig

    Wenn Sie den PowerShell-Zugriff in Ihrer cloudbasierten Organisation schnell und global deaktivieren möchten, sollten Sie sich vor Befehlen wie Get-User | Set-User -EXOModuleEnabled $false hüten, ohne Administratorkonten in Betracht zu ziehen. Verwenden Sie die Verfahren in diesem Artikel, um den PowerShell-Zugriff selektiv zu entfernen oder den Zugriff für diejenigen beizubehalten, die ihn benötigen, indem Sie die folgende Syntax in Ihrem globalen Entfernungsbefehl verwenden: Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.onmicrosoft.com' -and $_.UserPrincipalName -ne 'admin2@contoso.onmicrosoft.com'...} | Set-User -EXOModuleEnabled $false.

    Wenn Sie sich versehentlich den PowerShell-Zugriff sperren, erstellen Sie ein neues Administratorkonto im Microsoft 365 Admin Center, und verwenden Sie dieses Konto dann, um sich selbst PowerShell-Zugriff zu gewähren, indem Sie die Verfahren in diesem Artikel verwenden.

    * Microsoft empfiehlt die Verwendung von Rollen mit den geringsten Berechtigungen. Die Verwendung von Konten mit niedrigeren Berechtigungen trägt zur Verbesserung der Sicherheit für Ihre Organisation bei. Globaler Administrator ist eine Rolle mit hohen Berechtigungen, die auf Notfallszenarien beschränkt werden sollte, wenn Sie keine vorhandene Rolle verwenden können.

  • Ausführliche Informationen zur OPATH-Filtersyntax in Exchange Online finden Sie unter Zusätzliche Informationen zur OPATH-Syntax.

Tipp

Liegt ein Problem vor? Bitten Sie in den Exchange-Foren um Hilfe. Sie finden die Foren unter folgenden Links: Exchange Online oder Exchange Online Protection.

Aktivieren oder Deaktivieren des Remote-PowerShellzugriffs für einen Benutzer

In diesem Beispiel wird der Zugriff auf Exchange Online PowerShell für den Benutzer david@contoso.onmicrosoft.comdeaktiviert.

Set-User -Identity david@contoso.onmicrosoft.com -EXOModuleEnabled $false

In diesem Beispiel wird der Zugriff auf Exchange Online PowerShell für den Benutzer chris@contoso.onmicrosoft.comaktiviert.

Set-User -Identity chris@contoso.onmicrosoft.com -EXOModuleEnabled $true

Deaktivieren des Remote-PowerShellzugriff für viele Benutzer

Ihnen stehen folgende Optionen zur Verfügung, um den Remote-PowerShellzugriff für eine bestimmte Gruppe vorhandener Benutzer zu verhindern:

  • Filtern von Benutzern anhand eines vorhandenen Attributs: Bei dieser Methode wird davon ausgegangen, dass alle Zielbenutzerkonten ein eindeutiges filterbares Attribut verwenden. Einige Attribute, z. B. Titel, Abteilung, Adressinformationen und Telefonnummer, sind nur über das Cmdlet Get-User verfügbar. Andere Attribute, z. B. CustomAttribute1 bis CustomAttribute15, sind nur über das Cmdlet Get-Mailbox verfügbar.
  • Verwenden einer Liste bestimmter Benutzer: Nachdem Sie die Liste bestimmter Benutzer generiert haben, können Sie diese Liste verwenden, um deren Zugriff auf Exchange Online PowerShell zu deaktivieren.

Filtern der Benutzer auf Grundlage eines vorhandenen Attributs

Verwenden Sie die folgende Syntax, um den Zugriff auf Exchange Online PowerShell für eine beliebige Anzahl von Benutzern basierend auf einem vorhandenen Attribut zu deaktivieren:

$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>

$<VariableName> | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}

In diesem Beispiel wird der Remote-PowerShellzugriff für alle Benutzer entfernt, deren Attribut Title den Wert "Sales Associate" enthält.

$DSA = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like 'Sales Associate*')"

$DSA | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}

Verwenden einer Liste spezieller Benutzer

Verwenden Sie folgende Syntax, um den Remote-PowerShellzugriff für eine Liste spezieller Benutzer zu deaktivieren.

$<VariableName> = Get-Content <text file>

$<VariableName> | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}

Im folgenden Beispiel wird die Textdatei C:\My Documents\NoPowerShell.txt verwendet, um die Benutzer anhand ihrer Konten zu identifizieren. Die Textdatei muss in jeder Zeile wie folgt ein Konto enthalten:

akol@contoso.onmicrosoft.com
tjohnston@contoso.onmicrosoft.com
kakers@contoso.onmicrosoft.com

Nachdem Sie die Textdatei mit den Benutzerkonten aufgefüllt haben, die Sie aktualisieren möchten, führen Sie die folgenden Befehle aus:

$NoPS = Get-Content "C:\My Documents\NoPowerShell.txt"

$NoPS | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}

Anzeigen des Exchange Online PowerShell-Zugriffsstatus für Benutzer

Um den PowerShell-Zugriffsstatus für einen bestimmten Benutzer anzuzeigen, ersetzen <Sie UserIdentity> durch den Namen oder benutzerprinzipalnamen (UPN) des Benutzers, und führen Sie den folgenden Befehl aus:

Get-User -Identity "<UserIdentity>" | Format-List EXOModuleEnabled

Führen Sie den folgenden Befehl aus, um den Exchange Online PowerShell-Zugriffsstatus für alle Benutzer anzuzeigen:

Get-User -ResultSize unlimited | Format-Table -Auto DisplayName,EXOModuleEnabled

Führen Sie den folgenden Befehl aus, um alle Benutzer anzuzeigen, die keinen Zugriff auf Exchange Online PowerShell haben:

Get-User -ResultSize unlimited -Filter 'EXOModuleEnabled -eq $false'

Führen Sie den folgenden Befehl aus, um alle Benutzer anzuzeigen, die Zugriff auf Exchange Online PowerShell haben:

Get-User -ResultSize unlimited -Filter 'EXOModuleEnabled -eq $true'