PowerShell 작업에서 Azure PowerShell cmdlet 실행
Azure PowerShell은 Azure Cloud에 연결하고 응답을 기다리는 방법에 따라 달라지므로 대부분의 cmdlet은 클라우드에서 응답을 받을 때까지 PowerShell 세션을 차단합니다. PowerShell 작업을 사용하면 백그라운드에서 cmdlet을 실행하거나 단일 PowerShell 세션 내에서 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에서 원격으로 작업 진행 상황을 확인하려면 작업에서 수정 중인 리소스 형식과 연결된 Get
cmdlet을 사용합니다.
$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
참고 항목
Azure PowerShell