Symptomer
Når du kjører skript eller cmdleter ved hjelp av Microsoft Exchange Online ekstern PowerShell til å endre store datasett, opplever du enten eller begge av følgende symptomer:
-
Skript eller cmdleter tar lang tid å kjøre.
-
Du ser følgende begrensningsadvarsel i Exchange Online PowerShell:
ADVARSEL: Mikroforsinkelse er brukt. Faktisk forsinket: <X> msecs, ...
ADVARSEL: Mikroforsinkelse er brukt. Faktisk forsinket: <X> msecs, Fremtvunget
Årsak
Denne virkemåten er som standard. Begrensning brukes til å forhindre skadelige eller utilsiktede angrep mot tjenesten som kan påvirke tjenestenivåavtaler. Du kan trygt ignorere advarselen.
Omgå problemet
Hvis du vil omgå dette problemet, kan du prøve følgende alternativer i den angitte rekkefølgen.
Alternativ 1
Kjør en selvhjelpsdiagnose i Microsoft 365 for å oppdatere policyen for ekstern PowerShell-begrensning for Exchange PowerShell for leieren. Hvis du vil ha mer informasjon, kan du se Selvhjelpsdiagnose for problemer i Exchange Online og Outlook.
Alternativ 2
Bruk Exchange Online PowerShell V2-cmdleter til å kjøre jobben. Hvis du vil ha mer informasjon, kan du se Exchange Online PowerShell V2-modulen.
Alternativ 3
Legg til følgende hvilemoduselement i skriptene eller cmdletene. Dette elementet reduserer skriptet eller cmdleten til innenfor grensene for begrensningsgrensen.
Start-Sleep -m <Time in milliseconds>
I eksemplet nedenfor lagres listen over postbokser som hentes ved hjelp av Get-Mailbox cmdlet, lagret i en variabel. Denne variabelen brukes til å kjøre en handling på alle postboksene. Denne typen jobb er vanligvis begrensning. Ved å legge til hvilemoduselementet i cmdleten, kan du prøve å holde deg innenfor grensene for begrensning.
$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}
Alternativ 4
Bruk RobustCloudCommand-modulen til å kjøre skriptene eller cmdletene. Du kan installere denne modulen ved hjelp av den innebygde Install-Module cmdleten.
Her er et eksempel på prosessen som bruker RobustCloudCommand-modulen til å legge til tillatelser i flere fellesmapper:
-
Eksporter listen over fellesmapper til PFList.csv ved å kjøre følgende 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 -
Installer RobustCloudCommand-modulen ved å kjøre følgende cmdlet:
Install-Module -Name RobustCloudCommand -Force -
Importer listen over fellesmapper som ble generert i trinn 1 til $PFList variabelen ved å kjøre følgende cmdlet:
$PFList = Import-Csv C:\Temp\PFList.csv -
Legg til tillatelser for hver fellesmappe i $PFList ved å kjøre følgende cmdlet. Denne cmdleten oppretter LogFileName-loggen som inneholder detaljene for cmdleten og eventuelle feil som kan oppstå.
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!: Vanligvis kan disse cmdletene kjøre i timer eller til og med dager, avhengig av antall objekter som er endret.
Mer informasjon
Trenger du fremdeles hjelp? Gå til Microsoft Community.