Symptomy
Podczas uruchamiania skryptów lub poleceń cmdlet przy Microsoft Exchange Online zdalnym programie PowerShell w celu modyfikowania dużych zestawów danych występują jeden lub oba następujące symptomy:
-
Uruchamianie skryptów lub cmdlet trwa długo.
-
W programie PowerShell jest wyświetlany następujący komunikat ostrzegawczy Exchange Online ograniczania:
OSTRZEŻENIE: Zastosowano mikro opóźnienie. Rzeczywiste opóźnienie: <X> ms,... OSTRZEŻENIE: Zastosowano mikro opóźnienie. Rzeczywiste opóźnienie: <X>, Wymuszone
Przyczyna
Takie działanie jest celowe. Ograniczanie jest używane w celu zapobiegania złośliwym lub niezamierzonym atakom na usługę, które mogą mieć wpływ na umowy dotyczące poziomu usług. Możesz bezpiecznie zignorować komunikat ostrzegawczy.
Obejście
Aby pracować z tym zachowaniem, wypróbuj następujące opcje w podanej kolejności.
Opcja 1
Uruchom narzędzie diagnostyczne z samodzielną pomocą w centrum Microsoft 365 administracyjnego, aby zaktualizować Exchange ograniczania zdalnej obsługi programu PowerShell dla dzierżawy. Aby uzyskać szczegółowe informacje, zobacz Diagnostyka samoobsługi problemów z Exchange Online i Outlook.
Opcja 2
Użyj Exchange Online cmdlet programu PowerShell W2 do uruchomienia zadania. Aby uzyskać szczegółowe informacje, zobacz Informacje Exchange Online V2 programu PowerShell.
Opcja 3
Dodaj następujący element uśpienia do skryptów lub polecenia cmdlet. Ten element spowalnia wykonywanie skryptu lub polecenia cmdlet w granicach limitu ograniczania.Start-Sleep -m <Time in milliseconds> W poniższym przykładzie lista skrzynek pocztowych pobieranych za pomocą polecenia cmdlet Get-Mailbox jest przechowywana w zmiennej. Ta zmienna służy do uruchamiania akcji we wszystkich skrzynkach pocztowych. Tego rodzaju zadanie jest zazwyczaj ograniczane. Dodając element uśpienia do polecenia cmdlet, możesz spróbować pozostać w granicach limitu ograniczania.$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}
Opcja 4
Użyj modułu RobustCloudCommand, aby uruchomić skrypty lub polecenia cmdlet. Ten moduł można zainstalować przy użyciu wbudowanego polecenia cmdlet Install-Module cmdlet.Oto przykład procesu, w który dodawania uprawnień do wielu folderów publicznych używa modułu RobustCloudCommand:
-
Wyeksportuj listę folderów publicznych do PFList.csv, uruchamiając następujące polecenie 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
-
Zainstaluj moduł RobustCloudCommand, uruchamiając następujące polecenie cmdlet: Install-Module -Name RobustCloudCommand -Force
-
Zaimportuj listę folderów publicznych wygenerowaną w kroku 1 do zmiennej $PFList, uruchamiając następujące polecenie cmdlet: $PFList = Import-Csv C:\Temp\PFList.csv
-
Dodaj uprawnienia dla każdego folderu publicznego w zmiennej $PFList, uruchamiając następujące polecenie cmdlet. To polecenie cmdlet tworzy dziennik LogFileName zawierający szczegóły polecenia cmdlet i wszelkie mogące wystąpić błędy.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
Uwaga: Zazwyczaj te polecenia cmdlet można uruchamiać przez wiele godzin lub nawet dni, w zależności od liczby zmodyfikowanych obiektów.
Więcej informacji
Nadal potrzebujesz pomocy? Przejdź do witryny Microsoft Community.