Применяется к
Exchange Online

Проблемы

При выполнении скриптов или командлетов с помощью Microsoft Exchange Online с помощью удаленного PowerShell для изменения больших наборов данных возникают следующие симптомы или оба следующих симптома:

  • Выполнение скриптов или командлетов занимает много времени.

  • В Exchange Online PowerShell отображается следующее предупреждающее сообщение о регулировании:

    ПРЕДУПРЕЖДЕНИЕ. Применена микро-задержка. Фактическая задержка: <X> мс, ... ПРЕДУПРЕЖДЕНИЕ. Применена микро-задержка. Фактическая задержка: <X> мс, принудительно

Причина

Такое поведение является особенностью данного продукта. Регулирование используется для предотвращения вредоносных или непреднамеренных атак на службу, которые могут повлиять на соглашения об уровне обслуживания. Предупреждающее сообщение можно спокойно игнорировать.

Обходное решение

Чтобы обойти это поведение, попробуйте следующие параметры в заданном порядке.

Вариант 1

Выполните диагностику самостоятельно в Центр администрирования Microsoft 365, чтобы обновить политику удаленного регулирования PowerShell Exchange для клиента. Дополнительные сведения см. в разделе Самостоятельное диагностика по проблемам в Exchange Online и Outlook.

Вариант 2

Для запуска задания используйте командлеты PowerShell версии 2 Exchange Online. Дополнительные сведения см. в разделе Сведения о модуле Exchange Online PowerShell версии 2.

Вариант 3

Добавьте следующий элемент спящего режима в скрипты или командлеты. Этот элемент замедляет выполнение скрипта или командлета в пределах предела регулирования.Start-Sleep -m <Time in milliseconds> В следующем примере список почтовых ящиков, извлекаемых с помощью командлета Get-Mailbox , хранится в переменной. Эта переменная используется для выполнения действия во всех почтовых ящиках. Этот тип задания обычно регулируется. Добавив элемент спящего режима в командлет, можно попытаться остаться в пределах ограничения регулирования.$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}

Вариант 4

Используйте модуль RobustCloudCommand для выполнения скриптов или командлетов. Этот модуль можно установить с помощью встроенного командлета Install-Module .Ниже приведен пример процесса, который использует модуль RobustCloudCommand для добавления разрешений для нескольких общедоступных папок:

  1. Экспортируйте список общедоступных папок в файл 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

  2. Установите модуль RobustCloudCommand, выполнив следующий командлет:Install-Module -Name RobustCloudCommand -Force

  3. Импортируйте список общедоступных папок, созданных на шаге 1, в переменную $PFList , выполнив следующий командлет:$PFList = Import-Csv C:\Temp\PFList.csv

  4. Добавьте разрешения для каждой общедоступной папки в переменной $PFList , выполнив следующий командлет. Этот командлет создает журнал 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

Примечание: Как правило, эти командлеты могут выполняться в течение нескольких часов или даже дней в зависимости от количества измененных объектов.

Дополнительная информация

Требуется дополнительная помощь? Зайдите на сайт сообщества Майкрософт.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.