Menjalankan cmdlet Azure PowerShell dalam Pekerjaan PowerShell
Azure PowerShell bergantung pada menyambungkan ke cloud Azure dan menunggu respons, sehingga sebagian besar cmdlet ini memblokir sesi PowerShell Anda hingga mereka mendapatkan respons dari cloud. Pekerjaan PowerShell memungkinkan Anda menjalankan cmdlet di latar belakang atau melakukan beberapa tugas di Azure sekaligus, dari dalam satu sesi PowerShell.
Artikel ini adalah gambaran umum singkat tentang cara menjalankan cmdlet Azure PowerShell sebagai tugas PowerShell dan memeriksa apakah telah selesai. Menjalankan perintah di Azure PowerShell memerlukan penggunaan konteks Azure PowerShell, yang dibahas secara rinci dalam konteks azure dan kredensial masuk. Untuk mempelajari selengkapnya tentang Pekerjaan PowerShell, lihat Tentang Pekerjaan PowerShell.
Konteks Azure dengan tugas PowerShell
Pekerjaan PowerShell dijalankan sebagai proses terpisah tanpa sesi PowerShell terlampir, sehingga kredensial Azure Anda harus dibagikan dengannya. Kredensial diteruskan sebagai objek konteks Azure, menggunakan salah satu metode berikut:
Persistensi konteks otomatis. Ketahanan konteks diaktifkan secara bawaan dan mempertahankan informasi login Anda di beberapa sesi. Dengan persistensi konteks diaktifkan, konteks Azure saat ini diteruskan ke proses baru:
Enable-AzContextAutosave # Enables context autosave if not already on $vmadmin = Get-Credential Start-Job { New-AzVM -Name MyVm -Credential $Using:vmadmin }
Berikan objek konteks Azure dengan cmdlet Azure PowerShell apa pun yang memiliki parameter 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 }
Jika persistensi konteks dinonaktifkan, parameter AzContext diperlukan.
Gunakan parameter AsJob yang disediakan oleh beberapa cmdlet Azure PowerShell. Sakelar ini secara otomatis memulai cmdlet sebagai Pekerjaan PowerShell, menggunakan konteks Azure aktif:
$vmadmin = Get-Credential $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJob
Untuk melihat apakah cmdlet mendukung AsJob, periksa dokumentasi referensinya. Parameter AsJob tidak memerlukan penyimpanan otomatis konteks untuk diaktifkan.
Anda dapat memeriksa status pekerjaan yang sedang berjalan dengan cmdlet Get-Job. Untuk mendapatkan output dari pekerjaan sejauh ini, gunakan cmdlet Receive-Job.
Untuk memeriksa kemajuan operasi dari jarak jauh di Azure, gunakan cmdlet Get
yang terkait dengan jenis sumber daya yang dimodifikasi oleh pekerjaan:
$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
Lihat Juga
Azure PowerShell