Aracılığıyla paylaş


about_Profiles

Kısa açıklama

PowerShell profilinin nasıl oluşturulacağını ve kullanılacağını açıklar.

Uzun açıklama

Ortamınızı özelleştirmek için bir PowerShell profili oluşturabilir ve başlattığınız her PowerShell oturumuna oturuma özgü öğeler ekleyebilirsiniz.

PowerShell profili, PowerShell başlatıldığında çalışan bir betiktir. Ortamınızı özelleştirmek için profili başlangıç betiği olarak kullanabilirsiniz. Komutlar, diğer adlar, işlevler, değişkenler, modüller, PowerShell sürücüleri ve daha fazlasını 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.

Profil türleri ve konumları

PowerShell, kapsamı kullanıcılar ve PowerShell konakları olan çeşitli profil dosyalarını destekler. Bilgisayarınızda bu profillerin herhangi birine veya tümüne sahip olabilirsiniz.

PowerShell konsolu aşağıdaki temel profil dosyalarını destekler. Bu dosya yolları varsayılan konumlardır.

  • Tüm Kullanıcılar, Tüm Konaklar
    • Windows - $PSHOME\Profile.ps1
    • Linux- /opt/microsoft/powershell/7/profile.ps1
    • Macos- /usr/local/microsoft/powershell/7/profile.ps1
  • Tüm Kullanıcılar, Geçerli Ana Bilgisayar
    • 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
  • Geçerli Kullanıcı, Tüm Konaklar
    • Windows - $HOME\Documents\PowerShell\Profile.ps1
    • Linux- ~/.config/powershell/profile.ps1
    • Macos- ~/.config/powershell/profile.ps1
  • 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

Not

Windows'da klasörün konumu Documents klasör yeniden yönlendirme veya OneDrive ile değiştirilebilir. Klasörü bir ağ paylaşımına Documents yeniden yönlendirmenizi veya OneDrive'a eklemenizi önermeyiz. Klasörü yeniden yönlendirmek, modüllerin yüklenememesine ve profil betiklerinizde hatalar oluşturmasına neden olabilir. Klasörü OneDrive yönetiminden Documents kaldırma hakkında bilgi için OneDrive belgelerine bakın.

Profil betikleri listelenen sırayla yürütülür. Bu, AllUsersAllHosts profilinde yapılan değişikliklerin diğer profil betiklerinden herhangi biri tarafından geçersiz kılınabileceği anlamına gelir. CurrentUserCurrentHost profili her zaman en son çalışır. PowerShell Yardımı'nda CurrentUserCurrentHost profili, en sık PowerShell profiliniz olarak adlandırılan profildir.

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 Ana Bilgisayar - $PSHOME\Microsoft.VSCode_profile.ps1
  • Geçerli kullanıcı, Geçerli Ana Bilgisayar - $HOME\Documents\PowerShell\Microsoft.VSCode_profile.ps1

Profil yolları aşağıdaki değişkenleri içerir:

  • $PSHOME değişkeni PowerShell için yükleme dizinini depolar
  • $HOME değişkeni geçerli kullanıcının giriş dizinini depolar

Not

Windows'da klasörün konumu Documents klasör yeniden yönlendirme veya OneDrive ile değiştirilebilir. Klasörü bir ağ paylaşımına Documents yeniden yönlendirmenizi veya OneDrive'a eklemenizi önermeyiz. Klasörü yeniden yönlendirmek, modüllerin yüklenememesine ve profil betiklerinizde hatalar oluşturmasına neden olabilir. Klasörü OneDrive yönetiminden Documents kaldırma hakkında bilgi için OneDrive belgelerine bakın.

$PROFILE değişkeni

Otomatik $PROFILE değişken, 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 de kullanabilirsiniz $PROFILE .

değişkeni , $PROFILE "Geçerli Kullanıcı, Geçerli Ana Bilgisayar" profilinin yolunu depolar. Diğer profiller değişkenin 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 | Select-Object *

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, var olan bir profilin üzerine yazmanızı engeller. değişkeninin $PROFILE değerini oluşturmak istediğiniz profil dosyasının yoluyla 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ının arka plan rengini ayarlayan bir 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 $PROFILE.AllUsersCurrentHost özgü profillerde 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, oturuma eklediğiniz PowerShell değişkenlerini, ortam değişkenlerini, diğer adları, işlevleri, komutları ve PowerShell modüllerini içerir.

Bu öğeleri kaydetmek ve gelecekteki tüm oturumlarda kullanılabilir hale getirmek için bunları 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 dosya boş olur. Ancak, bunu sık kullandığınız değişkenler, diğer adlar ve komutlarla doldurabilirsiniz.

İşte başlamanıza yönelik birkaç öneri.

Herhangi bir cmdlet için diğer adları 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 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

Özelleştirilmiş bir PowerShell istemi ekleme

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

PowerShell istemi hakkında daha fazla bilgi için bkz. about_Prompts.

Diğer profil örnekleri için bkz. Kabuk ortamınızı özelleştirme.

NoProfile parametresi

PowerShell'i profilleriz olarak başlatmak için, PowerShell'i başlatan programın NoProfile parametresini pwsh.exekullanı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.exetam listesi için şunu yazın:

pwsh -?

Profiller ve Yürütme İlkesi

PowerShell yürütme ilkesi kısmen, profiller dahil olmak üzere betikleri çalıştırıp yükleyemeyeceğinizi ve yapılandırma dosyalarını yükleyip yükleyemeyeceğinizi belirler. Kısıtlanmış 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 ekleyeceği komutlar uzak oturumda mevcut değildir. Ayrıca, $PROFILE otomatik değişken uzak oturumlarda doldurulmaz.

Oturumda profil çalıştırmak için Invoke-Command cmdlet'ini kullanın.

Örneğin, aşağıdaki komut oturumundaki yerel bilgisayardan $s"Geçerli kullanıcı, Geçerli Ana Bilgisayar" profilini çalıştırır.

Invoke-Command -Session $s -FilePath $PROFILE

Aşağıdaki komut, oturumundaki uzak bilgisayardan "Geçerli kullanıcı, Geçerli Ana Bilgisayar $s" profilini çalıştırır. $PROFILE Değişken doldurulmadığından, komutu profilin açık yolunu kullanır. Nokta kaynağını belirleme işlecini kullanarak profilin kendi kapsamında değil uzak bilgisayarda 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 $skullanılabilir.

Ayrıca bkz.