Symptom
När du kör skript eller cmdlets genom att använda Microsoft Exchange Online via fjärr-PowerShell för att ändra stora datauppsättningar, uppstår något eller båda av följande symptom:
-
Det tar lång tid att köra skript eller cmdlets.
-
Du ser följande varningsmeddelande om begränsning i Exchange Online PowerShell:
VARNING! Mikrofördröjning används. Faktisk fördröjning: <X>, ...
VARNING! Mikrofördröjning används. Faktisk fördröjning: <X>, tvingade
Orsak
Detta är avsiktligt. Begränsningen används för att förhindra skadliga eller oavsiktliga angrepp mot tjänsten som kan påverka servicenivåavtal. Du kan ignorera varningsmeddelandet.
Lösning
Prova följande alternativ i den angivna ordningen för att komma runt problemet.
Alternativ 1
Kör ett diagnostikverktyg för självhjälp i Microsoft 365 för att uppdatera Exchange för Remote PowerShell-begränsningsprincipen för klientorganisationen. Mer information finns i Diagnostik för självhjälp för problem i Exchange Online och Outlook.
Alternativ 2
Använd Exchange Online PowerShell V2-cmdlets för att köra jobbet. Mer information finns i Om Exchange Online PowerShell V2-modulen.
Alternativ 3
Lägg till följande strömsparlägeselement i skripten eller cmdletarna. Det här elementet gör att skriptet eller cmdleten går långsammare inom begränsningsgränsens gränser.Start-Sleep -m <Time in milliseconds> I följande exempel lagras listan över postlådor som hämtas med hjälp av cmdleten Get-Mailbox i en variabel. Den här variabeln används för att köra en åtgärd på alla postlådor. Den här typen av jobb begränsas vanligtvis. Genom att lägga till strömsparlägeselementet i cmdleten kan du försöka hålla dig inom begränsningsgränsens gränser.$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}
Alternativ 4
Använd RobustCloudCommand-modulen för att köra skripten eller cmdletarna. Du kan installera den här modulen med hjälp av den Install-Module cmdleten. Här är ett exempel på processen som använder RobustCloudCommand-modulen för att lägga till behörigheter i flera gemensamma mappar:
-
Exportera listan med gemensamma mappar till filen PFList.csv genom att köra följande cmdlet: Invoke-Command -Scriptblock {Get-PublicFolder -Recurse -Resultsize Unlimited | Select-Object -property Name,Identity} -Session (Get-Pssession) |Export-csv -Path C:\Temp\PFList.csv -NoTypeInformation
-
Installera RobustCloudCommand-modulen genom att köra följande cmdlet: Install-Module -Name RobustCloudCommand -Force
-
Importera listan med gemensamma mappar som skapades i steg 1 till den nya $PFList genom att köra följande cmdlet: $PFList = Import-Csv C:\Temp\PFList.csv
-
Lägg till behörigheter för varje offentlig mapp $PFList den här variabeln genom att köra följande cmdlet. Den här cmdleten skapar LogFileName-loggen som innehåller information om cmdleten och eventuella fel som kan uppstå.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
Obs!: Vanligtvis kan dessa cmdlets köras i timmar eller till och med dagar, beroende på antalet objekt som ändras.
Mer information
Behöver du fortfarande hjälp? Gå till Microsoft Community.