Start-AzVM:Azure Runbookの実行時に、パラメーター 'DefaultProfile'をバインドできません

Nov 22 2020

私はMSAzureチームからのこの公式チュートリアルに取り組んでおり、を実行してPowerShell Workflow runbookを開始しVMます。しかし、次のRunbookを開始すると(チュートリアルのステップ6から)、以下に示すエラーが発生します。質問:私が見逃している可能性があるものと、問題を解決するにはどうすればよいですか?

備考:Start-AzVMは、すでにインポートしたAz.Computeモジュールからのものです。

Runbookコード

workflow MyFirstRunbook-Workflow
{
# Ensures that you do not inherit an AzContext in your runbook
Disable-AzContextAutosave –Scope Process

$Conn = Get-AutomationConnection -Name AzureRunAsConnection Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint

$AzureContext = Get-AzSubscription -SubscriptionId $Conn.SubscriptionID

Start-AzVM -Name 'vm-cs-web01' -ResourceGroupName 'rg-cs-ansible1' -AzContext $AzureContext
}

エラー

Start-AzVM : Cannot bind parameter 'DefaultProfile'. Cannot convert the "a76c7e8f-210d-45e5-8f5e-525015b1c881" value of 
type "Deserialized.Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription" to type 
"Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer".
At MyFirstRunbook-Workflow:11 char:11
+ 
    + CategoryInfo          : InvalidArgument: (:) [Start-AzVM], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Azure.Commands.Compute.StartAzureVMCommand

回答

2 JoyWang Nov 23 2020 at 02:12

ドキュメントの間違いのようです。このシナリオではSet-AzContext、サブスクリプションのGet-AzSubscription取得に使用するのではなく、サブスクリプションの設定に使用する必要があります。以下のようにコマンドを変更すると、正常に機能します。

workflow MyFirstRunbook-Workflow
{
# Ensures that you do not inherit an AzContext in your runbook
Disable-AzContextAutosave –Scope Process

$Conn = Get-AutomationConnection -Name AzureRunAsConnection Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint

$AzureContext = Set-AzContext -SubscriptionId $Conn.SubscriptionID

Start-AzVM -Name 'vm-cs-web01' -ResourceGroupName 'rg-cs-ansible1' -AzContext $AzureContext
}