套用到
Exchange Online

徵兆

當你透過遠端 PowerShell 使用 Microsoft Exchange Online 執行腳本或指令小子修改大型資料集時,你會經歷以下其中一種或兩種症狀:

  • 腳本或指令小程式執行時間很長。

  • 你會在 Exchange Online PowerShell 中看到以下限速警告訊息:

    警告:微延遲。 實際延遲:<X> 毫秒,... 警告:微延遲。 實際延遲:<X> 毫秒,強制執行

原因

產生此錯誤是系統刻意為之。 限速用於防止惡意或無意攻擊,進而影響服務層級協議。 你可以放心忽略警告訊息。

因應措施 

為了避免這種情況,請依照給定順序嘗試以下選項。

選項 1

在 Microsoft 365 系統管理中心執行自助診斷,更新 Exchange 遠端 PowerShell 限速政策。 詳情請參閱 Exchange Online 和 Outlook 問題的自助診斷

選項 2

使用 Exchange Online PowerShell V2 cmdlets 來執行這個工作。 詳情請參閱「關於 Exchange Online PowerShell V2 模組」。

選項三

在腳本或指令中加入以下睡眠元素。 此元素會將腳本或指令檔減速至限速範圍內。Start-Sleep -m <Time in milliseconds> 以下範例中,使用 Get-Mailbox cmdlet 取得的郵件匣清單被儲存在變數中。 這個變數用來對所有信箱執行動作。 這類工作通常會被限速。 透過在指令長中加入睡眠元素,你可以嘗試控制在節流限制範圍內。$MB=get-mailbox -resultsize unlimited $MB | %{Set-Mailbox $_.identity -CustomAttribute8 "Test"; Start-Sleep -m 500}

選項四

使用 RobustCloudCommand 模組來執行腳本或指令(cmdlet)。 你可以透過內建的 Install-Module 指令檔來安裝這個模組。這裡有一個使用 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 日誌,記錄指令本的詳細資訊及可能發生的錯誤。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

附註: 通常,這些指令檔可執行數小時甚至數天,視修改的物件數量而定。

其他相關資訊

是否仍需要協助? 前往 Microsoft Community

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。