Start-AzVM: не удается привязать параметр ‘DefaultProfile’ при запуске Azure runbook

#azure #azure-powershell #azure-automation #azure-runbook

#azure #azure-powershell #azure-автоматизация #azure-runbook

Вопрос:

Я работаю над этим официальным руководством от команды MS Azure, чтобы запустить a PowerShell Workflow runbook для запуска a 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
 

Ответ №1:

Похоже, это ошибка в документе, в этом сценарии он должен использоваться 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
}
 

введите описание изображения здесь

Комментарии:

1. Ваше предложение сработало. Спасибо, что указали на ошибку в документе (несмотря на то, что я по ошибке предоставил неверную ссылку на учебное пособие, но вы нашли правильную ссылку. Я исправил, ссылку тоже). Также благодарим вас за то, что вы нашли время для самостоятельного тестирования runbook и опубликовали скриншот выходных данных, чтобы другие читатели тоже могли их увидеть.