本文討論在使用 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。