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 masuk untuk menyesuaikan lingkungan. Anda dapat menambahkan perintah, alias, fungsi, variabel, snap-in, modul, dan drive PowerShell. 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. Topik ini menjelaskan profil, dan menjelaskan cara membuat dan memelihara profil di komputer Anda.

Ini menjelaskan cara menggunakan parameter NoProfile dari konsol PowerShell (pwsh.exe) untuk memulai PowerShell tanpa profil apa pun. Dan, ini menjelaskan efek kebijakan eksekusi PowerShell pada profil.

File Profil

PowerShell mendukung beberapa file profil. Selain itu, program host PowerShell dapat mendukung profil khusus host mereka sendiri.

Misalnya, konsol PowerShell mendukung file profil dasar berikut. Profil tercantum dalam urutan prioritas. Profil pertama memiliki prioritas tertinggi.

  • Semua Pengguna, Semua Host
    • Windows- $PSHOME\Profile.ps1
    • Linux - /usr/local/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 - /usr/local/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

Jalur profil mencakup variabel berikut:

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

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

Di Bantuan PowerShell, profil "CurrentUser, Current Host" adalah profil yang paling sering disebut sebagai profil PowerShell Anda.

Catatan

Di Windows, lokasi folder Dokumen dapat diubah berdasarkan pengalihan folder atau OneDrive. Kami tidak menyarankan untuk mengalihkan folder Dokumen ke berbagi jaringan atau menyertakannya di OneDrive. Mengalihkan folder dapat menyebabkan skrip profil Anda gagal dan modul gagal dimuat.

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 $PROFILE catatan variabel.

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 | Get-Member -Type NoteProperty

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, variabel preferensi, alias, fungsi, perintah (kecuali untuk modul Set-ExecutionPolicy), dan 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 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 membantu Anda memulai.

Tambahkan perintah yang memudahkan Anda membuka profil

Ini sangat berguna jika Anda menggunakan profil selain profil "Pengguna Saat Ini, Host Saat Ini". Misalnya, tambahkan perintah berikut:

function Pro {notepad $PROFILE.CurrentUserAllHosts}

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 Color-Console {
  $Host.ui.rawui.backgroundcolor = "white"
  $Host.ui.rawui.foregroundcolor = "black"
  $hosttime = (Get-ChildItem -Path $PSHOME\pwsh.exe).CreationTime
  $hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
  $Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)"
  Clear-Host
}
Color-Console

Menambahkan perintah PowerShell yang dikustomisasi

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

Untuk informasi selengkapnya tentang perintah PowerShell, lihat about_Prompts.

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.exe, ketik:

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 dijalankan 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