Aktivieren oder Deaktivieren des Zugriffs auf Exchange Online PowerShell
Exchange Online PowerShell ist die Verwaltungsschnittstelle, mit der Administratoren den Exchange Online Teil eines Microsoft 365-organization über die Befehlszeile verwalten können (einschließlich vieler Sicherheitsfeatures in Exchange Online Protection und Microsoft Defender for Office 365).
Standardmäßig dürfen alle Konten in Microsoft 365 Exchange Online PowerShell verwenden. Dieser Zugriff bietet Benutzern keine Administratorfunktionen. Sie sind weiterhin durch die rollenbasierte Zugriffssteuerung (Role Based Access Control, RBAC) eingeschränkt. Beispielsweise können sie einige Einstellungen für ihr eigenes Postfach konfigurieren und Verteilergruppen verwalten, die sie besitzen, aber nicht viel anderes.
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 organization 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 organization bei. Globaler Administrator ist eine hoch privilegierte Rolle, 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.com
deaktiviert.
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.com
aktiviert.
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 der Exchange Online PowerShell-Zugriffs-status für Benutzer
Tipp
Die neuere EXOModuleEnabled
Eigenschaft kann nicht mit dem Filter-Parameter im Cmdlet Get-User verwendet werden, aber die Werte der EXOModuleEnabled
Eigenschaft und der älteren RemotePowerShellEnabled
Eigenschaft sind immer identisch. Verwenden Sie daher die RemotePowerShellEnabled
Eigenschaft mit dem Filter-Parameter im Get-User-Cmdlet.
Um die PowerShell-Zugriffs-status 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 die Exchange Online PowerShell-Zugriffs-status 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 'RemotePowerShellEnabled -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 'RemotePowerShellEnabled -eq $true'