Partager via


Exécuter des applets de commande Azure PowerShell dans des travaux 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 présente brièvement comment exécuter des applets de commande Azure PowerShell en tant que travaux PowerShell et vérifier la fin. L’exécution de commandes dans Azure PowerShell nécessite l’utilisation de contextes Azure PowerShell, qui sont abordés en détail dans les contextes Azure et les informations d’identification de connexion. Pour en savoir plus sur les travaux PowerShell, consultez À propos des travaux 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 l’enregistrement automatique du contexte pour être activé.

Vous pouvez vérifier l’état d’un travail en cours d’exécution avec l’applet de commande Get-Job . Pour obtenir la sortie d’un travail jusqu’à présent, utilisez l’applet de commande Receive-Job .

Pour vérifier la progression d’une opération à distance sur Azure, utilisez les Get applets de commande associées au type de ressource modifié 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

Voir aussi