Start-AzVM: impossible de lier le paramètre 'DefaultProfile' lors de l'exécution d'un runbook Azure
Nov 22 2020
Je travaille sur ce didacticiel officiel de l'équipe MS Azure pour exécuter un PowerShell Workflow runbook
pour démarrer un VM
. Mais lorsque je lance le runbook suivant (à partir de l'étape 6 du didacticiel ), j'obtiens l'erreur ci-dessous. Question : Qu'est-ce que je peux manquer et comment pouvons-nous résoudre le problème?
Remarque : Start-AzVM provient du module Az.Compute que j'ai déjà importé.
code du 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
}
Erreur :
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
Réponses
2 JoyWang Nov 23 2020 at 02:12
On dirait que c'est une erreur dans le document, dans ce scénario, il devrait utiliser Set-AzContext
pour définir l'abonnement au lieu d'utiliser Get-AzSubscription
pour obtenir l'abonnement, changez la commande comme ci-dessous, cela fonctionnera bien.
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
}
