Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
PowerShell profili, PowerShell başlatıldığında çalışan bir betiktir. Ortamı özelleştirmek için profili kullanabilirsiniz. Şunları yapabilirsiniz:
- Eş adlar, işlevler ve değişkenler ekle
- Modülleri yükleme
- PowerShell sürücüleri oluşturma
- Rastgele komutlar çalıştırma
- Tercih ayarlarını değiştirme
Bu ayarları profilinize yerleştirmek, sisteminizde PowerShell'i her başlattığınızda bunların kullanılabilir olmasını sağlar.
Uyarı
Windows'da betik çalıştırmak için PowerShell yürütme ilkesinin en az RemoteSigned
olarak ayarlanması gerekir. Yürütme ilkeleri macOS ve Linux için geçerli değildir. Daha fazla bilgi için bkz. about_Execution_Policy.
$PROFILE değişkeni
$PROFILE
otomatik değişkeni, geçerli oturumda kullanılabilen PowerShell profillerinin yollarını depolar.
Farklı kullanıcı kapsamlarını ve farklı PowerShell konaklarını desteklemek için dört olası profil vardır. Her profil betiği için tam yollar $PROFILE
öğesinin aşağıdaki üye özelliklerinde depolanır.
- TümKullanıcılarTümHostlar
- AllUsersCurrentHost
- CurrentUserAllHosts
- CurrentUserCurrentHost
Tüm kullanıcılar veya yalnızca bir kullanıcı için çalışan profil betikleri oluşturabilirsiniz. CurrentUser. CurrentUser profilleri kullanıcının giriş dizini yolunda depolanır. Konum, işletim sistemine ve kullandığınız PowerShell sürümüne bağlı olarak değişir.
Varsayılan olarak, $PROFILE
değişkenine başvuruda bulunmak "Geçerli Kullanıcı, Geçerli Ana Bilgisayar" profilinin yolunu döndürür. Diğer profiller yoluna $PROFILE
değişkeninin özellikleri aracılığıyla erişilebilir.
Aşağıdaki komut, Windows'taki varsayılan profil konumlarını gösterir.
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
Aşağıdaki komut Ubuntu Linux'ta varsayılan profil konumlarını gösterir.
$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
Tüm PowerShell konakları veya belirli konaklar için çalışan profiller de vardır. Her bir PowerShell konağı için profil betiği, o konak için benzersiz bir ada sahiptir. Örneğin, Windows'ta standart Konsol Konağı'nın veya diğer platformlardaki varsayılan terminal uygulamasının dosya adı Microsoft.PowerShell_profile.ps1
. Visual Studio Code (VS Code) için dosya adı Microsoft.VSCode_profile.ps1
.
Daha fazla bilgi için bkz. about_Profiles.
Kişisel profilinizi oluşturma
PowerShell'i bir sisteme ilk yüklediğinizde, profil betiği dosyaları ve ait oldukları dizinler mevcut değildir. "Aşağıdaki komut, 'Geçerli Kullanıcı, Geçerli Ana Bilgisayar' profil betiği dosyası mevcut değilse onu oluşturur."
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
New-Item
cmdlet'in Force parametresi, mevcut olmayan gerekli klasörleri oluşturur.
Betik dosyasını oluşturduktan sonra, kabuk ortamınızı özelleştirmek için tercih ettiğiniz düzenleyiciyi kullanabilirsiniz.
Profilinize özelleştirme ekleme
Önceki makalelerde, sekme tamamlama, komut tahmincilerive diğer adlarıhakkında konuşuldu. Bu makalelerde gerekli modülleri yüklemek, özel tamamlayıcılar oluşturmak, anahtar bağlamalarını tanımlamak ve diğer ayarlar için kullanılan komutlar gösterildi. Bunlar, her PowerShell etkileşimli oturumunda kullanılabilir olmasını istediğiniz özelleştirme türleridir. Profil betiği bu ayarların yeridir.
Profil betiğinizi düzenlemenin en basit yolu, dosyayı sık kullandığınız kod düzenleyicisinde açmaktır. Örneğin, aşağıdaki komut VS Codeiçinde profili açar.
code $PROFILE
notepad.exe
Windows'ta, Linux'ta vi
veya başka bir metin düzenleyicisinde de kullanabilirsiniz.
Aşağıdaki profil betiğinde, önceki makalelerde bahsedilen özelleştirmelerin çoğu için örnekler verilmiştir. Bu ayarlardan herhangi birini kendi profilinizde kullanabilirsiniz.
## 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
Bu profil betiği aşağıdaki özelleştirme için örnekler sağlar:
- Diğer kök kayıt defteri kovanları için iki yeni PSDrive ekler.
- Bir yükseltilmiş oturumda çalıştığınızda değişen özelleştirilmiş bir istem oluşturur.
- PSReadLine yapılandırıp anahtar bağlaması ekler. Renk ayarları, ANSI renk ayarlarını tanımlamak için $PSStyle özelliğini kullanır.
- dotnet CLI aracı için sekme tamamlama ekler. Araç, komut satırı argümanlarını çözmeye yardımcı olacak parametre sağlar. Register-ArgumentCompleter için betik bloğu, sekmenin tamamlanmasını sağlamak için bu özelliği kullanır.
PowerShell