Exécuter des applets de commande Azure PowerShell dans des tâches PowerShell
Azure PowerShell dépend de la connexion à un cloud Azure et de l’attente de réponses. La plupart de ces applets de commande bloquent votre session PowerShell jusqu’à ce qu’elles obtiennent une réponse du cloud. Les travaux PowerShell vous permettent d’exécuter des applets de commande en arrière-plan ou d’effectuer plusieurs tâches sur Azure à la fois, à partir d’une seule session PowerShell.
Cet article donne un aperçu succinct de la façon d'exécuter des applets de commande Azure PowerShell comme des travaux PowerShell et de vérifier l'achèvement. L’exécution de commandes dans Azure PowerShell nécessite l’utilisation de contextes Azure PowerShell, qui sont abordés en détail dans Contextes et informations d’identification de connexion Azure. Pour en savoir plus sur les tâches PowerShell, consultez À propos des tâches PowerShell.
Contextes Azure avec des travaux PowerShell
Les travaux PowerShell sont exécutés en tant que processus distincts sans session PowerShell attachée. Vos informations d’identification Azure doivent donc être partagées avec elles. Les informations d’identification sont passées en tant qu’objets de contexte Azure à l’aide de l’une des méthodes suivantes :
Persistance de contexte automatique La persistance de contexte est activée par défaut et conserve vos informations de connexion entre plusieurs sessions. Une fois la persistance de contexte activée, le contexte Azure actuel est passé au nouveau processus :
Enable-AzContextAutosave # Enables context autosave if not already on $vmadmin = Get-Credential Start-Job { New-AzVM -Name MyVm -Credential $Using:vmadmin }
Fournissez un objet de contexte Azure avec n’importe quelle applet de commande Azure PowerShell qui a un paramètre AzContext :
$context = Get-AzContext -Name 'mycontext' # Get an Azure context object $vmadmin = Get-Credential $job = Start-Job { New-AzVM -Name MyVm -AzContext $Using:context -Credential $Using:vmadmin }
Si la persistance de contexte est désactivée, le paramètre AzContext est requis.
Utilisez le paramètre AsJob fourni par certaines applets de commande Azure PowerShell. Ce commutateur démarre automatiquement l’applet de commande en tant que travail PowerShell à l’aide du contexte Azure actif :
$vmadmin = Get-Credential $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJob
Pour voir si une applet de commande prend en charge AsJob, consultez sa documentation de référence. Le paramètre AsJob ne nécessite pas la sauvegarde automatique du contexte.
Vous pouvez vérifier l’état d’un travail en cours d’exécution avec l’applet de commande Get-Job
Pour vérifier la progression d’une opération à distance sur Azure, utilisez les applets de commande Get
associées au type de ressource en cours de modification par le travail :
$vmadmin = Get-Credential
$context = Get-AzContext -Name 'mycontext'
$vmName = 'MyVm'
$job = Start-Job {
New-AzVM -Name $Using:vmName -AzContext $Using:context -Credential $Using:vmadmin
}
Get-Job -Id $job.Id
Get-AzVM -Name $vmName