Compartilhar via


Executar os cmdlets do Azure PowerShell nos trabalhos do PowerShell

Azure PowerShell depende de se conectar a uma nuvem Azure e aguardar respostas, portanto, a maioria desses cmdlets bloqueia sua sessão do PowerShell até que eles obtenham uma resposta da nuvem. Os Trabalhos do PowerShell permitem executar cmdlets em segundo plano ou realizar várias tarefas em Azure de uma só vez, de dentro de uma única sessão do PowerShell.

Este artigo é uma visão geral breve de como executar os cmdlets do Azure PowerShell como Jobs do PowerShell e verificar a conclusão. Executar comandos em Azure PowerShell requer o uso de contextos Azure PowerShell, que são abordados detalhadamente em contextos Azure e credenciais de entrada. Para saber mais sobre trabalhos do PowerShell, consulte Sobre trabalhos do PowerShell.

Os contextos do Azure com os trabalhos do PowerShell

Os Trabalhos do PowerShell são executados como processos separados sem uma sessão anexada do PowerShell, portanto, suas credenciais de Azure devem ser compartilhadas com eles. As credenciais são passadas como objetos de contexto Azure usando um destes métodos:

  • Persistência automática de contexto. A persistência de contexto é habilitada por padrão e preserva suas informações de entrada em várias sessões. Com a persistência de contexto habilitada, o contexto de Azure atual é passado para o novo processo:

    Enable-AzContextAutosave # Enables context autosave if not already on
    $vmadmin = Get-Credential
    
    Start-Job {
      New-AzVM -Name MyVm -Credential $Using:vmadmin
    }
    
  • Forneça um objeto de contexto Azure com qualquer cmdlet Azure PowerShell que tenha um parâmetro 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
    }
    

    Se a persistência de contexto estiver desabilitada, o parâmetro AzContext será necessário.

  • Use o parâmetro AsJob fornecido por alguns cmdlets Azure PowerShell. Essa opção inicia automaticamente o cmdlet como um Trabalho do PowerShell usando o contexto de Azure ativo:

    $vmadmin = Get-Credential
    $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJob
    

    Para ver se um cmdlet dá suporte ao AsJob, verifique sua documentação de referência. O parâmetro AsJob não requer que o salvamento automático de contexto seja habilitado.

Você pode verificar o status de um trabalho em execução com o cmdlet Get-Job . Para obter a saída de um trabalho até o momento, use o cmdlet Receive-Job.

Para verificar o progresso de uma operação remotamente no Azure, use os cmdlets Get associados ao tipo de recurso que o trabalho está modificando:

$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

Consulte Também