Symptomy
Podczas uruchamiania skryptów lub poleceń cmdlet przy użyciu Microsoft Exchange Online za pośrednictwem zdalnego programu PowerShell do modyfikowania dużych zestawów danych występuje jeden lub oba z następujących objawów:
-
Uruchamianie skryptów lub poleceń cmdlet zajmuje dużo czasu.
-
W programie Exchange Online PowerShell jest wyświetlany następujący komunikat ostrzegawczy o ograniczaniu:
OSTRZEŻENIE: Zastosowano mikro opóźnienie. Rzeczywiste opóźnione: <X> msecs, ... OSTRZEŻENIE: Zastosowano mikro opóźnienie. Rzeczywiste opóźnienie: <X> msecs, Wymuszone
Przyczyna
Takie działanie jest celowe. Ograniczanie służy do zapobiegania złośliwym lub niezamierzonym atakom na usługę, które mogą mieć wpływ na umowy dotyczące poziomu usług. Komunikat ostrzegawczy można bezpiecznie zignorować.
Obejście
Aby obejść ten problem, wypróbuj następujące opcje w danej kolejności.
Opcja 1
Uruchom diagnostykę samoobsługową w Centrum administracyjne platformy Microsoft 365, aby zaktualizować zasady ograniczania zdalnego programu PowerShell dla dzierżawy programu Exchange. Aby uzyskać szczegółowe informacje, zobacz Diagnostyka samoobsługowa w przypadku problemów w Exchange Online i programie Outlook.
Opcja 2
Użyj poleceń cmdlet programu Exchange Online PowerShell V2, aby uruchomić zadanie. Aby uzyskać szczegółowe informacje, zobacz Informacje o module Exchange Online PowerShell V2.
Opcja 3
Dodaj następujący element uśpienia do skryptów lub poleceń cmdlet. Ten element spowalnia skrypt lub polecenie cmdlet w granicach limitu ograniczania.Start-Sleep -m <Time in milliseconds> W poniższym przykładzie lista skrzynek pocztowych pobieranych przy użyciu polecenia cmdlet Get-Mailbox jest przechowywana w zmiennej. Ta zmienna służy do uruchamiania akcji we wszystkich skrzynkach pocztowych. Tego rodzaju zadania są zwykle ograniczone. 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 .Oto przykład procesu, który używa modułu RobustCloudCommand do dodawania uprawnień do wielu folderów publicznych:
-
Wyeksportuj listę folderów publicznych do pliku 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 wygenerowanych w kroku 1 do zmiennej $PFList , uruchamiając następujące polecenie cmdlet:$PFList = Import-Csv C:\Temp\PFList.csv
-
Dodaj uprawnienia do 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 ewentualne błędy, które mogą wystąpić.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 mogą działać godzinami, a nawet dniami, w zależności od liczby zmodyfikowanych obiektów.
Więcej informacji
Nadal potrzebujesz pomocy? Przejdź do witryny Microsoft Community.