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

Azure PowerShell, Azure bulutuna bağlanmaya ve yanıtları beklemeye dayanır; dolayısıyla bu cmdlet'lerin çoğu buluttan yanıt alana kadar PowerShell oturumunuzu engeller. PowerShell İşleri, cmdlet'leri tek bir PowerShell oturumu içinden arka planda çalıştırmanıza veya Azure'da aynı anda birden çok görev gerçekleştirmenize olanak tanır.

Bu makalede Azure PowerShell cmdlet'lerini PowerShell İşleri olarak çalıştırma ve tamamlanıp tamamlanmadığını denetleme konusuna kısa bir genel bakış sağlanır. Komutları Azure PowerShell'de çalıştırmak için Azure PowerShell bağlamları gerekir ve bunlar Azure bağlamları ve oturum açma bilgileri konusunda ayrıntılı olarak açıklanmıştır. PowerShell İşleri hakkında daha fazla bilgi edinmek için bkz. PowerShell İşleri hakkında.

PowerShell işleri ile Azure bağlamları

PowerShell İşleri, ekli bir PowerShell oturumu olmadan ayrı işlemler olarak çalışır, dolayısıyla Azure kimlik bilgilerinizin onlarla paylaşılması gerekir. Kimlik bilgileri Azure bağlam nesneleri olarak şu yöntemlerden biriyle geçirilir:

  • Otomatik bağlam kalıcılığı. Bağlam kalıcılığı varsayılan olarak etkinleştirilir ve oturum açma bilgilerinizi birden çok oturum arasında 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 parametresi olan herhangi bir Azure PowerShell cmdlet'i ile bir 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 anahtar, etkin Azure bağlamını kullanarak cmdlet'i otomatik olarak 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.

Çalışan işin durumunu denetlemek için Get-Job cmdlet'ini kullanabilirsiniz. Şimdiye kadar çalışan işten çıkış almak için Receive-Job cmdlet'ini kullanın.

Azure'da bir işlemin ilerleme durumunu uzaktan denetlemek için, iş tarafından değiştirilmekte olan kaynağın türüyle ilişkilendirilmiş 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: