Symptomen
Wanneer u scripts of cmdlets met behulp van Microsoft Exchange Online externe PowerShell gebruikt om grote gegevenssets te wijzigen, ervaart u een of beide van de volgende symptomen:
-
Scripts of cmdlets duren lang.
-
U ziet het volgende beperkingswaarschuwingsbericht in Exchange Online PowerShell:
WAARSCHUWING: Microvertraging toegepast. Werkelijke vertraging: <X> msecs, ...
WAARSCHUWING: Microvertraging toegepast. Werkelijke vertraging: <X> msecs, Afgedwongen
Oorzaak
Dit gedrag is inherent aan het ontwerp van het product. De beperking wordt gebruikt om schadelijke of onbedoelde aanvallen op de service te voorkomen die van invloed kunnen zijn op serviceovereenkomsten. U kunt het waarschuwingsbericht veilig negeren.
Tijdelijke oplossing
Probeer de volgende opties in de opgegeven volgorde om dit gedrag te voorkomen.
Optie 1
Voer een zelfhulpdiagnose uit in Microsoft 365 beheercentrum om het externe PowerShell-beperkingsbeleid Exchange voor uw tenant bij te werken. Zie Self-help diagnostics for issues in Exchange Online and Outlook.
Optie 2
Gebruik Exchange Online PowerShell V2-cmdlets om de taak uit te voeren. Zie Info over de Exchange Online PowerShell V2-modulevoor meer informatie.
Optie 3
Voeg het volgende slaapelement toe aan de scripts of cmdlets. Dit element vertraagt het script of de cmdlet tot binnen de grenzen van de beperkingslimiet.Start-Sleep -m <Time in milliseconds> In het volgende voorbeeld wordt de lijst met postvakken die worden opgehaald met de Get-Mailbox in een variabele opgeslagen. Deze variabele wordt gebruikt om een actie uit te voeren op alle postvakken. Dit type taak wordt meestal beperkt. Door het slaapelement toe te voegen aan de cmdlet, kunt u proberen binnen de grenzen van de beperkingslimiet te blijven.$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}
Optie 4
Gebruik de RobustCloudCommand-module om de scripts of cmdlets uit te voeren. U kunt deze module installeren met behulp van de ingebouwde Install-Module cmdlet. Hier is een voorbeeld van het proces waarbij de RobustCloudCommand-module wordt gebruikt om machtigingen toe te voegen aan meerdere openbare mappen:
-
Exporteert de lijst met openbare mappen naar het PFList.csv door de volgende cmdlet uit te voeren: Invoke-Command -Scriptblock {Get-PublicFolder -Recurse -Resultsize Unlimited | Select-Object -property Name,Identity} -Session (Get-Pssession) |Export-csv -Path C:\Temp\PFList.csv -NoTypeInformation
-
Installeer de RobustCloudCommand-module door de volgende cmdlet uit teInstall-Module -Name RobustCloudCommand -Force
-
Importeer de lijst met openbare mappen die in stap 1 is gegenereerd naar de $PFList variabele door de volgende cmdlet uit te$PFList = Import-Csv C:\Temp\PFList.csv
-
Voeg machtigingen toe voor elke openbare map in $PFList variabele door de volgende cmdlet uit te lopen. Met deze cmdlet wordt het LogFileName-logboek gemaakt dat de details van de cmdlet en eventuele fouten bevat.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
Opmerking: Meestal kunnen deze cmdlets uren of zelfs dagen worden uitgevoerd, afhankelijk van het aantal objecten dat wordt gewijzigd.
Meer informatie
Meer hulp nodig? Ga naar Microsoft Community.