共用方式為


針對在 Azure 自動化中使用 PowerShell 時的 Runbook 執行問題進行疑難解答

本文提供診斷和解決在 Azure 自動化中使用 PowerShell 腳本或 Cmdlet 時所發生的 Runbook 執行問題的指引。

備註

Azure 自動化可讓您復原在過去 29 天內刪除的 Runbook。 您可以在自動化帳戶中以作業的形式執行 PowerShell 腳本,以還原已刪除的 Runbook。 如需詳細資訊,請參閱還原已刪除的 Runbook

PowerShell Runbook 的限制和已知問題

PowerShell Runbook 建置在 Windows PowerShell 上。 您可以使用 Azure 入口網站中的文字編輯器,直接編輯其程式代碼。 您也可以使用離線文字編輯器,然後將流程範本匯入 Azure 自動化。 PowerShell 版本是由指定的 運行時間版本 所決定。

限制:

  • 對於 PowerShell 7 執行階段版本,不會擷取匯入模組的活動。
  • PowerShell 7 run-time 版本不支援 PSCredential Runbook 參數類型。
  • PowerShell 7.x 不支援工作流程和執行手冊。 如需詳細資訊,請參閱 PowerShell工作流程
  • PowerShell 7.x 目前不支援已簽署的執行手冊。
  • 原始程式碼控制整合不支援 PowerShell 7.2。 原始程式碼管理中的 PowerShell 7.2 流程書會在自動化帳戶中被設為執行環境 5.1。
  • 目前,PowerShell 7.2 運行時間版本僅支援雲端作業。
  • 不支援在相同的自動化帳戶中,使用 Az 模組和 AzureRM 模組。 如需詳細資訊,請參閱 更新自動化中的 Azure PowerShell 模組

已知問題:

  • PowerShell 7 執行階段不支援定義記錄偏好設定的 Runbook 屬性。

    若要解決此問題,請在 Runbook 開頭明確設定喜好設定,如下所示:

    $VerbosePreference = "Continue"
    $ProgressPreference = "Continue"
    
  • 當您使用 ExchangeOnlineManagement 模組 3.0.0 版或更新版本時,可能會遇到錯誤。

    若要解決此問題,請確定您明確上傳 PowerShellGetPackageManagement 模組。

疑難排解之前

請遵循下列步驟來識別並解決常見錯誤,然後再進行進一步的疑難解答:

  1. 確認 PowerShell 腳本可在 Azure 自動化外部運作。
  2. 確認必要的模組已匯入您的 Azure 自動化帳戶。

問題 1:Runbook 執行因反序列化對象而失敗

徵兆:

當您執行 Runbook 時,可能會顯示下列錯誤訊息:

無法系結參數 <ParameterName>。

無法將類型為 Deserialized <ParameterType> 的 <ParameterType> 值轉換成 <ParameterType> 類型。

原因

PowerShell 工作流程 Runbook 發生此錯誤,因為 PowerShell 工作流程會將複雜的物件儲存為還原串行化格式,以在工作流程暫停時保存 Runbook 狀態。

解決方法:

若要解決這個問題,請使用下列其中一個方法:

  • 如果您將複雜的物件藉由管線從一個 PowerShell Cmdlet 傳送至另一個 Cmdlet,請將這些 Cmdlet 用某個活動來包裝。
  • 從複雜物件傳遞您需要的名稱或值,而非傳遞整個物件。
  • 使用 PowerShell Runbook,而不是 PowerShell 工作流程 Runbook。

問題 2:PowerShell 作業失敗,並出現「無法叫用方法」錯誤

徵兆:

當您在 Azure 沙箱中執行的 Runbook 中啟動 PowerShell 作業時,您會收到下列錯誤訊息:

丟出例外狀況 - 無法調用方法。 只有在此語言模式的核心類型上才支援方法調用。

原因

此錯誤可能會因為 Runbook 無法在 完整語言模式中執行。

解決方法:

若要解決此錯誤,請使用下列其中一種方法:

參考文獻

與我們連絡,以取得說明

如果您有任何問題或需要幫助,提出支援請求,或詢問Azure 社群支援。 您也可以向 Azure 意見反應社群提交產品意見反應。