Bagikan melalui


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

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.