PowerShell 작업에서 Azure PowerShell cmdlet 실행

Azure PowerShell은 Azure 클라우드에 연결하고 응답을 기다리는 데 의존하므로 대부분의 cmdlet은 클라우드에서 응답을 받을 때까지 PowerShell 세션을 차단합니다. PowerShell 작업을 사용하면 단일 PowerShell 세션 내에서 백그라운드에서 cmdlet을 실행하거나 Azure에서 한 번에 여러 작업을 수행할 수 있습니다.

이 문서에서는 Azure PowerShell cmdlet을 PowerShell 작업으로 실행하고 완료를 위해 검사 방법에 대한 간략한 개요입니다. Azure PowerShell에서 명령을 실행하려면 Azure 컨텍스트 및 로그인 자격 증명에서 자세히 설명된 Azure PowerShell 컨텍스트를 사용해야 합니다. PowerShell 작업에 대한 자세한 내용은 PowerShell 작업 정보입니다.

PowerShell 작업을 사용하는 Azure 컨텍스트

PowerShell 작업은 연결된 PowerShell 세션 없이 별도의 프로세스로 실행되므로 Azure 자격 증명을 공유해야 합니다. 자격 증명은 다음 방법 중 하나를 사용하여 Azure 컨텍스트 개체로 전달됩니다.

  • 자동 컨텍스트 지속성. 컨텍스트 지속성은 기본적으로 사용되며 여러 세션에서 로그인 정보를 유지합니다. 컨텍스트 지속성을 사용하도록 설정하면 현재 Azure 컨텍스트가 새 프로세스에 전달됩니다.

    Enable-AzContextAutosave # Enables context autosave if not already on
    $vmadmin = Get-Credential
    
    Start-Job {
      New-AzVM -Name MyVm -Credential $Using:vmadmin
    }
    
  • AzContext 매개 변수가 있는 Azure PowerShell cmdlet을 사용하여 Azure 컨텍스트 개체를 제공합니다.

    $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
    }
    

    컨텍스트 지속성을 사용하지 않도록 설정 하면 AzContext 매개 변수가 필요합니다.

  • 일부 Azure PowerShell cmdlet에서 제공하는 AsJob 매개 변수를 사용합니다. 이 스위치는 활성 Azure 컨텍스트를 사용하여 cmdlet을 PowerShell 작업으로 자동 시작합니다.

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

    cmdlet이 AsJob지원하는지 확인하려면 참조 설명서를 검사. AsJob 매개 변수는 컨텍스트 자동 저장을 사용하도록 설정할 필요가 없습니다.

Get-Job cmdlet을 사용하여 실행 중인 작업의 상태 검사 수 있습니다. 지금까지 작업에서 출력을 가져오려면 Receive-Job cmdlet을 사용합니다.

Azure에서 작업 진행률을 원격으로 검사 작업에서 수정되는 리소스 유형과 연결된 cmdlet을 사용합니다Get.

$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

참고 항목