Start-AzVM: nie można powiązać parametru „DefaultProfile” podczas uruchamiania elementu Runbook platformy Azure
Nov 22 2020
Pracuję nad tym oficjalnym samouczkiem zespołu MS Azure, aby uruchomić plik, PowerShell Workflow runbook
aby rozpocząć VM
. Ale kiedy uruchamiam następujący element Runbook ( z kroku 6 samouczka ), pojawia się błąd pokazany poniżej. Pytanie : Czego może mi brakować i jak możemy rozwiązać ten problem?
Uwaga : Start-AzVM pochodzi z modułu Az.Compute, który już zaimportowałem.
kod elementu 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
}
Błąd :
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
Odpowiedzi
2 JoyWang Nov 23 2020 at 02:12
Wygląda na to, że jest to błąd w dokumencie, w tym scenariuszu należy użyć Set-AzContext
do ustawienia subskrypcji zamiast używać Get-AzSubscription
do uzyskania subskrypcji, zmienić polecenie jak poniżej, będzie działać dobrze.
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
}
