Проблемы
При запуске сценариев и cmdlets с помощью Microsoft Exchange Online удаленной powerShell для изменения больших наборов данных вы можете получить один или оба из следующих признаков:
-
Для запуска сценариев и cmdlets требуется много времени.
-
В PowerShell вы увидите следующее предупреждение о Exchange Online регулирования:
ПРЕДУПРЕЖДЕНИЕ. Применена микромедийная задержка. Фактические задержки: <X> msecs, ...
ПРЕДУПРЕЖДЕНИЕ. Применена микромедийная задержка. Фактические задержки: <X> msecs, принудительно
Причина
Такое поведение является особенностью данного продукта. Регулирование используется для предотвращения вредоносных или непреднамеренных атак на службу, которые могут повлиять на соглашения об уровне обслуживания. Предупреждение можно проигнорировать.
Обходное решение
Чтобы обойти это поведение, попробуйте следующие варианты в заданом порядке.
Вариант 1
Запустите в Центре администрирования Microsoft 365 самостоятельное диагностику, чтобы обновить политику регулирования удаленной Exchange PowerShell для вашего клиента. Подробные сведения см. в справке По самостоятельной диагностике проблем в Exchange Online и Outlook.
Вариант 2
Используйте Exchange Online PowerShell V2 для запуска задания. Дополнительные сведения см. в Exchange Online PowerShell V2.
Вариант 3
Добавьте следующий элемент спящий режим в сценарии или на cmdlets: Этот элемент замедляет сценарий или cmdlet в пределах предела регулирования.Start-Sleep -m <Time in milliseconds> В следующем примере список почтовых ящиков, извлекаемого с помощью Get-Mailbox , сохраняется в переменной. Эта переменная используется для запуска действия со всеми почтовыми ящиками. Такое задание обычно ужимается. Добавив элемент спящий режим в этот элемент, вы можете попытаться не отойти от предела регулирования.$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}
Вариант 4
Используйте модуль RobustCommand для запуска сценариев или командлетов. Этот модуль можно установить с помощью встроенного командлета Install-Module . Вот пример процесса, который использует модуль RobustCloudCommand для добавления разрешений в несколько общедоступных папок:
-
Экспорт списка общедоступных папок в файл PFList.csv с помощью следующегоInvoke-Command -Scriptblock {Get-PublicFolder -Recurse -Resultsize Unlimited | Select-Object -property Name,Identity} -Session (Get-Pssession) |Export-csv -Path C:\Temp\PFList.csv -NoTypeInformation
-
Установите модуль RobustCommand, выдав следующий командлет: Install-Module -Name RobustCloudCommand -Force
-
Импорт списка общедоступных папок, созданных на шаге 1, в переменную $PFList путем запуска следующего$PFList = Import-Csv C:\Temp\PFList.csv
-
Добавьте разрешения для каждой открытой папки в переменной $PFList с помощью следующего cmdlet: Этот cmdlet создаст журнал LogFileName, содержащий сведения о нем и все ошибки, которые могут возникнуть.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
Примечание: Как правило, эти cmdlets могут работать в течение нескольких часов или даже дней в зависимости от количества измененных объектов.
Дополнительная информация
Требуется дополнительная помощь? Зайдите на сайт сообщества Майкрософт.