この記事では、Azure Automation で PowerShell スクリプトまたはコマンドレットを使用するときに発生する Runbook の実行に関する問題の診断と解決に関するガイダンスを提供します。
注
Azure Automation では、過去 29 日間に削除された Runbook の復旧が有効となります。 削除された Runbook を復元するには、Automation アカウントでジョブとして PowerShell スクリプトを実行します。 詳しくは、「削除済みrunbookを復元する」を参照してください。
PowerShell Runbook の制限事項と既知の問題
PowerShell Runbook は Windows PowerShell 上に構築されています。 Azure portal のテキスト エディターを使用して、コードを直接編集できます。 オフライン テキスト エディターを使用して、 Runbook を Azure Automation にインポートすることもできます。 PowerShell のバージョンは、指定された ランタイム バージョン によって決まります。
制限:
- PowerShell 7 ランタイム バージョンの場合、インポートされたモジュールのモジュール アクティビティは抽出されません。
-
PSCredential
Runbook パラメーターの種類は、PowerShell 7 ランタイム バージョンではサポートされていません。 - PowerShell 7.x では、ワークフロー Runbook はサポートされていません。 詳細については、「 PowerShell ワークフロー」を参照してください。
- PowerShell 7.x では現在、署名された Runbook はサポートされていません。
- ソース管理の統合では、PowerShell 7.2 はサポートされていません。 ソース管理の PowerShell 7.2 Runbook は、ランタイム 5.1 として Automation アカウントに作成されます。
- 現在、PowerShell 7.2 ランタイム バージョンではクラウド ジョブのみがサポートされています。
- 同じ Automation アカウントでの Az モジュールと AzureRM モジュールの使用は、サポートされていません。 詳細については、「 Automation での Azure PowerShell モジュールの更新」を参照してください。
既知の問題:
ログ設定を定義する Runbook プロパティは、PowerShell 7 ランタイムではサポートされていません。
この問題を回避するには、Runbook の開始時に次のようにユーザー設定を明示的に設定します。
$VerbosePreference = "Continue" $ProgressPreference = "Continue"
ExchangeOnlineManagement モジュール バージョン 3.0.0 以降を使用すると、エラーが発生する可能性があります。
この問題を解決するには、
PowerShellGet
とPackageManagement
モジュールを明示的にアップロードしてください。
トラブルシューティングの前に
トラブルシューティングを行う前に、次の手順に従って一般的なエラーを特定して解決します。
- PowerShell スクリプトが Azure Automation の外部で動作することを確認します。
- 必要なモジュールが Azure Automation アカウントにインポートされていることを確認します。
問題 1: 逆シリアル化されたオブジェクトが原因で Runbook の実行が失敗する
症状:
Runbook を実行すると、次のエラー メッセージが表示されることがあります。
パラメーター <ParameterName>をバインドできません。
逆シリアル化された<ParameterType>型の<ParameterType>値を型<ParameterType>に変換できません。
原因:
このエラーは、PowerShell ワークフロー Runbook で発生します。これは、ワークフローが中断されたときに Runbook の状態を保持するために、PowerShell ワークフローが逆シリアル化された形式で複雑なオブジェクトを格納するためです。
解決策:
この問題を解決するには、次の方法のいずれかを使用してください。
- PowerShell コマンドレット間で複雑なオブジェクトをパイプ処理する場合は、これらのコマンドレットを
InlineScript
アクティビティでラップします。 - オブジェクト全体を渡すのではなく、複雑なオブジェクトから、必要な名前または値を渡します。
- PowerShell ワークフロー Runbook ではなく PowerShell Runbook を使用します。
問題 2: PowerShell ジョブが "メソッドを呼び出せない" エラーで失敗する
症状:
Azure サンドボックスで実行されている Runbook で PowerShell ジョブを開始すると、次のエラー メッセージが表示されます。
例外がスローされました - メソッドを実行できません。 メソッド呼び出しは、この言語モードのコア型でのみサポートされます。
原因:
このエラーは、Runbook を 完全言語モードで実行できないために発生する可能性があります。
解決策:
このエラーを解決するには、次のいずれかの方法を使用します。
- Runbook を開始するには、Start-Job ではなく Start-AzAutomationRunbook を使用します。
- Hybrid Runbook Worker で Runbook を実行してみてください。
リファレンス
- Runbook の問題のトラブルシューティング
- Azure Automation で Runbook を開始する
- Hybrid Runbook Worker での Runbook の実行
- Automation で Azure PowerShell モジュールを更新する
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、 サポートリクエストを作成するか、 Azure コミュニティ サポートに問い合わせてください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。