Steuern des Remote-PowerShell-Zugriffs auf Exchange-Server

Mithilfe von Remote PowerShell in Microsoft Exchange können Sie Ihre Exchange-organization von einem Remotecomputer aus verwalten, der sich in Ihrem internen Netzwerk oder über das Internet befindet. Sie können die Möglichkeit eines Benutzers, mithilfe von Remote-PowerShell und der Exchange-Verwaltungsshell eine Verbindung mit einem Exchange-Server herzustellen, deaktivieren oder aktivieren. Weitere Informationen zu Remote-PowerShell finden Sie unter Exchange Server PowerShell (Exchange-Verwaltungsshell).

Informationen zu weiteren Verwaltungsaufgaben im Zusammenhang mit der Remote-PowerShell finden Sie unter Herstellen einer Verbindung mit Exchange-Servern mithilfe der Remote-PowerShell.

Was sollten Sie wissen, bevor Sie beginnen?

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

  • Standardmäßig haben alle Benutzerkonten Zugriff auf die Remote-PowerShell. Um jedoch die Remote-PowerShell tatsächlich zum Herstellen einer Verbindung mit einem Exchange-Server zu verwenden, muss der Benutzer ein Mitglied einer Verwaltungsrollengruppe oder direkt einer Verwaltungsrolle zugeordnet sein, die dem Benutzer die Ausführung von Exchange-Cmdlets ermöglicht. Weitere Informationen zu Rollengruppen und Verwaltungsrollen finden Sie unter Exchange Server Berechtigungen.

    Wichtig

    Wenn Sie schnell und global den PowerShell-Remotezugriff in Ihrem organization deaktivieren möchten, sollten Sie sich vor Befehlen wie Get-User | Set-User -RemotePowerShellEnabled $false z. B. hüten, ohne Administratorkonten, Dienstkonten oder Integritätsüberwachungspostfächer zu berücksichtigen, die PowerShell-Remotezugriff benötigen. Verwenden Sie die Verfahren in diesem Artikel, um den Remotezugriff von PowerShell 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.com' -and $_.UserPrincipalName -ne 'admin2@contoso.com'...} | Set-User -RemotePowerShellEnabled $false.

    Wenn Sie sich versehentlich den PowerShell-Remotezugriff sperren, müssen Sie die ansonsten dringend abgeratene Methode zum direkten Laden des Exchange-Verwaltungsshell-Snap-Ins (Add-PSSnapIn Microsoft.Exchange.Management.PowerShell.SnapIn) verwenden, um sich selbst Zugriff zu gewähren. Minimieren Sie die Zeit und die Änderungen, die Sie mit dieser Methode verwenden. Korrigieren Sie ein Konto, und öffnen Sie die Exchange-Verwaltungsshell, um weitere Änderungen vorzunehmen.

  • Sie können powerShell nur zum Ausführen dieser Verfahren verwenden. Informationen über das Öffnen der Exchange-Verwaltungsshell in Ihrer lokalen Exchange-Organisation finden Sie unter Open the Exchange Management Shell.

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

  • Bevor Sie dieses Verfahren bzw. diese Verfahren ausführen können, müssen Ihnen die entsprechenden Berechtigungen zugewiesen werden. Informationen dazu, welche Berechtigungen Sie benötigen, finden Sie im Artikel Exchange-Infrastruktur und PowerShell-Berechtigungen im Eintrag "Remote PowerShell".

  • Wenn Sie Tools von Drittanbietern verwenden, um E-Mail-Adressen von Benutzern anzupassen, müssen Sie die E-Mail-Adressrichtlinien für die betroffenen Benutzer deaktivieren, bevor Sie die Verfahren in diesem Artikel ausführen. Andernfalls ändern die Befehle Set-User die E-Mail-Adressen der Benutzer so, dass sie der entsprechenden E-Mail-Adressrichtlinie entsprechen. Um E-Mail-Adressrichtlinien für Benutzer zu deaktivieren, legen Sie den Wert des Parameters EmailAddressPolicyEnabled im Cmdlet Set-Mailbox auf $false fest.

Tipp

Liegt ein Problem vor? Bitten Sie in den Exchange Server Foren um Hilfe.

Anzeigen des PowerShell-Remotezugriffs für Benutzer

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

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

Führen Sie den folgenden Befehl aus, um die powerShell-Remotezugriffs-status für alle Benutzer anzuzeigen:

Get-User -ResultSize unlimited | Format-Table Name,DisplayName,RemotePowerShellEnabled -AutoSize

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

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

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

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

Verwenden der Exchange-Verwaltungsshell zum Aktivieren oder Deaktivieren des Remote-PowerShell-Zugriffs für einen Benutzer

In diesem Beispiel wird der PowerShell-Remotezugriff für den Benutzer therese Lindqvist deaktiviert.

Set-User "Therese Lindqvist" -RemotePowerShellEnabled $false

In diesem Beispiel wird der Remote-PowerShell-Zugriff für den Benutzer namens Sirirat Kitjakarn aktiviert.

Set-User "Sirirat Kitjakarn" -RemotePowerShellEnabled $true

Verwenden der Exchange-Verwaltungsshell zum Deaktivieren des PowerShell-Remotezugriffs 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 wie Titel, Abteilung, Adressinformationen und Telefonnummer sind nur sichtbar, wenn Sie das Cmdlet Get-User verwenden. Andere Attribute, wie "CustomAttribute1-15", sind nur sichtbar, wenn Sie das Cmdlet Get-Mailbox verwenden.

  • Verwenden einer Liste bestimmter Benutzer: Nachdem Sie die Liste bestimmter Benutzer generiert haben, können Sie diese Liste verwenden, um deren Zugriff auf Remote-PowerShell zu deaktivieren.

Filtern der Benutzer auf Grundlage eines vorhandenen Attributs

Verwenden Sie die folgende Syntax, um den Zugriff auf Remote-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 $_ -RemotePowerShellEnabled $false}

In diesem Beispiel wird der Zugriff auf Remote-PowerShell für alle Benutzer entfernt, deren Title-Attribut 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 $_ -RemotePowerShellEnabled $false}

Verwenden einer Liste spezieller Benutzer

Verwenden Sie die folgende Syntax, um den Zugriff auf Remote-PowerShell für eine Liste bestimmter Benutzer zu deaktivieren:

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

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

In diesem Beispiel wird die Textdatei C:\My Documents\NoPowerShell.txt verwendet, um die Benutzer anhand ihres Benutzerprinzipalnamens (UPN) zu identifizieren. Die Textdatei muss einen UPN in jeder Zeile wie folgt enthalten:

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

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

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

$NPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}