PowerShell İşlerinde Azure PowerShell cmdlet'leri çalıştırma

Azure PowerShell, Azure buluta bağlanmaya ve yanıtları beklemeye bağlıdır, bu nedenle bu cmdlet'lerin çoğu buluttan yanıt alıncaya kadar PowerShell oturumunuzu engeller. PowerShell İşleri, cmdlet'leri tek bir PowerShell oturumu içinden arka planda çalıştırmanıza veya aynı anda Azure birden çok görev gerçekleştirmenize olanak tanır.

Bu makale, Azure PowerShell cmdlet'leri PowerShell İşleri olarak çalıştırmaya ve tamamlanmasını denetlemeye yönelik kısa bir genel bakış sağlar. Azure PowerShell komutlarını çalıştırmak için Azure bağlamları ve oturum açma kimlik bilgileri ayrıntılarıyla ele alınan Azure PowerShell bağlamlarının kullanılması gerekir. PowerShell İşleri hakkında daha fazla bilgi edinmek için bkz. PowerShell İşleri Hakkında.

Azure bağlamları ve PowerShell işleri

PowerShell İşleri, ekli bir PowerShell oturumu olmadan ayrı işlemler olarak çalıştırılır, bu nedenle Azure kimlik bilgilerinizin onlarla paylaşılması gerekir. Kimlik bilgileri, aşağıdaki yöntemlerden biri kullanılarak Azure bağlam nesneleri olarak geçirilir:

  • Otomatik bağlam sürekliliği. Bağlam kalıcılığı varsayılan olarak etkindir ve oturum açma bilgilerinizi birden çok oturumda korur. Bağlam kalıcılığı etkinleştirildiğinde geçerli Azure bağlamı yeni işleme geçirilir:

    Enable-AzContextAutosave # Enables context autosave if not already on
    $vmadmin = Get-Credential
    
    Start-Job {
      New-AzVM -Name MyVm -Credential $Using:vmadmin
    }
    
  • AzContext parametresine sahip herhangi bir Azure PowerShell cmdlet'i ile Azure bağlam nesnesi sağlayın:

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

    Bağlam kalıcılığı devre dışı bırakılırsa AzContext parametresi gereklidir.

  • Bazı Azure PowerShell cmdlet'leri tarafından sağlanan AsJob parametresini kullanın. Bu parametre, etkin Azure bağlamını kullanarak cmdlet'i otomatik olarak bir PowerShell İşi olarak başlatır.

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

    Bir cmdlet'in AsJob'ı desteklediğini görmek için başvuru belgelerine bakın. AsJob parametresi bağlam otomatik kaydetmenin etkinleştirilmesini gerektirmez.

Get-Job cmdlet'ini kullanarak çalışan bir işin durumunu de kontrol edebilirsiniz. Şu ana kadar bir işten çıktı almak için Receive-Job cmdlet'ini kullanın.

bir işlemin ilerleme durumunu Azure uzaktan denetlemek için, iş tarafından değiştirilen kaynak türüyle ilişkili Get cmdlet'lerini kullanın:

$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

Ayrıca Bkz