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
- Windows -
- 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
- Windows -
- Pengguna Saat Ini, Semua Host
- Windows -
$HOME\Documents\PowerShell\Profile.ps1
- Linux -
~/.config/powershell/profile.ps1
- macOS -
~/.config/powershell/profile.ps1
- Windows -
- 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
- Windows -
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
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.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 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
.