Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Profil PowerShell adalah skrip yang berjalan saat PowerShell dimulai. Anda dapat menggunakan profil untuk menyesuaikan lingkungan. Kamu bisa:
- Menambahkan alias, fungsi, dan variabel
- Memuat modul
- Membuat drive PowerShell
- Jalankan perintah sebarang
- Ubah pengaturan preferensi
Menempatkan pengaturan ini di profil Anda memastikan bahwa pengaturan tersebut tersedia setiap kali Anda memulai PowerShell di sistem Anda.
Nota
Untuk menjalankan skrip di Windows, kebijakan eksekusi PowerShell perlu diatur ke RemoteSigned minimal. Kebijakan eksekusi tidak berlaku untuk macOS dan Linux. Untuk informasi lebih lanjut, lihat about_Execution_Policy.
Variabel $PROFILE
Variabel otomatis $PROFILE menyimpan jalur ke profil PowerShell yang tersedia dalam sesi saat ini.
Ada empat kemungkinan profil yang tersedia untuk mendukung cakupan pengguna yang berbeda dan host PowerShell yang berbeda. Jalur yang sepenuhnya memenuhi syarat untuk setiap skrip profil disimpan di properti anggota berikut dari $PROFILE.
- AllUsersAllHosts
- SemuaPenggunaHostSaatIni
- CurrentUserAllHosts
- CurrentUserCurrentHost
Anda dapat membuat skrip profil yang berjalan untuk semua pengguna atau hanya satu pengguna, CurrentUser. profil CurrentUser disimpan di bawah jalur direktori beranda pengguna. Lokasi bervariasi tergantung pada sistem operasi dan versi PowerShell yang Anda gunakan.
Secara default, merujuk variabel $PROFILE mengembalikan jalur ke profil "Pengguna Saat Ini, Host Saat Ini". Jalur profil lainnya dapat diakses melalui properti variabel $PROFILE.
Perintah berikut menunjukkan lokasi profil default di Windows.
PS> $PROFILE | Select-Object *
AllUsersAllHosts : C:\Program Files\PowerShell\7\profile.ps1
AllUsersCurrentHost : C:\Program Files\PowerShell\7\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts : C:\Users\username\Documents\PowerShell\profile.ps1
CurrentUserCurrentHost : C:\Users\username\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
Length : 69
Perintah berikut menunjukkan lokasi profil default di Ubuntu Linux.
$PROFILE | Select-Object *
AllUsersAllHosts : /opt/microsoft/powershell/7/profile.ps1
AllUsersCurrentHost : /opt/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts : /home/username/.config/powershell/profile.ps1
CurrentUserCurrentHost : /home/username/.config/powershell/Microsoft.PowerShell_profile.ps1
Length : 67
Ada juga profil yang berjalan untuk semua host PowerShell atau host tertentu. Skrip profil untuk setiap host PowerShell memiliki nama yang unik untuk host tersebut. Misalnya, nama file untuk Host Konsol standar di Windows atau aplikasi terminal default di platform lain Microsoft.PowerShell_profile.ps1. Untuk Visual Studio Code (VS Code), nama file Microsoft.VSCode_profile.ps1.
Untuk informasi selengkapnya, lihat about_Profiles.
Cara membuat profil pribadi Anda
Ketika Anda pertama kali menginstal PowerShell pada sistem, file skrip profil dan direktori miliknya tidak ada. Perintah berikut membuat file skrip profil "Pengguna Saat Ini, Host Saat Ini" jika tidak ada.
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Parameter Force dari cmdlet New-Item membuat folder yang diperlukan ketika folder tersebut tidak ada.
Setelah membuat file skrip, Anda dapat menggunakan editor favorit untuk menyesuaikan lingkungan shell Anda.
Menambahkan kustomisasi ke profil Anda
Artikel sebelumnya membahas tentang menggunakan penyelesaian tab , prediktor perintah , dan alias . Artikel ini menunjukkan perintah yang digunakan untuk memuat modul yang diperlukan, membuat penyelesaian kustom, menentukan pengikatan kunci, dan pengaturan lainnya. Kustomisasi ini adalah jenis yang ingin Anda miliki tersedia di setiap sesi interaktif PowerShell. Skrip profil adalah tempat untuk pengaturan ini.
Cara paling sederhana untuk mengedit skrip profil Anda adalah dengan membuka file di editor kode favorit Anda. Misalnya, perintah berikut membuka profil di VS Code.
code $PROFILE
Anda juga dapat menggunakan notepad.exe di Windows, vi di Linux, atau editor teks lainnya.
Skrip profil berikut memiliki contoh untuk banyak kustomisasi yang disebutkan dalam artikel sebelumnya. Anda dapat menggunakan salah satu pengaturan ini di profil Anda sendiri.
## Map PSDrives to other registry hives
if (!(Test-Path HKCR:)) {
$null = New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
$null = New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS
}
## Customize the prompt
function prompt {
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = [Security.Principal.WindowsPrincipal] $identity
$adminRole = [Security.Principal.WindowsBuiltInRole]::Administrator
$prefix = if (Test-Path Variable:/PSDebugContext) { '[DBG]: ' } else { '' }
if ($principal.IsInRole($adminRole)) {
$prefix = "[ADMIN]:$prefix"
}
$body = 'PS ' + $PWD.path
$suffix = $(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
"${prefix}${body}${suffix}"
}
## Create $PSStyle if running on a version older than 7.2
## - Add other ANSI color definitions as needed
if ($PSVersionTable.PSVersion.ToString() -lt '7.2.0') {
# define escape char since "`e" may not be supported
$esc = [char]0x1b
$PSStyle = [pscustomobject]@{
Foreground = @{
Magenta = "${esc}[35m"
BrightYellow = "${esc}[93m"
}
Background = @{
BrightBlack = "${esc}[100m"
}
}
}
## Set PSReadLine options and keybindings
$PSROptions = @{
ContinuationPrompt = ' '
Colors = @{
Operator = $PSStyle.Foreground.Magenta
Parameter = $PSStyle.Foreground.Magenta
Selection = $PSStyle.Background.BrightBlack
InLinePrediction = $PSStyle.Foreground.BrightYellow + $PSStyle.Background.BrightBlack
}
}
Set-PSReadLineOption @PSROptions
Set-PSReadLineKeyHandler -Chord 'Ctrl+f' -Function ForwardWord
Set-PSReadLineKeyHandler -Chord 'Enter' -Function ValidateAndAcceptLine
## Add argument completer for the dotnet CLI tool
$scriptblock = {
param($wordToComplete, $commandAst, $cursorPosition)
dotnet complete --position $cursorPosition $commandAst.ToString() |
ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock $scriptblock
Skrip profil ini menyediakan contoh untuk kustomisasi berikut:
- Menambahkan dua PSDrive baru untuk sarang registri akar lainnya.
- Membuat perintah yang disesuaikan yang berubah jika Anda menjalankan dalam sesi yang ditingkatkan.
- Mengonfigurasi PSReadLine dan menambahkan ikatan kunci. Pengaturan warna menggunakan fitur $PSStyle untuk menentukan pengaturan warna ANSI.
- Menambahkan pelengkapan tab untuk alat dotnet CLI . Alat ini menyediakan parameter untuk membantu menyelesaikan argumen baris perintah. Blok skrip untuk Register-ArgumentCompleter menggunakan fitur tersebut untuk menyediakan penyelesaian tab.