Gilt für
Exchange Online

Problembeschreibung

Wenn Sie Skripts oder Cmdlets mithilfe von Microsoft Exchange Online über Remote-PowerShell ausführen, um große Datasets zu ändern, treten entweder oder beide der folgenden Symptome auf:

  • Die Ausführung von Skripts oder Cmdlets dauert lange.

  • Die folgende Drosselungswarnung wird in Exchange Online PowerShell angezeigt:

    WARNUNG: Mikroverzögerung angewendet. Tatsächlich verzögert: <X> msec, ... WARNUNG: Mikroverzögerung angewendet. Tatsächliche Verzögerung: <X> msec, Erzwungen

Ursache

Es handelt sich hierbei um ein beabsichtigtes Verhalten. Die Drosselung wird verwendet, um böswillige oder unbeabsichtigte Angriffe auf den Dienst zu verhindern, die sich auf Vereinbarungen zum Servicelevel auswirken könnten. Sie können die Warnmeldung ignorieren.

Problemumgehung 

Um dieses Verhalten zu umgehen, probieren Sie die folgenden Optionen in der angegebenen Reihenfolge aus.

Option 1

Führen Sie eine Selbsthilfediagnose im Microsoft 365 Admin Center aus, um die Exchange Remote PowerShell-Einschränkungsrichtlinie für Ihren Mandanten zu aktualisieren. Weitere Informationen finden Sie unter Selbsthilfe Diagnose für Probleme in Exchange Online und Outlook.

Option 2

Verwenden Sie Exchange Online PowerShell V2-Cmdlets, um den Auftrag auszuführen. Weitere Informationen finden Sie unter Informationen zum Exchange Online PowerShell V2-Moduls.

Option 3

Fügen Sie den Skripts oder Cmdlets das folgende Sleep-Element hinzu. Dieses Element verlangsamt das Skript oder Cmdlet innerhalb der Grenzen des Drosselungslimits.Start-Sleep -m <Time in milliseconds> Im folgenden Beispiel wird die Liste der Postfächer, die mit dem Cmdlet Get-Mailbox abgerufen werden, in einer Variablen gespeichert. Diese Variable wird verwendet, um eine Aktion für alle Postfächer auszuführen. Diese Art von Auftrag wird in der Regel gedrosselt. Durch Hinzufügen des Sleep-Elements zum Cmdlet können Sie versuchen, innerhalb der Grenzen des Drosselungslimits zu bleiben.$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}

Option 4

Verwenden Sie das RobustCloudCommand-Modul , um die Skripts oder Cmdlets auszuführen. Sie können dieses Modul mithilfe des integrierten Cmdlets Install-Module installieren.Hier ist ein Beispiel für den Prozess, der das RobustCloudCommand-Modul verwendet, um Berechtigungen für mehrere öffentliche Ordner hinzuzufügen:

  1. Exportieren Sie die Liste der öffentlichen Ordner in die datei PFList.csv, indem Sie das folgende Cmdlet ausführen:Invoke-Command -Scriptblock {Get-PublicFolder -Recurse -Resultsize Unlimited | Select-Object -property Name,Identity} -Session (Get-Pssession) |Export-csv -Path C:\Temp\PFList.csv -NoTypeInformation

  2. Installieren Sie das RobustCloudCommand-Modul, indem Sie das folgende Cmdlet ausführen:Install-Module -Name RobustCloudCommand -Force

  3. Importieren Sie die Liste der öffentlichen Ordner, die in Schritt 1 generiert wurde, in die variable $PFList , indem Sie das folgende Cmdlet ausführen:$PFList = Import-Csv C:\Temp\PFList.csv

  4. Fügen Sie Berechtigungen für jeden öffentlichen Ordner in der variablen $PFList hinzu, indem Sie das folgende Cmdlet ausführen. Dieses Cmdlet erstellt das LogFileName-Protokoll, das die Details des Cmdlets und ggf. auftretende Fehler enthält.Start-RobustCloudCommand -LogFile C:\Temp\LogFileName.log -Recipients $PFList -ScriptBlock {Add-PublicFolderClientPermission -Identity $input.identity.tostring() -User User@Contoso.com -AccessRights CreateItems} -IdentifyingProperty Identity -UserPrincipalName Admin@contoso.com

Hinweis: In der Regel können diese Cmdlets stunden- oder sogar tagelang ausgeführt werden, abhängig von der Anzahl der geänderten Objekte.

Weitere Informationen

Weitere Hilfe erforderlich? Besuchen Sie die Microsoft Community.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.