about_Profiles
Kısa açıklama
PowerShell profili oluşturmayı ve kullanmayı açıklar.
Uzun açıklama
Ortamınızı özelleştirmek ve başlattığınız her PowerShell oturumuna oturuma özgü öğeler eklemek için bir PowerShell profili oluşturabilirsiniz.
PowerShell profili, PowerShell başlatıldığında çalışan bir betiktir. Ortamı özelleştirmek için profili oturum açma betiği olarak kullanabilirsiniz. Komutlar, diğer adlar, işlevler, değişkenler, ek bileşenler, modüller ve PowerShell sürücüleri ekleyebilirsiniz. Ayrıca, her oturumda içeri aktarmaya veya yeniden oluşturmaya gerek kalmadan profilinize oturuma özgü diğer öğeleri de ekleyebilirsiniz.
PowerShell, kullanıcılar ve konak programları için çeşitli profilleri destekler. Ancak, sizin için profilleri oluşturmaz. Bu konuda, profiller açıklanır ve bilgisayarınızda profillerin nasıl oluşturulacağı ve korunacağı açıklanır.
PowerShell'i herhangi bir profil olmadan başlatmak için PowerShell konsolunun (pwsh.exe
) NoProfile parametresinin nasıl kullanılacağını açıklar. Ayrıca, PowerShell yürütme ilkesinin profiller üzerindeki etkisi açıklanmaktadır.
Profil Dosyaları
PowerShell çeşitli profil dosyalarını destekler. Ayrıca, PowerShell konak programları kendi konağa özgü profillerini destekleyebilir.
Örneğin, PowerShell konsolu aşağıdaki temel profil dosyalarını destekler. Profiller öncelik sırasına göre listelenir. İlk profil en yüksek önceliğe sahiptir.
- Tüm Kullanıcılar, Tüm Konaklar
- Windows -
$PSHOME\Profile.ps1
- Linux-
/usr/local/microsoft/powershell/7/profile.ps1
- Macos-
/usr/local/microsoft/powershell/7/profile.ps1
- Windows -
- Tüm Kullanıcılar, Geçerli Ana Bilgisayar
- 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
- Windows -
- Geçerli Kullanıcı, Tüm Konaklar
- Windows -
$HOME\Documents\PowerShell\Profile.ps1
- Linux-
~/.config/powershell/profile.ps1
- Macos-
~/.config/powershell/profile.ps1
- Windows -
- Geçerli kullanıcı, Geçerli Ana Bilgisayar
- Windows -
$HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
- Linux-
~/.config/powershell/Microsoft.Powershell_profile.ps1
- Macos-
~/.config/powershell/Microsoft.Powershell_profile.ps1
- Windows -
Profil yolları aşağıdaki değişkenleri içerir:
- değişkeni PowerShell
$PSHOME
için yükleme dizinini depolar $HOME
değişkeni geçerli kullanıcının giriş dizinini depolar
PowerShell'i barındıran diğer programlar kendi profillerini destekleyebilir. Örneğin, Visual Studio Code (VS Code) aşağıdaki konağa özgü profilleri destekler.
- Tüm kullanıcılar, Geçerli Konak -
$PSHOME\Microsoft.VSCode_profile.ps1
- Geçerli kullanıcı, Geçerli Ana Bilgisayar -
$HOME\Documents\PowerShell\Microsoft.VSCode_profile.ps1
PowerShell Yardımı'nda , "CurrentUser, Geçerli Ana Bilgisayar" profili en sık PowerShell profiliniz olarak adlandırılan profildir.
Not
Windows'da Belgeler klasörünün konumu klasör yeniden yönlendirmesi veya OneDrive tarafından değiştirilebilir. Belgeler klasörünü bir ağ paylaşımına yeniden yönlendirmenizi veya OneDrive'a eklemenizi önermeyiz. Klasörü yeniden yönlendirmek profil betiklerinizin başarısız olmasına ve modüllerin yüklenememesine neden olabilir.
$PROFILE değişkeni
Otomatik değişken, $PROFILE
geçerli oturumda kullanılabilen PowerShell profillerinin yollarını depolar.
Profil yolunu görüntülemek için değişkenin $PROFILE
değerini görüntüleyin. Bir yolu temsil etmek için komuttaki değişkenini $PROFILE
de kullanabilirsiniz.
değişkeni , $PROFILE
"Geçerli Kullanıcı, Geçerli Ana Bilgisayar" profilinin yolunu depolar. Diğer profiller değişkeninin not özelliklerine $PROFILE
kaydedilir.
Örneğin değişkeninin $PROFILE
Windows PowerShell konsolunda aşağıdaki değerler bulunur.
- Geçerli Kullanıcı, Geçerli Ana Bilgisayar -
$PROFILE
- Geçerli Kullanıcı, Geçerli Ana Bilgisayar -
$PROFILE.CurrentUserCurrentHost
- Geçerli Kullanıcı, Tüm Konaklar -
$PROFILE.CurrentUserAllHosts
- Tüm Kullanıcılar, Geçerli Konak -
$PROFILE.AllUsersCurrentHost
- Tüm Kullanıcılar, Tüm Konaklar -
$PROFILE.AllUsersAllHosts
Değişkenin $PROFILE
değerleri her kullanıcı ve her konak uygulamasında değiştiğinden, kullandığınız her PowerShell konak uygulamasında profil değişkenlerinin değerlerini görüntülediğinizden emin olun.
Değişkenin geçerli değerlerini $PROFILE
görmek için şunu yazın:
$PROFILE | Get-Member -Type NoteProperty
değişkenini $PROFILE
birçok komutta kullanabilirsiniz. Örneğin, aşağıdaki komut Not Defteri'nde "Geçerli Kullanıcı, Geçerli Ana Bilgisayar" profilini açar:
notepad $PROFILE
Aşağıdaki komut, yerel bilgisayarda "Tüm Kullanıcılar, Tüm Konaklar" profilinin oluşturulup oluşturulmadığını belirler:
Test-Path -Path $PROFILE.AllUsersAllHosts
Profil oluşturma
PowerShell profili oluşturmak için aşağıdaki komut biçimini kullanın:
if (!(Test-Path -Path <profile-name>)) {
New-Item -ItemType File -Path <profile-name> -Force
}
Örneğin, geçerli PowerShell konak uygulamasında geçerli kullanıcı için bir profil oluşturmak için aşağıdaki komutu kullanın:
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Bu komutta if
deyimi, mevcut profilin üzerine yazmanızı engeller. değişkeninin $PROFILE
değerini, oluşturmak istediğiniz profil dosyasının yolu ile değiştirin.
Not
Windows Vista'da ve Windows'un sonraki sürümlerinde "Tüm Kullanıcılar" profilleri oluşturmak için PowerShell'i Yönetici olarak çalıştır seçeneğiyle başlatın.
Profil düzenleme
Herhangi bir PowerShell profilini Not Defteri gibi bir metin düzenleyicisinde açabilirsiniz.
Geçerli PowerShell konak uygulamasındaki geçerli kullanıcının profilini Not Defteri'nde açmak için şunu yazın:
notepad $PROFILE
Diğer profilleri açmak için profil adını belirtin. Örneğin, tüm konak uygulamalarının tüm kullanıcılarının profilini açmak için şunu yazın:
notepad $PROFILE.AllUsersAllHosts
Değişiklikleri uygulamak için profil dosyasını kaydedin ve PowerShell'i yeniden başlatın.
Profil seçme
Birden çok konak uygulaması kullanıyorsanız, tüm konak uygulamalarında kullandığınız öğeleri profilinize $PROFILE.CurrentUserAllHosts
yerleştirin. Konak uygulaması için arka plan rengini ayarlayan komut gibi bir konak uygulamasına özgü öğeleri, söz konusu konak uygulamasına özgü bir profile yerleştirin.
PowerShell'i birçok kullanıcı için özelleştiren bir yöneticiyseniz şu yönergeleri izleyin:
- Ortak öğeleri profilde
$PROFILE.AllUsersAllHosts
depolama - Konak uygulamasına özgü öğeleri konak uygulamaya özgü profillerde
$PROFILE.AllUsersCurrentHost
depolama - Belirli kullanıcılar için öğeleri kullanıcıya özgü profillerde depolama
PowerShell profillerinin özel uygulamaları için konak uygulama belgelerine göz atmayı unutmayın.
Profil kullanma
PowerShell'de oluşturduğunuz öğelerin çoğu ve çalıştırdığınız komutların çoğu yalnızca geçerli oturumu etkiler. Oturumu sonlandırdığınızda, öğeler silinir.
Oturuma özgü komutlar ve öğeler arasında değişkenler, tercih değişkenleri, diğer adlar, işlevler, komutlar ( Set-ExecutionPolicy hariç) ve oturuma eklediğiniz PowerShell modülleri bulunur.
Bu öğeleri kaydetmek ve gelecekteki tüm oturumlarda kullanılabilir hale getirmek için bir PowerShell profiline ekleyin.
Profiller için bir diğer yaygın kullanım da sık kullanılan işlevleri, diğer adları ve değişkenleri kaydetmektir. Öğeleri bir profile kaydettiğinizde, bunları yeniden oluşturmadan herhangi bir geçerli oturumda kullanabilirsiniz.
Profil başlatma
Profil dosyasını açtığınızda boş olur. Ancak, sık kullandığınız değişkenler, diğer adlar ve komutlarla doldurabilirsiniz.
İşte başlamanıza yönelik birkaç öneri.
Profilinizi açmayı kolaylaştıran komutlar ekleme
Bu, özellikle "Geçerli Kullanıcı, Geçerli Ana Bilgisayar" profili dışında bir profil kullanıyorsanız kullanışlıdır. Örneğin, aşağıdaki komutu ekleyin:
function Pro {notepad $PROFILE.CurrentUserAllHosts}
Herhangi bir cmdlet'in diğer adlarını listeleyen bir işlev ekleme
function Get-CmdletAlias ($cmdletname) {
Get-Alias |
Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
Format-Table -Property Definition, Name -AutoSize
}
Konsolunuzu özelleştirme
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
Özelleştirilmiş bir PowerShell istemi ekleme
function Prompt
{
$env:COMPUTERNAME + "\" + (Get-Location) + "> "
}
PowerShell istemi hakkında daha fazla bilgi için bkz. about_Prompts.
NoProfile parametresi
PowerShell'i profil olmadan başlatmak için, PowerShell'i başlatan programın NoProfile parametresini pwsh.exe
kullanın.
Başlamak için, Cmd.exe veya PowerShell gibi PowerShell'i başlatabilen bir program açın. Windows'da Çalıştır iletişim kutusunu da kullanabilirsiniz.
Şunu yazın:
pwsh -NoProfile
parametrelerinin pwsh.exe
tam listesi için şunu yazın:
pwsh -?
Profiller ve Yürütme İlkesi
PowerShell yürütme ilkesi, kısmen betikleri çalıştırıp çalıştıramayacağınızı ve profiller de dahil olmak üzere yapılandırma dosyalarını yükleyip yükleyemeyeceğinizi belirler. Kısıtlı yürütme ilkesi varsayılandır. Profiller de dahil olmak üzere tüm betiklerin çalışmasını engeller. "Kısıtlı" ilkesini kullanırsanız profil çalışmaz ve içeriği uygulanmaz.
Komut Set-ExecutionPolicy
, yürütme ilkenizi ayarlar ve değiştirir. değer kayıt defterine kaydedildiğinden, tüm PowerShell oturumlarında geçerli olan birkaç komutlardan biridir. Konsolu açtığınızda bunu ayarlamanız gerekmez ve profilinizde bir Set-ExecutionPolicy
komut depolamanız gerekmez.
Profiller ve uzak oturumlar
PowerShell profilleri uzak oturumlarda otomatik olarak çalıştırılamaz, bu nedenle profillerin ekli olduğu komutlar uzak oturumda mevcut değildir. Ayrıca, $PROFILE
otomatik değişken uzak oturumlarda doldurulmaz.
Oturumda bir profil çalıştırmak için Invoke-Command cmdlet'ini kullanın.
Örneğin, aşağıdaki komut içindeki oturumdaki $s
yerel bilgisayardan "Geçerli kullanıcı, Geçerli Ana Bilgisayar" profilini çalıştırır.
Invoke-Command -Session $s -FilePath $PROFILE
Aşağıdaki komut, oturumundaki $s
uzak bilgisayardan "Geçerli kullanıcı, Geçerli Ana Bilgisayar" profilini çalıştırır. $PROFILE
Değişken doldurulmadığından komut, profilin açık yolunu kullanır. Nokta kaynağını belirleme işlecini kullanarak profilin kendi kapsamında değil uzak bilgisayardaki geçerli kapsamda yürütülmesini sağlarız.
Invoke-Command -Session $s -ScriptBlock {
. "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"
}
Bu komutu çalıştırdıktan sonra, profilin oturuma eklediği komutlar içinde $s
kullanılabilir.