Mempertahankan info masuk pengguna di seluruh sesi PowerShell
Peringatan
Modul AzureRM PowerShell telah resmi tidak digunakan lagi per 29 Februari 2024. Pengguna disarankan untuk bermigrasi dari AzureRM ke modul Az PowerShell untuk memastikan dukungan dan pembaruan yang berkelanjutan.
Meskipun modul AzureRM mungkin masih berfungsi, modul tersebut tidak lagi dipertahankan atau didukung, menempatkan penggunaan berkelanjutan berdasarkan kebijaksanaan dan risiko pengguna. Silakan merujuk ke sumber daya migrasi kami untuk panduan tentang transisi ke modul Az.
Azure PowerShell menawarkan fitur yang disebut Azure Context Autosave, yang memberikan fitur-fitur berikut:
- Retensi informasi masuk untuk digunakan kembali di sesi PowerShell baru.
- Penggunaan tugas latar belakang yang lebih mudah untuk menjalankan cmdlet yang sudah berjalan lama.
- Beralih antar akun, langganan, dan lingkungan tanpa masuk terpisah.
- Eksekusi tugas menggunakan info masuk dan langganan yang berbeda, secara bersamaan, dari sesi PowerShell yang sama.
Konteks Azure yang ditentukan
Konteks Azure adalah kumpulan informasi yang menentukan target cmdlet Azure PowerShell. Konteks Azure terdiri dari lima bagian:
- Akun - Nama Pengguna atau Perwakilan Layanan yang digunakan untuk mengautentikasi komunikasi dengan Azure
- Langganan - Langganan Azure dengan Sumber Daya yang ditindaklanjuti.
- Penyewa - Penyewa Microsoft Entra yang berisi langganan Anda. Penyewa lebih penting untuk autentikasi ServicePrincipal.
- Lingkungan - Azure Cloud tertentu yang menjadi target, biasanya Azure global Cloud. Namun, pengaturan lingkungan memungkinkan Anda untuk menargetkan cloud (Azure Stack) Nasional, Pemerintah, dan lokal juga.
- Info masuk - Informasi yang digunakan oleh Azure untuk memverifikasi identitas Anda dan mengonfirmasi otorisasi Anda untuk mengakses sumber daya di Azure
Dalam rilis sebelumnya, Azure Context harus dibuat setiap kali Anda membuka sesi PowerShell baru. Dimulai dengan Azure PowerShell v4.4.0, Azure Contexts dapat secara otomatis disimpan setiap kali membuka sesi PowerShell baru.
Secara otomatis menyimpan konteks untuk masuk berikutnya
Di versi 6.3.0 dan versi lebih baru, Azure PowerShell menyimpan informasi konteks Anda secara otomatis di antara sesi. Untuk mengatur PowerShell agar lupa konteks dan info masuk Anda, gunakan Disable-AzureRmContextAutoSave
. Anda harus masuk ke Azure setiap kali membuka sesi PowerShell.
Untuk mengizinkan Azure PowerShell mengingat konteks Anda setelah sesi PowerShell ditutup, gunakan Enable-AzureRmContextAutosave
. Informasi konteks dan info masuk secara otomatis disimpan dalam folder tersembunyi khusus di direktori pengguna Anda (%AppData%\Roaming\Windows Azure PowerShell
). Setiap sesi PowerShell baru menargetkan konteks yang digunakan di sesi terakhir Anda.
Cmdlet yang memungkinkan Anda mengelola konteks Azure juga memungkinkan Anda mengontrol berbutir halus. Jika Anda ingin perubahan hanya berlaku untuk sesi PowerShell saat ini (cakupan Process
) atau setiap sesi PowerShell (cakupan CurrentUser
). Opsi ini dibahas secara detail dalam Menggunakan Cakupan Konteks.
Menjalankan cmdlet Azure PowerShell sebagai pekerjaan latar belakang
Fitur Azure Context Autosave juga memungkinkan Anda berbagi konteks dengan pekerjaan latar belakang PowerShell. PowerShell memungkinkan Anda memulai dan memantau tugas yang telah lama dijalankan sebagai pekerjaan latar belakang tanpa harus menunggu tugas selesai. Anda dapat berbagi info masuk dengan pekerjaan latar belakang dengan dua cara berbeda:
Meneruskan konteks sebagai argumen
Sebagian besar cmdlet AzureRM memungkinkan Anda meneruskan konteks sebagai parameter ke cmdlet. Anda dapat meneruskan konteks ke pekerjaan latar belakang seperti yang ditunjukkan dalam contoh berikut:
$job = Start-Job { param ($ctx) New-AzureRmVm -AzureRmContext $ctx [... Parameter tambahan ...]} -ArgumentList (Get-AzureRmContext)
- Using the default context with Autosave enabled
If you have enabled **Context Autosave**, background jobs automatically use the default saved
context.
```powershell
$job = Start-Job { New-AzureRmVm [... Additional parameters ...]}
Saat Anda perlu mengetahui hasil dari tugas latar belakang, gunakan Get-Job
untuk memeriksa status pekerjaan dan Wait-Job
untuk menunggu Pekerjaan selesai. Gunakan Receive-Job
untuk menangkap atau menampilkan output dari pekerjaan latar belakang. Untuk informasi selengkapnya, lihat about_Jobs.
Membuat, memilih, mengganti nama, dan menghapus konteks
Untuk membuat konteks, Anda harus masuk ke Azure. Cmdlet Connect-AzureRmAccount
(atau aliasnya, Login-AzureRmAccount
) menetapkan konteks default yang digunakan oleh cmdlet Azure PowerShell, dan memungkinkan Anda mengakses penyewa atau langganan apa pun yang diizinkan oleh info masuk Anda.
Untuk menambahkan konteks baru setelah masuk, gunakan Set-AzureRmContext
(atau aliasnya, Select-AzureRmSubscription
).
Set-AzureRMContext -Subscription 'Contoso Subscription 1' -Name 'Contoso1'
Contoh sebelumnya menambahkan konteks baru yang menargetkan 'Langganan Contoso 1' menggunakan info masuk Anda saat ini. Konteks baru ini diberi nama 'Contoso1'. Jika Anda tidak memberikan nama untuk konteks tersebut, nama default, menggunakan ID akun dan ID langganan digunakan.
Untuk mengganti nama konteks yang ada, gunakan cmdlet Rename-AzureRmContext
. Contohnya:
Rename-AzureRmContext '[user1@contoso.org; 123456-7890-1234-564321]' 'Contoso2'
Contoh ini mengganti nama konteks dengan nama [user1@contoso.org; 123456-7890-1234-564321]
otomatis menjadi nama sederhana 'Contoso2'. Cmdlet yang mengelola konteks juga menggunakan penyelesaian tab, memungkinkan Anda memilih konteks dengan cepat.
Terakhir, untuk menghapus konteks, gunakan cmdlet Remove-AzureRmContext
. Contohnya:
Remove-AzureRmContext Contoso2
Lupa konteks yang diberi nama 'Contoso2'. Anda dapat membuat ulang konteks ini menggunakan Set-AzureRmContext
Menghapus info masuk
Anda dapat menghapus semua info masuk dan konteks terkait untuk pengguna atau perwakilan layanan yang menggunakan Disconnect-AzureRmAccount
(juga dikenal sebagai Logout-AzureRmAccount
). Saat dijalankan tanpa parameter, cmdlet Disconnect-AzureRmAccount
menghapus semua info masuk dan konteks yang terkait dengan Pengguna atau Perwakilan Layanan dalam konteks saat ini. Anda dapat meneruskan Nama Pengguna, Nama Perwakilan Layanan, atau konteks untuk menargetkan perwakilan tertentu.
Disconnect-AzureRmAccount user1@contoso.org
Menggunakan cakupan konteks
Terkadang, Anda mungkin ingin memilih, mengubah, atau menghapus konteks dalam sesi PowerShell tanpa memengaruhi sesi lain. Untuk mengubah perilaku default cmdlet konteks, gunakan parameter Scope
. Cakupan Process
menimpa perilaku default dengan membuatnya hanya berlaku untuk sesi saat ini. Sebaliknya, cakupan CurrentUser
mengubah konteks di semua sesi, bukan hanya sesi saat ini.
Misalnya, untuk mengubah konteks default dalam sesi PowerShell saat ini tanpa memengaruhi jendela lain, atau konteks yang digunakan saat sesi dibuka, gunakan:
Select-AzureRmContext Contoso1 -Scope Process
Cara pengaturan simpan otomatis konteks diingat
Pengaturan Simpan-otomatis konteks disimpan ke direktori Azure PowerShell pengguna (%AppData%\Roaming\Windows Azure PowerShell
). Beberapa jenis akun komputer mungkin tidak memiliki akses ke direktori ini. Untuk skenario seperti itu, Anda dapat menggunakan variabel lingkungan
$env:AzureRmContextAutoSave=$true
Saat diatur ke $true
, konteks disimpan secara otomatis. Jika diatur ke $false
, konteks tidak disimpan.
Perubahan pada modul AzureRM.Profile
Cmdlet baru untuk mengelola konteks
- Enable-AzureRmContextAutosave - Mengizinkan penyimpanan konteks antara sesi powershell. Setiap perubahan mengubah konteks global.
- Disable-AzureRmContextAutosave - Menonaktifkan penyimpanan otomatis konteks. Setiap sesi PowerShell baru diperlukan untuk masuk lagi.
- Select-AzureRmContext - Memilih konteks sebagai default. Semua cmdlet menggunakan info masuk dalam konteks ini untuk autentikasi.
- Disconnect-AzureRmAccount - Menghapus semua info masuk dan konteks yang terkait dengan akun.
- Remove-AzureRmContext - Menghapus konteks bernama.
- Rename-AzureRmContext - Mengganti nama konteks yang ada.
Perubahan pada cmdlet profil yang ada
- Add-AzureRmAccount - Mengizinkan cakupan masuk ke proses atau pengguna saat ini. Izinkan penamaan konteks default setelah autentikasi.
- Import-AzureRmContext - Mengizinkan cakupan masuk ke proses atau pengguna saat ini.
- Set-AzureRmContext - Mengizinkan pemilihan konteks bernama yang ada, dan perubahan cakupan pada proses atau pengguna saat ini.