Applies ToExchange Online

症状

通过远程 PowerShell 使用 Microsoft Exchange Online脚本或 cmdlet 修改大型数据集时,可能会遇到以下两种症状之一:

  • 脚本或 cmdlet 需要很长时间来运行。

  • PowerShell 中会显示以下Exchange Online警告消息:

    警告:应用了微延迟。 实际延迟:<X>毫秒, ... 警告:应用了微延迟。 实际延迟:<X>毫秒,已强制执行

原因

此行为是设计使的。 限制用于防止对服务进行可能影响服务级别协议的恶意或无意攻击。 可以放心地忽略警告消息。

解决方法

若要处理此行为,请尝试按给定顺序选择以下选项。

选项 1

在 Microsoft 365 管理中心运行自助诊断,Exchange租户的远程 PowerShell 限制策略。 有关详细信息,请参阅自助诊断,了解Exchange Online Outlook。

选项 2

使用 Exchange Online PowerShell V2 cmdlet 运行作业。 有关详细信息,请参阅关于 Exchange Online PowerShell V2 模块

选项 3

将以下 sleep 元素添加到脚本或 cmdlet。 此元素将脚本或 cmdlet 减慢到限制边界内。Start-Sleep -m <Time in milliseconds> 在下面的示例中,使用 Get-Mailbox cmdlet 检索的邮箱列表存储在变量中。 此变量用于针对所有邮箱运行操作。 此类作业通常会受到限制。 通过将 sleep 元素添加到 cmdlet,可以尝试保持限制边界。$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}

选项 4

使用 RobustCloudCommand 模块运行脚本或 cmdlet。 可以使用内置 Install-Module cmdlet 安装此模块。下面是使用 RobustCloudCommand 模块向多个公用文件夹添加权限的过程示例:

  1. 通过运行以下 cmdlet 将公用文件夹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. 通过运行以下 cmdlet 安装 RobustCloudCommand 模块 Install-Module -Name RobustCloudCommand -Force

  3. 通过运行以下 cmdlet,将步骤 1 中生成的公用文件夹列表导入 $PFList 变量 $PFList = Import-Csv C:\Temp\PFList.csv

  4. 通过运行以下 cmdlet 为 $PFList 变量中的 每个公用文件夹添加权限。 此 cmdlet 创建 LogFileName 日志,其中包含 cmdlet 的详细信息以及可能发生的任何错误。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

注意: 通常,这些 cmdlet 可以运行数小时甚至数天,具体取决于修改的对象数。

更多信息

仍然需要帮助? 请转到 Microsoft 社区

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。