about_Profiles

Deskripsi singkat

Menjelaskan cara membuat dan menggunakan profil PowerShell.

Deskripsi panjang

Anda dapat membuat profil PowerShell untuk menyesuaikan lingkungan Anda dan menambahkan elemen khusus sesi ke setiap sesi PowerShell yang Anda mulai.

Profil PowerShell adalah skrip yang berjalan saat PowerShell dimulai. Anda dapat menggunakan profil sebagai skrip startup untuk menyesuaikan lingkungan Anda. Anda dapat menambahkan perintah, alias, fungsi, variabel, modul, drive PowerShell, dan banyak lagi. Anda juga dapat menambahkan elemen khusus sesi lainnya ke profil Anda sehingga tersedia di setiap sesi tanpa harus mengimpor atau membuatnya kembali.

PowerShell mendukung beberapa profil untuk pengguna dan program host. Namun, itu tidak membuat profil untuk Anda.

Jenis dan lokasi profil

PowerShell mendukung beberapa file profil yang dilingkupkan ke pengguna dan host PowerShell. Anda dapat memiliki salah satu atau semua profil ini di komputer Anda.

Konsol PowerShell mendukung file profil dasar berikut. Jalur file ini adalah lokasi default.

  • Semua Pengguna, Semua Host
    • Windows - $PSHOME\Profile.ps1
    • Linux - /opt/microsoft/powershell/7/profile.ps1
    • macOS - /usr/local/microsoft/powershell/7/profile.ps1
  • Semua Pengguna, Host Saat Ini
    • Windows - $PSHOME\Microsoft.PowerShell_profile.ps1
    • Linux - /opt/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
    • macOS - /usr/local/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
  • Pengguna Saat Ini, Semua Host
    • Windows - $HOME\Documents\PowerShell\Profile.ps1
    • Linux - ~/.config/powershell/profile.ps1
    • macOS - ~/.config/powershell/profile.ps1
  • Pengguna saat ini, Host Saat Ini
    • Windows - $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
    • Linux - ~/.config/powershell/Microsoft.PowerShell_profile.ps1
    • macOS - ~/.config/powershell/Microsoft.PowerShell_profile.ps1

Catatan

Di Windows, lokasi Documents folder dapat diubah oleh pengalihan folder atau OneDrive. Kami tidak menyarankan untuk mengalihkan Documents folder ke berbagi jaringan atau menyertakannya di OneDrive. Mengalihkan folder dapat menyebabkan modul gagal memuat dan membuat kesalahan di skrip profil Anda. Untuk informasi tentang menghapus Documents folder dari manajemen OneDrive, lihat dokumentasi OneDrive.

Skrip profil dijalankan dalam urutan yang tercantum. Ini berarti bahwa perubahan yang dilakukan di profil AllUsersAllHosts dapat ditimpa oleh salah satu skrip profil lainnya. Profil CurrentUserCurrentHost selalu berjalan terakhir. Di Bantuan PowerShell, profil CurrentUserCurrentHost adalah profil yang paling sering disebut sebagai profil PowerShell Anda.

Program lain yang menghosting PowerShell dapat mendukung profil mereka sendiri. Misalnya, Visual Studio Code (VS Code) mendukung profil khusus host berikut.

  • Semua pengguna, Host Saat Ini - $PSHOME\Microsoft.VSCode_profile.ps1
  • Pengguna saat ini, Host Saat Ini - $HOME\Documents\PowerShell\Microsoft.VSCode_profile.ps1

Jalur profil mencakup variabel berikut:

  • Variabel $PSHOME menyimpan direktori penginstalan untuk PowerShell
  • Variabel $HOME menyimpan direktori beranda pengguna saat ini

Catatan

Di Windows, lokasi Documents folder dapat diubah oleh pengalihan folder atau OneDrive. Kami tidak menyarankan untuk mengalihkan Documents folder ke berbagi jaringan atau menyertakannya di OneDrive. Mengalihkan folder dapat menyebabkan modul gagal memuat dan membuat kesalahan di skrip profil Anda. Untuk informasi tentang menghapus Documents folder dari manajemen OneDrive, lihat dokumentasi OneDrive.

Variabel $PROFILE

