Profiller hakkında


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 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 komut dosyasıdır. Ortamınızı özelleştirmek için profili bir başlangıç komut dosyası olarak kullanabilirsiniz. Komutlar, takma adlar, işlevler, değişkenler, modüller, PowerShell sürücüleri ve daha fazlasını ekleyebilirsiniz. Ayrıca profilinize oturuma özgü diğer öğeleri de ekleyebilirsiniz, böylece bunları içe aktarmanıza veya yeniden oluşturmanıza gerek kalmadan her oturumda kullanılabilirler.

PowerShell, kullanıcılar ve ana bilgisayar programları için çeşitli profilleri destekler. Ancak profilleri sizin için oluşturmaz.

Profil türleri ve konumları

PowerShell, kullanıcılara ve PowerShell ana bilgisayarlarına yönelik çeşitli profil dosyalarını destekler. Bu profillerin herhangi birini veya tamamını bilgisayarınızda bulundurabilirsiniz.

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

  • Tüm Kullanıcılar, Tüm Toplantı Sahipleri

    • Windows - $PSHOME\Profile.ps1
    • Linux - /opt/microsoft/powershell/7/profile.ps1
    • macOS - /usr/local/microsoft/powershell/7/profile.ps1
  • Tüm Kullanıcılar, Mevcut Toplantı Sahibi

    • 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 Ana Bilgisayarlar

    • 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'ta Belgeler klasörünün konumu, klasör yeniden yönlendirme veya OneDrive ile değiştirilebilir. Belgeler klasörünün bir ağ paylaşımına yeniden yönlendirilmesini veya OneDrive'a dahil edilmesini önermiyoruz. Klasörün yeniden yönlendirilmesi modüllerin yüklenememesine ve profil komut dosyalarınızda hatalar oluşmasına neden olabilir. Belgeler klasörünü OneDrive yönetiminden kaldırma hakkında bilgi için OneDrive belgelerine bakın.

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

PowerShell'i barındıran diğer programlar kendi profillerini destekleyebilir. Örneğin, Visual Studio Code (VS Code) aşağıdaki ana bilgisayara ö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 kurulum dizinini saklar
  • $HOME değişkeni geçerli kullanıcının ana dizinini saklar

$PROFILE değişkeni

$PROFILE otomatik değişkeni, geçerli oturumda kullanılabilen PowerShell profillerinin yollarını saklar.

Bir profil yolunu görüntülemek için $PROFILE değişkeninin değerini görüntüleyin. Bir yolu temsil etmek için bir komutta $PROFILE değişkenini de kullanabilirsiniz.

$PROFILE değişkeni "Geçerli Kullanıcı, Geçerli Ana Bilgisayar" profilinin yolunu saklar. Diğer profiller $PROFILE değişkeninin not özelliklerine kaydedilir.

Örneğin, $PROFILE değişkeni Windows PowerShell konsolunda aşağıdaki değerlere sahiptir.

  • 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 Ana Bilgisayarlar - $PROFILE.CurrentUserAllHosts
  • Tüm Kullanıcılar, Mevcut Ana Bilgisayar - $PROFILE.AllUsersCurrentHost
  • Tüm Kullanıcılar, Tüm Ana Bilgisayarlar - $PROFILE.AllUsersAllHosts

$PROFILE değişkeninin değerleri her kullanıcı için ve her ana bilgisayar uygulamasında değiştiğinden, profil değişkenlerinin değerlerini kullandığınız her PowerShell ana bilgisayar uygulamasında görüntülediğinizden emin olun.

$PROFILE değişkeninin geçerli değerlerini görmek için şunu yazın:

$PROFILE | Select-Object *

$PROFILE değişkenini 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 Ana Bilgisayarlar" profilinin oluşturulup oluşturulmadığını belirler:

Test-Path -Path $PROFILE.AllUsersAllHosts

Profil nasıl oluşturulur

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 ana bilgisayar 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 ifadesi mevcut bir profilin üzerine yazmanızı engeller. $PROFILE değişkeninin değerini, oluşturmak istediğiniz profil dosyasının yoluyla değiştirin.

Not

Windows Vista 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 nasıl düzenlenir

Herhangi bir PowerShell profilini Not Defteri gibi bir metin düzenleyicide açabilirsiniz.

Geçerli PowerShell ana bilgisayar uygulamasında 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 ana bilgisayar 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 ardından PowerShell'i yeniden başlatın.

