Si applica a
Exchange Online

Sintomi

Quando si eseguono script o cmdlet usando Microsoft Exchange Online powershell remoto per modificare set di dati di grandi dimensioni, si verifica uno o entrambi i sintomi seguenti:

  • L'esecuzione di script o cmdlet può richiedere molto tempo.

  • In PowerShell viene visualizzato il messaggio di avviso di limitazione Exchange Online seguente:

    AVVISO: micro ritardo applicato. Ritardo effettivo: <X> msec, ... AVVISO: micro ritardo applicato. Ritardo effettivo: <X> msec, Applicato

Causa

Si tratta di un comportamento correlato alla progettazione del prodotto. La limitazione viene usata per impedire attacchi dannosi o involontari contro il servizio che potrebbero influire sui contratti di servizio. È possibile ignorare il messaggio di avviso.

Soluzione alternativa

Per risolvere questo problema, provare le opzioni seguenti nell'ordine specificato.

Opzione 1

Eseguire una diagnostica self-help nell'Microsoft 365 di amministrazione per aggiornare i criteri Exchange di limitazione remota di PowerShell per il tenant. Per informazioni dettagliate, vedere Diagnostica self-help peri problemi in Exchange Online e Outlook .

Opzione 2

Usare Exchange Online cmdlet di PowerShell V2 per eseguire il processo. Per informazioni dettagliate, vedere Informazioni sul modulo Exchange Online PowerShell V2.

Opzione 3

Aggiungere l'elemento di sospensione seguente agli script o ai cmdlet. Questo elemento rallenta lo script o il cmdlet entro i limiti del limite di limitazione.Start-Sleep -m <Time in milliseconds> Nell'esempio seguente l'elenco delle cassette postali recuperate con il cmdlet Get-Mailbox viene archiviato in una variabile. Questa variabile viene usata per eseguire un'azione su tutte le cassette postali. Questo tipo di lavoro è in genere limitato. Aggiungendo l'elemento sleep al cmdlet, è possibile provare a rimanere entro i limiti del limite di limitazione.$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}

Opzione 4

Usare il modulo RobustCloudCommand per eseguire gli script o i cmdlet. È possibile installare questo modulo usando il cmdlet Install-Module .Ecco un esempio del processo che usa il modulo RobustCloudCommand per aggiungere autorizzazioni a più cartelle pubbliche:

  1. Esportare l'elenco di cartelle pubbliche nel file PFList.csv eseguendo il cmdlet seguente: 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. Installare il modulo RobustCloudCommand eseguendo il cmdlet seguente: Install-Module -Name RobustCloudCommand -Force

  3. Importare l'elenco delle cartelle pubbliche generato nel passaggio 1 nella variabile $PFList eseguendo il cmdlet seguente: $PFList = Import-Csv C:\Temp\PFList.csv

  4. Aggiungere le autorizzazioni per ogni cartella pubblica nella variabile $PFList eseguendo il cmdlet seguente. Questo cmdlet crea il log LogFileName che contiene i dettagli del cmdlet e gli eventuali errori che possono verificarsi.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

Nota: In genere, questi cmdlet possono essere eseguiti per ore o persino giorni, a seconda del numero di oggetti modificati.

Ulteriori informazioni

Serve ancora assistenza? Passare a Microsoft Community.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.