Variabel $PROFILE otomatis menyimpan jalur ke profil PowerShell yang tersedia dalam sesi saat ini.

Untuk melihat jalur profil, tampilkan nilai $PROFILE variabel. Anda juga dapat menggunakan $PROFILE variabel dalam perintah untuk mewakili jalur.

Variabel $PROFILE menyimpan jalur ke profil "Pengguna Saat Ini, Host Saat Ini". Profil lain disimpan dalam properti catatan variabel $PROFILE .

Misalnya, $PROFILE variabel memiliki nilai berikut di konsol Windows PowerShell.

  • Pengguna Saat Ini, Host Saat Ini - $PROFILE
  • Pengguna Saat Ini, Host Saat Ini - $PROFILE.CurrentUserCurrentHost
  • Pengguna Saat Ini, Semua Host - $PROFILE.CurrentUserAllHosts
  • Semua Pengguna, Host Saat Ini - $PROFILE.AllUsersCurrentHost
  • Semua Pengguna, Semua Host - $PROFILE.AllUsersAllHosts

Karena nilai $PROFILE variabel berubah untuk setiap pengguna dan di setiap aplikasi host, pastikan Anda menampilkan nilai variabel profil di setiap aplikasi host PowerShell yang Anda gunakan.

Untuk melihat nilai $PROFILE variabel saat ini, ketik:

$PROFILE | Select-Object *

Anda dapat menggunakan $PROFILE variabel dalam banyak perintah. Misalnya, perintah berikut membuka profil "Pengguna Saat Ini, Host Saat Ini" di Notepad:

notepad $PROFILE

Perintah berikut menentukan apakah profil "Semua Pengguna, Semua Host" telah dibuat di komputer lokal:

Test-Path -Path $PROFILE.AllUsersAllHosts

Cara membuat profil

Untuk membuat profil PowerShell, gunakan format perintah berikut:

if (!(Test-Path -Path <profile-name>)) {
  New-Item -ItemType File -Path <profile-name> -Force
}

Misalnya, untuk membuat profil untuk pengguna saat ini di aplikasi host PowerShell saat ini, gunakan perintah berikut:

if (!(Test-Path -Path $PROFILE)) {
  New-Item -ItemType File -Path $PROFILE -Force
}

Dalam perintah ini, if pernyataan mencegah Anda menimpa profil yang ada. Ganti nilai $PROFILE variabel dengan jalur ke file profil yang ingin Anda buat.

Catatan

Untuk membuat profil "Semua Pengguna" di Windows Vista dan versi Windows yang lebih baru, mulai PowerShell dengan opsi Jalankan sebagai administrator .

Cara mengedit profil

Anda dapat membuka profil PowerShell apa pun di editor teks, seperti Notepad.

Untuk membuka profil pengguna saat ini di aplikasi host PowerShell saat ini di Notepad, ketik:

notepad $PROFILE

Untuk membuka profil lain, tentukan nama profil. Misalnya, untuk membuka profil untuk semua pengguna semua aplikasi host, ketik:

notepad $PROFILE.AllUsersAllHosts

Untuk menerapkan perubahan, simpan file profil, lalu mulai ulang PowerShell.

Cara memilih profil

Jika Anda menggunakan beberapa aplikasi host, letakkan item yang Anda gunakan di semua aplikasi host ke profil Anda $PROFILE.CurrentUserAllHosts . Letakkan item yang khusus untuk aplikasi host, seperti perintah yang mengatur warna latar belakang untuk aplikasi host, di profil yang khusus untuk aplikasi host tersebut.

Jika Anda adalah administrator yang menyesuaikan PowerShell untuk banyak pengguna, ikuti panduan berikut:

  • Menyimpan item umum di $PROFILE.AllUsersAllHosts profil
  • Menyimpan item yang khusus untuk aplikasi host di $PROFILE.AllUsersCurrentHost profil yang khusus untuk aplikasi host
  • Menyimpan item untuk pengguna tertentu di profil khusus pengguna

Pastikan untuk memeriksa dokumentasi aplikasi host untuk implementasi khusus profil PowerShell.

Cara menggunakan profil

Banyak item yang Anda buat di PowerShell dan sebagian besar perintah yang Anda jalankan hanya memengaruhi sesi saat ini. Saat Anda mengakhiri sesi, item akan dihapus.