Profil nasıl seçilir

Birden fazla ana bilgisayar uygulaması kullanıyorsanız, tüm ana makine uygulamalarında kullandığınız öğeleri $PROFILE.CurrentUserAllHosts profilinize yerleştirin. Bir ana bilgisayar uygulamasının arka plan rengini ayarlayan bir komut gibi bir ana bilgisayar uygulamasına özel öğeleri, söz konusu ana bilgisayar uygulamasına özel bir profile yerleştirin.

PowerShell'i birçok kullanıcı için özelleştiren bir yöneticiyseniz şu yönergeleri izleyin:

  • Ortak öğeleri $PROFILE.AllUsersAllHosts profilinde saklayın
  • Bir ana bilgisayar uygulamasına özel öğeleri, ana bilgisayar uygulamasına özel $PROFILE.AllUsersCurrentHost profillerinde saklayın
  • Belirli kullanıcılar için öğeleri kullanıcıya özel profillerde saklayın

PowerShell profillerinin özel uygulamaları için ana bilgisayar uygulaması belgelerini kontrol ettiğinizden emin olun.

Profil nasıl kullanılır?

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, takma 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.

Profillerin bir diğer yaygın kullanımı da sık kullanılan işlevleri, takma adları ve değişkenleri kaydetmektir. Öğeleri bir profile kaydettiğinizde, bunları yeniden oluşturmanıza gerek kalmadan ilgili herhangi bir oturumda kullanabilirsiniz.

Profil nasıl başlatılır

Profil dosyasını açtığınızda boştur. Ancak bunu sık kullandığınız değişkenler, takma adlar ve komutlarla doldurabilirsiniz.

İşte başlamanıza yardımcı olacak birkaç öneri.

Herhangi bir cmdlet'in takma adlarını listeleyen bir işlev ekleyin

function Get-CmdletAlias ($cmdletname) {
  Get-Alias |
    Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
      Format-Table -Property Definition, Name -AutoSize
}

Konsolunuzu özelleştirin

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 profiller olmadan başlatmak için PowerShell'i başlatan program olan pwsh.exe'nin NoProfile parametresini kullanın.

Başlamak için Cmd.exe veya PowerShell'in kendisi gibi PowerShell'i başlatabilecek bir program açın. Windows'ta Çalıştır iletişim kutusunu da kullanabilirsiniz.

Tip :

pwsh -NoProfile

pwsh.exe parametrelerinin tam listesi için şunu yazın:

pwsh -?

Profiller ve Yürütme Politikası

PowerShell yürütme ilkesi, kısmen komut dosyalarını çalıştırıp çalıştıramayacağınızı ve profiller dahil yapılandırma dosyalarını yükleyip yükleyemeyeceğinizi belirler. Kısıtlı yürütme politikası varsayılandır. Profiller dahil tüm komut dosyalarının çalışmasını engeller. "Kısıtlı" ilkesini kullanırsanız profil çalışmaz ve içeriği uygulanmaz.

Set-ExecutionPolicy komutu yürütme politikanızı belirler ve değiştirir. değer kayıt defterine kaydedildiğinden, tüm PowerShell oturumlarında geçerli olan birkaç komuttan biridir. Konsolu açtığınızda bunu ayarlamanıza ve profilinizde Set-ExecutionPolicy komutunu saklamanıza gerek yoktur.

Profiller ve uzak oturumlar

PowerShell profilleri uzak oturumlarda otomatik olarak çalıştırılmadığından profillerin eklediği komutlar uzak oturumda mevcut değildir. Ayrıca $PROFILE otomatik değişkeni uzak oturumlarda doldurulmaz.

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

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

Invoke-Command -Session $s -FilePath $PROFILE

Aşağıdaki komut, $s oturumundaki uzak bilgisayardaki "Geçerli Kullanıcı, Geçerli Ana Bilgisayar" profilini çalıştırır. $PROFILE değişkeni doldurulmadığından komut, profilin açık yolunu kullanır. Profilin kendi kapsamında değil uzak bilgisayardaki geçerli kapsamda yürütülmesi için nokta kaynak operatörünü kullanırı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 $s biçiminde kullanılabilir.

Ayrıca bakınız

  • about_Automatic_Variables
  • about_Execution_Policies
  • about_Functions
  • about_Prompt'lar
  • about_Remote
  • about_Scopes
  • about_Signing
  • Set-ExecutionPolicy

İlgili makaleler