針對共用資源問題進行疑難排解

本文討論在使用 Azure 自動化 共享資源時可能出現的問題。

模組

案例:模組在匯入期間停滯

問題

當你匯入或更新Azure 自動化模組時,模組會卡在Importing狀態。

原因

由於匯入 PowerShell 模組是複雜的多步驟程式,因此模組可能無法正確匯入,而且可能卡在暫時性狀態中。 若要深入了解匯入流程,請參閱匯入 PowerShell 模組。

解決方案

若要解決此問題,您必須使用 Remove-AzAutomationModule Cmdlet 移除停滯的模組。 您可以稍後再重試匯入模組。

Remove-AzAutomationModule -Name ModuleName -ResourceGroupName ExampleResourceGroup -AutomationAccountName ExampleAutomationAccount -Force

案例:更新 AzureRM 模組後,匯入時停滯不前

問題

嘗試更新 AzureRM 模組之後,下列訊息的橫幅停留在您的帳戶中:

Azure modules are being updated

原因

在自動化帳號中更新 AzureRM 模組時,有一個已知的問題。 具體而言,此問題起因於模組所在的資源群組是開頭為 0 的數值名稱。

解決方案

若要在自動化帳戶中更新 AzureRM 模組,該帳戶所在的資源群組名稱必須是由英數字元組成。 目前,如果資源群組是開頭為 0 數值名稱,則無法更新 AzureRM 模組。

案例:無法匯入模組,或無法在匯入之後執行 Cmdlet

問題

無法匯入模組,或雖然成功匯入,但未擷取到任何 Cmdlet。

原因

模組無法成功匯入 Azure 自動化 的一些常見原因包括:

  • 結構不符合自動化所需的結構。
  • 模組相依於另一個尚未部署到您自動化帳戶的模組。
  • 模組在資料夾中缺少其依賴項。
  • 您使用 New-AzAutomationModule Cmdlet 來上傳模組,但未提供完整的儲存體路徑,或未使用可公開存取的 URL 來載入模組。

解決方案

使用下列任何解決方案來修正問題:

  • 請確定模組遵循下列格式:ModuleName.zip -> ModuleName 或 Version Number -> (ModuleName.psm1, ModuleName.psd1)。
  • 開啟 .psd1 檔案,查看模組是否有任何相依性。 如果有,請將這些模組上傳至自動化帳戶。
  • 請確定任何參考的 .dll 檔案存在於模組資料夾中。

案例:Update-AzureModule.ps1 會在更新模組時暫止

問題

當你使用 Update-AzureModule.ps1 runbook 來更新你的 Azure 模組時,模組更新流程會被暫停。

原因

在此 Runbook 中,用以決定同時更新多少個模組的預設設定為 10。 同時更新太多模組時,更新程序很容易發生錯誤。

解決方案

同一個自動化帳戶中需要所有 AzureRM 或 Az 模組的情況並不常見。 您應該只匯入需要的特定模組。

注意

避免匯入整個 Az.Automation 或 AzureRM.Automation 模組,否則會匯入其所有包含的模組。

如果更新流程暫止,請將 SimultaneousModuleImportJobCount 參數新增至 Update-AzureModules.ps1 指令碼,並提供低於預設值 10 的值。 如果您實作此邏輯,請嘗試從 3 或 5 的值開始。 SimultaneousModuleImportJobCount 是系統 Update-AutomationAzureModulesForAccount 的參數,用於更新Azure模組。 如果您進行這項調整,則更新流程會執行較久,但較有機會完成。 下列範例顯示參數以及要在 Runbook 中放置它的位置:

$Body = @"
   {
      "properties":{
      "runbook":{
            "name":"Update-AutomationAzureModulesForAccount"
      },
      "parameters":{
            ...
            "SimultaneousModuleImportJobCount":"3",
            ... 
      }
      }
   }
"@

執行身分帳戶

注意

Azure 自動化 Run As 帳戶,包括經典 Run As 帳戶,已於2023 年 9 月 30 日退休,並改為管理身份。您將無法再透過 Azure 入口網站建立或續訂 Run As 帳戶。 如需詳細資訊,請參閱 從現有的執行身分帳戶移轉至受控識別。

案例:您在執行 Runbook 時收到錯誤,內容指出「在 DLL iplpapi.dll 中找不到名為 GetPerAdapterInfo 的進入點」

問題

當您執行 Runbook 時,您收到下列例外狀況:

Unable to find an entry point named 'GetPerAdapterInfo' in DLL 'iplpapi.dll'

原因

此錯誤很可能起因於執行身分帳戶設定不正確。

解決方案

確保您的執行身分帳戶已正確設定。 然後確認你的跑手冊中有正確的程式碼來與 Azure 認證。 以下範例展示了一段程式碼,透過使用 Run As 帳號在 Runbook 中驗證 Azure 的身份。

$connection = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzAccount -ServicePrincipal -Tenant $connection.TenantID `
-ApplicationID $connection.ApplicationID -CertificateThumbprint $connection.CertificateThumbprint

下一步

如果本文無法解決您的問題,請嘗試下列其中一個管道以取得其他支援:

  • 透過 Azure 論壇,獲得Azure專家的解答。
  • 與 @AzureSupport 連絡。 這是官方的 Microsoft Azure 帳號,用來連結 Azure 社群與正確的資源:答案、支援與專家。
  • 如果你打算為未解決的問題開啟客服案件,請在開啟前收集所需的診斷資料。 請參閱在開啟案例時要收集的 Microsoft Azure 自動化 資料。
  • 提交 Azure 支援個案。 請前往 Azure 支援 網站,選擇 Get Support。