Perintah dan item khusus sesi mencakup variabel PowerShell, variabel lingkungan, alias, fungsi, perintah, dan modul PowerShell yang Anda tambahkan ke sesi.

Untuk menyimpan item ini dan membuatnya tersedia di semua sesi mendatang, tambahkan item tersebut ke profil PowerShell.

Penggunaan umum lainnya untuk profil adalah menyimpan fungsi, alias, dan variabel yang sering digunakan. Saat menyimpan item di profil, Anda dapat menggunakannya dalam sesi apa pun yang berlaku tanpa membuatnya kembali.

Cara memulai profil

Saat Anda membuka file profil, file tersebut kosong. Namun, Anda dapat mengisinya dengan variabel, alias, dan perintah yang sering Anda gunakan.

Berikut adalah beberapa saran untuk memulai.

Menambahkan fungsi yang mencantumkan alias untuk cmdlet apa pun

function Get-CmdletAlias ($cmdletname) {
  Get-Alias |
    Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
      Format-Table -Property Definition, Name -AutoSize
}

Menyesuaikan konsol Anda

function CustomizeConsole {
  $hosttime = (Get-ChildItem -Path $PSHOME\pwsh.exe).CreationTime
  $hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
  $Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)"
  Clear-Host
}
CustomizeConsole

Menambahkan perintah PowerShell yang dikustomisasi

function Prompt {
    $env:COMPUTERNAME + "\" + (Get-Location) + "> "
}

Untuk informasi selengkapnya tentang perintah PowerShell, lihat about_Prompts.

Untuk contoh profil lainnya, lihat Menyesuaikan lingkungan shell Anda.

Parameter NoProfile

Untuk memulai PowerShell tanpa profil, gunakan parameter NoProfile dari pwsh.exe, program yang memulai PowerShell.

Untuk memulai, buka program yang dapat memulai PowerShell, seperti Cmd.exe atau PowerShell itu sendiri. Anda juga dapat menggunakan kotak dialog Jalankan di Windows.

Jenis:

pwsh -NoProfile

Untuk daftar lengkap parameter , pwsh.exeketik:

pwsh -?

Profil dan Kebijakan Eksekusi

Kebijakan eksekusi PowerShell menentukan, sebagian, apakah Anda dapat menjalankan skrip dan memuat file konfigurasi, termasuk profil. Kebijakan eksekusi Terbatas adalah default. Ini mencegah semua skrip berjalan, termasuk profil. Jika Anda menggunakan kebijakan "Dibatasi", profil tidak berjalan, dan kontennya tidak diterapkan.

Perintah Set-ExecutionPolicy menetapkan dan mengubah kebijakan eksekusi Anda. ini adalah salah satu dari beberapa perintah yang berlaku di semua sesi PowerShell karena nilai disimpan dalam registri. Anda tidak perlu mengaturnya saat membuka konsol, dan Anda tidak perlu menyimpan Set-ExecutionPolicy perintah di profil Anda.

Profil dan sesi jarak jauh

Profil PowerShell tidak berjalan secara otomatis dalam sesi jarak jauh, sehingga perintah yang ditambahkan profil tidak ada di sesi jarak jauh. Selain itu, $PROFILE variabel otomatis tidak diisi dalam sesi jarak jauh.

Untuk menjalankan profil dalam sesi, gunakan cmdlet Invoke-Command .

Misalnya, perintah berikut menjalankan profil "Pengguna saat ini, Host Saat Ini" dari komputer lokal dalam sesi di $s.

Invoke-Command -Session $s -FilePath $PROFILE

Perintah berikut menjalankan profil "Pengguna saat ini, Host Saat Ini" dari komputer jarak jauh dalam sesi di $s. $PROFILE Karena variabel tidak diisi, perintah menggunakan jalur eksplisit ke profil. Kami menggunakan operator sumber titik sehingga profil dijalankan dalam cakupan saat ini pada komputer jarak jauh dan bukan dalam cakupannya sendiri.

Invoke-Command -Session $s -ScriptBlock {
  . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"
}

Setelah menjalankan perintah ini, perintah yang ditambahkan profil ke sesi tersedia di $s.

Lihat juga