PowerShell Profilinizi Nasıl Oluşturur ve Yönetirsiniz?


PowerShell profili, PowerShell oturumu başlattığınızda çalışan bir komut dosyasıdır. Takma adlar, işlevler, değişkenler ve daha fazlasını ayarlayarak PowerShell ortamınızı özelleştirmenize olanak tanır. Profiller, her yeni PowerShell penceresi açtığınızda tercihlerinizi yüklemenizi kolaylaştırır. PowerShell profillerini anlamak, PowerShell ortamınızı özelleştirmenize ve geliştirmenize yardımcı olabilir. Bu kapsamlı kılavuzda PowerShell profilleri dünyasına dalacağız, amaçlarını, farklı türlerini, bunların nasıl bulunup oluşturulacağını ve birden fazla profili nasıl düzenleyeceğimizi ve yöneteceğimizi keşfedeceğiz.

PowerShell Profili nedir?

PowerShell profili, PowerShell başlatıldığında çalışan bir komut dosyasıdır. Profil komut dosyası aşağıdaki gibi şeyleri ayarlamanıza olanak tanır:

  • Yaygın olarak kullanılan komutlar için takma adlar oluşturun
  • Bilgi istemi metni, renk vb. gibi kabuk tercihlerini ayarlayın.
  • Komut dosyalarınızda kullanılacak yararlı işlevleri tanımlayın
  • Her oturumda kullanılmasını istediğiniz modülleri ve ek bileşenleri yükleyin

Kısacası profiller, PowerShell'i her açtığınızda istediğiniz ortamı ayarlayarak size zaman ve emek tasarrufu sağlar. Profiller .ps1 komut dosyaları olarak saklanır.

PowerShell profilinin amacını anlama

PowerShell profili, PowerShell'i başlattığınızda çalışan ve ortamınızı özelleştirmenize ve ortak görevleri otomatikleştirmenize olanak tanıyan bir komut dosyasıdır. Tercih ettiğiniz çalışma ortamını kurmanız ve komutları otomatik olarak yürütmeniz için kullanışlı bir yol sağlar. İster sistem yöneticisi, geliştirici veya uzman kullanıcı olun, PowerShell profili tekrarlanan görevleri otomatikleştirerek ve ortak işlemler için kısayollar sağlayarak üretkenliğinizi büyük ölçüde artırabilir.

PowerShell profilleri birçok avantaj sağlar:

  • Ortamınızı özelleştirin - Renkler, bilgi istemi metni ve takma adlar gibi PowerShell tercihlerini ayarlayın
  • Kodu yeniden kullanın - Oturumlar arasında kullanılacak yardımcı işlevleri tanımlayın
  • Modülleri yükle - Modülleri veya ek bileşenleri otomatik olarak içe aktarın
  • Yürütme politikasını ayarlayın - Komut dosyaları için PowerShell yürütme politikasını değiştirin
  • Ana makinelere uyum sağlayın - Konsol, ISE vb. için geçerli olan ana makineye özel profiller oluşturun.

Profiller, PowerShell her başlatıldığında yapılandırmalarınızı yükleyerek zaman kazandırır. Ortamınızı her oturumda manuel olarak ayarlamak yerine profiller bunu otomatik olarak yapar.

Farklı PowerShell profil türleri

PowerShell, her biri belirli bir amaca hizmet eden, kullanıcıya özel profiller ve PowerShell ana bilgisayarları kapsamındaki farklı profil türlerini destekler. PowerShell'deki $profile otomatik değişkeni geçerli profilinizin yolunu tutar. PowerShell varsayılan olarak dört tür profili destekler:

  • $profile.AllUsersCurrentHost: Bu profil, yerel bilgisayardaki tüm kullanıcılar için geçerlidir ve PowerShell'i varsayılan konsol ana bilgisayarında başlatırken yürütülür.
  • $profile.CurrentUserCurrentHost: Bu profil yalnızca geçerli kullanıcı için geçerlidir ve PowerShell'i varsayılan konsol ana bilgisayarında başlatırken yürütülür.
  • $profile.AllUsersCurrentHost: Bu profil mevcut bilgisayardaki tüm kullanıcılar için geçerlidir ve Windows PowerShell Tümleşik Komut Dosyası Ortamında (ISE) PowerShell başlatılırken yürütülür.
  • $profile.CurrentUserISE: Bu profil yalnızca geçerli kullanıcı için geçerlidir ve Windows PowerShell Tümleşik Komut Dosyası Ortamında (ISE) PowerShell başlatılırken yürütülür.
  • $profile.AllUsersAllHosts: Bu profil tüm kullanıcıları ve tüm ana bilgisayar uygulamalarını etkiler.
  • $profile.CurrentUserAllHosts : Bu profil tüm ana bilgisayar uygulamaları için ancak yalnızca geçerli kullanıcı için yüklenir.

PowerShell profilinizi bulma

PowerShell profilinizi bulmak için PowerShell içindeki $profile değişkenine erişmeniz yeterlidir. Windows'ta profiller varsayılan olarak “$Home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1” konumunda bulunur. Linux'ta profil ~/.config/powershell/profile.ps1 olarak depolanır.

Bir PowerShell konsolu veya Windows PowerShell ISE açın ve aşağıdaki komutu girin:


$profile

Bu, geçerli kullanıcının profil yolunu gösterecektir. Varsayılan olarak profil yolu kullanıcının Belgeler klasörünü içerir. Örneğin yol şöyle görünebilir:

  • Windows PowerShell: C:\Users\Kullanıcı Adınız\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
  • PowerShell 7x: C:\Kullanıcılar\Kullanıcı Adınız\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
  • PowerShell ISE: C:\Users\Kullanıcı Adınız\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1

PowerShell'i başlattığınızda, bu profil komut dosyasını kontrol eder ve özel oturumunuzu başlatmak için çalıştırır.

PowerShell Profili Oluşturma

PowerShell sizin için otomatik olarak bir profil oluşturmaz. Temel bir profil oluşturmak için şu adımları izleyin:

1. Adım: Zaten bir profilin mevcut olup olmadığını kontrol edin

Başlamak için PowerShell'i açın ve profilin zaten mevcut olup olmadığını kontrol edin:


Test-Path -Path $PROFILE

Bu, profil dosyasının varlığına bağlı olarak Doğru veya Yanlış değerini döndürecektir.

2. Adım: Profilinizi bir metin düzenleyicide açın

Profil dosyasını açmak için aşağıdaki komutu çalıştırın:


notepad $PROFILE

Bu, profili not defterinde açar. Profil dosyası yoksa Not Defteri sizden yeni bir dosya oluşturmanızı isteyecektir. Devam etmek için “Evet”e tıklayın.

Alternatif olarak, profil dosyasını .ps1 dosyalarıyla ilişkili varsayılan düzenleyicide açmak için Invoke-Item cmdlet'inin ii takma adını kullanabilirsiniz:


ii $profile

Bu, profil dosyasını varsayılan düzenleyicide açacak ve değiştirilmesini kolaylaştıracaktır. PowerShell komut dosyalarını güncellemek için PowerShell ISE veya Visual Studio Code gibi herhangi bir metin düzenleyiciyi de kullanabilirsiniz.

3. Adım: Profilinizde değişiklik yapın

Artık özelleştirmeye hazır bir profiliniz var! Bir işlev, takma ad vb. ekleyerek profil dosyanızda değişiklikler yapabilir ve dosyayı kaydedebilirsiniz. Bu kadar! Bu profil betiği PowerShell'i her başlattığınızda çalışacaktır.

PowerShell ISE'ye Yeni Profil Ekleme: Alternatif Yaklaşım

Henüz bir PowerShell profiliniz yoksa kolayca bir tane oluşturabilirsiniz. Yeni bir profil oluşturmak için şu adımları izleyin:

  1. Bir PowerShell konsolunu veya Windows PowerShell ISE'yi açın.
  2. Yeni bir profil komut dosyası oluşturmak için aşağıdaki komutu çalıştırın:

New-Item -ItemType File -Path $profile -Force

Bu komut, $profile değişkeni tarafından belirtilen konumda yeni bir dosya oluşturur. -Force parametresi, dizin mevcut olmasa bile dosyanın oluşturulmasını sağlar.

  1. Artık yeni oluşturulan profil dosyasını aşağıdaki komutu çalıştırarak düzenlemek için açabilirsiniz:

notepad $profile

Bu, profil dosyasını Not Defteri'nde veya varsayılan metin düzenleyicinizde açarak PowerShell ortamınızı özelleştirmeye başlamanıza olanak tanır.

PowerShell Profilinizi Nasıl Düzenlersiniz?

PowerShell profilinizi oluşturduktan sonra ihtiyaçlarınıza göre özelleştirmeye başlayabilirsiniz. Profil dosyası, PowerShell başlatıldığında çalışan bir PowerShell betiğidir. Profilinizi özelleştirmek için geçerli herhangi bir PowerShell komutunu, işlevini ve modülünü kullanabilirsiniz. Göz önünde bulundurabileceğiniz bazı yaygın özelleştirmeler şunlardır:

Örnek 1: Yaygın komutlar için takma adlar ekleme

Takma adlar, komutlar veya komut dosyaları için kısayollardır. Zamandan tasarruf etmek ve yazmak için profilinizde takma adlar tanımlayabilirsiniz. Örneğin, uzun ve sık kullanılan bir komut için şu şekilde bir takma ad oluşturabilirsiniz:

Belirli komutları sıklıkla kullanıyorsanız profilinizde bunlar için takma adlar oluşturabilirsiniz. Profilinize içerik eklemek için bu sefer Not Defteri'nde açmak yerine PowerShell'i kullanalım:


Add-Content -Path $PROFILE -Value 'Set-Alias -Name download -Value Invoke-WebRequest'

Artık "Invoke-WebRequest" cmdlet'i yerine "download" yazmanız yeterlidir.

Örnek 2: Modülleri Otomatik Olarak Yükleme

PowerShell modülleri belirli görevler için ek işlevsellik ve cmdlet'ler sağlar. PowerShell'i her başlattığınızda kullanılabilir olmaları için profilinize modüller yükleyebilirsiniz. Örneğin Active Directory modülünü yüklemek için aşağıdaki komutu kullanabilirsiniz:


Import-Module ActiveDirectory

Artık Active Directory modülü tarafından sağlanan tüm cmdlet'leri, her seferinde manuel olarak yüklemenize gerek kalmadan kullanabilirsiniz.

Örnek 3: İstemi Özelleştirme

PowerShell'deki bilgi istemi işlevi, komut isteminin nasıl görüneceğini belirler. Bu işlevi profilinizde tanımlayarak veya değiştirerek isteminizin görünümünü özelleştirebilirsiniz. Aşağıda birkaç örnek verilmiştir:


Function Prompt {
      "PS > "
}

Komut istemine tarihi ekleyelim:


Function Prompt {
   "$(Get-Date -Format 'HH:mm:ss') - $(Get-Location) > "
}

Ayrıca istem rengini de özelleştirebilirsiniz:


Function Prompt {
   $host.UI.RawUI.ForegroundColor = "Green"
}

Bu, PowerShell konsolundaki istemin rengini değiştirir.

Örnek 4: Değişkenleri ve Ortam Değişkenlerini Ayarlama

Ortam değişkenlerini ayarlamak için profilinizi de kullanabilirsiniz. Örneğin:


# Set Environment variable
$Env:Temp = "C:\Temp"
# Append
$env:PATH += ";C:\Scripts"

# Set variables
$ErrorActionPreference = "SilentlyContinue"
$SharePointAdminUrl = "https://crescent-admin.sharepoint.com"

Bu, PowerShell tarafından kullanılan geçici dizini değiştirir. Profilinizde ayarladığınız herhangi bir değişken, gelecekteki tüm oturumlarda mevcut olacaktır.

Örnek 5: Varsayılan Dizinleri Ayarlama

PowerShell'i başlattıktan sonra her zaman aynı dizine giderseniz bunu otomatikleştirebilirsiniz.


Set-Location C:\Scripts

Örnek 6: Varsayılan Parametrelerin Ayarlanması

Cmdlet'ler için varsayılan parametreleri sağlayın.


$PSDefaultParameterValues = @{
    'Get-ChildItem:Force' = $true
}

Örnek 7: Profil Dosyasına işlevler ekleme

İşlevler, bir dizi komutu yeniden kullanılabilir bir kod bloğuna yerleştirmenize olanak tanır. Karmaşık görevleri otomatikleştirmek veya kendi özel cmdlet'lerinizi oluşturmak için profilinizde işlevler tanımlayabilirsiniz. Örneğin, aşağıdaki komut dosyasıyla belirli bir kullanıcı hakkında bilgi almak için bir işlev oluşturabilirsiniz:


# Function to Calculate Folder Size
Function Get-FolderSize {
    param (
        [Parameter(Mandatory=$true)]
        [string]$FolderPath
    )    
    (Get-ChildItem $FolderPath -Recurse | Measure-Object -Property Length -Sum).Sum / 1MB | ForEach-Object { "{0:N2} MB" -f $_ }
}

Şimdi, Bu işlev geçerli betiğin dizinini alır. Profilinize ekledikten sonra herhangi bir oturumdan Get-FolderSize'ı çağırarak klasör boyutunu alabilirsiniz.

Bunlar PowerShell profilinizle yapabileceklerinize yalnızca birkaç örnektir. Olasılıklar sonsuzdur ve profilinizi özel ihtiyaçlarınıza ve tercihlerinize göre özelleştirebilirsiniz.

Örnek 8: Pencere Başlığını Ayarla

PowerShell'de pencere başlığını aşağıdaki script ile değiştirebilirsiniz: Betiğin “Yönetici Olarak Çalıştır” kullanıp kullanmadığını kontrol eder ve Başlığı ayarlar.


$CurrentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
#Check user is running the script is member of Administrator Group
 if($CurrentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator))
 {
    $Host.UI.RawUI.WindowTitle = "Crescent Administrator "
}

Bunlar, hayatınızı kolaylaştırmak ve daha verimli hale getirmek için PowerShell profilinizi nasıl yapılandırabileceğinize dair yalnızca birkaç örnektir. Farklı özelleştirmeleri deneyin ve sizin için en uygun olanı bulun.

PowerShell profilini silme

Artık bir PowerShell profiline ihtiyacınız yoksa sisteminizi temizlemek için profili silebilirsiniz. Bir profili silmek için şu adımları izleyin:

  1. $profile değişkenine erişerek silmek istediğiniz profili bulun.
  2. Öğeyi Kaldır komutunu kullanarak profil dosyasını silin. Örneğin:

Remove-Item -Path $profile -Force

Bu komut profil dosyasını kalıcı olarak kaldıracaktır.

  1. Belirli bir ana bilgisayarın profilini silmek istiyorsanız o ana makineyle ilişkili profili sildiğinizden emin olun. Örneğin, Windows PowerShell Tümleşik Komut Dosyası Ortamı (ISE) profilini silmek için aşağıdaki komutu kullanırsınız:

Remove-Item -Path $profile.CurrentUserISE -Force

Bu adımları takip ederek istenmeyen profilleri sisteminizden kolaylıkla kaldırabilirsiniz.

-NoProfile ile Profilleri Devre Dışı Bırak

Bazen PowerShell'i herhangi bir profil yüklenmeden başlatmak isteyebilirsiniz. Bunu yapmak için PowerShell'i şununla başlatın:


powershell.exe -NoProfile

Bu, herhangi bir profil dosyasını çalıştırmadan oturumu başlatır.

PowerShell profilinizi yeniden yükleme

PowerShell profilinizde değişiklik yaptıktan sonra değişikliklerin etkili olması için yeniden yüklemeniz gerekir. Profilinizi yeniden yüklemek için $profile değişkenini tekrar kullanabilirsiniz. Bir PowerShell konsolu veya Windows PowerShell ISE açın ve aşağıdaki komutu girin:


. $profile

Bu, yaptığınız değişiklikleri uygulayarak profil komut dosyasını yeniden yürütecektir. Alternatif olarak, yeni bir PowerShell oturumu oluşturmak için PowerShell'i kapatıp yeniden açabilirsiniz.

PowerShell Profil Konumunu Değiştirme

PowerShell'de $PROFILE değişkeni, geçerli ana bilgisayar uygulaması için geçerli kullanıcının profil komut dosyasına işaret edecek şekilde otomatik olarak ayarlanır. Önceden tanımlanmış bir dizi yol ve gelenek üzerine inşa edildiğinden, genellikle değiştireceğiniz bir şey değildir. Ancak, profil komut dosyanızın bulunduğu yeri değiştirmek veya profiliniz olarak başka bir dosyayı kullanmak istiyorsanız bunun bir geçici çözümü vardır:

  1. Daha önce de belirtildiği gibi $profile değişkenine erişerek varsayılan profilinizi bulun. Yolunu not edin.
  2. Yeni bir profil oluşturmak için daha önce “Yeni PowerShell profili oluşturma” bölümünde belirtilen adımları izleyin. Varsayılan $profile yolunu kullanmak yerine yeni profil dosyası için farklı bir konum belirtin. Örneğin:

New-Item -Path "$HOME\Documents\WindowsPowerShell\Profile-Work.ps1" -ItemType File -Force
  1. Seçtiğiniz bir metin düzenleyiciyi kullanarak düzenlemek üzere yeni profil dosyasını açın.
  2. Yeni profili gereksinimlerinize göre özelleştirin. Farklı takma adlar ekleyebilir, belirli modülleri yükleyebilir veya benzersiz işlevler tanımlayabilirsiniz.
  3. Belirli bir profili kullanmak için PowerShell'e varsayılan profil yerine onu yüklemesini söylemeniz gerekir. Bunu PowerShell kısayolunu değiştirerek veya yeni bir tane oluşturarak yapabilirsiniz. PowerShell kısayolunu sağ tıklayın, Özellikler'e gidin ve aşağıdaki komutu Hedef alanına ekleyin:

powershell.exe -NoProfile -File C:\Users\Thomas\Documents\WindowsPowerShell\Profile-Work.ps1

“C:\Users\Thomas\Documents\WindowsPowerShell\Profile-Work.ps1” ifadesini özel profil dosyanızın yolu ile değiştirin. Bu kısayol, varsayılan profillerin "-NoProfile" anahtarını kullanarak PowerShell ile yüklenmesini ve özel profilinizi yüklemesini engeller.

Belirli Bir Profili Manuel Olarak Yükleme

Belirli bir profili kullanmak istediğinizde bunu manuel olarak yükleyebilirsiniz:


. $HOME\Documents\WindowsPowerShell\Profile-Work.ps1

Burada $HOME değişkeni geçerli kullanıcının ana dizinini saklar (ve $PSHOME değişkeni PowerShell'in kurulum dizinini ifade eder). Bu adımları takip ederek farklı senaryolar için birden fazla profile sahip olabilir ve ihtiyaçlarınıza göre bunlar arasında kolayca geçiş yapabilirsiniz. Profil konumunu değiştirmek için bir kayıt defteri hack'i de vardır, ancak diğer yan etkileri nedeniyle daha az tavsiye edilir.

PowerShell profilinizi yönetmeye yönelik en iyi uygulamalar

PowerShell profilinizden en iyi şekilde yararlanmak için aşağıdaki en iyi uygulamaları göz önünde bulundurun:

  1. Profilinizi yedekleyin: Kazara kaybolmayı veya bozulmayı önlemek için profil dosyalarınızı düzenli olarak yedeklemek iyi bir fikirdir. Değişiklikleri izlemek için profil dosyalarını güvenli bir konuma kopyalayabilir veya Git gibi sürüm kontrol sistemlerini kullanabilirsiniz.
  2. Profilinizi temiz tutun: Profilinizi gereksiz komutlar veya özelleştirmelerle karmaşık hale getirmekten kaçının. Performans sorunlarından kaçınmak ve temiz ve yönetilebilir bir profil sürdürmek için yalnızca ihtiyacınız olanı ekleyin.
  3. Özelleştirmelerinizi belgeleyin: Profilinizde karmaşık özelleştirmeler yapıyorsanız veya benzersiz işlevler tanımlıyorsanız, bunların amaçlarını ve kullanımını açıklayan yorumlar veya belgeler eklemeyi düşünün. Bu, gelecekte profilinizi anlamanızı ve korumanızı kolaylaştıracaktır.
  4. Paylaşın ve işbirliği yapın: Bir ekipte çalışıyorsanız veya PowerShell bilginizi başkalarıyla paylaşıyorsanız profil yapılandırmalarınızı ve özelleştirmelerinizi paylaşmayı düşünün. Bu, iş akışlarının kolaylaştırılmasına ve işbirliğinin desteklenmesine yardımcı olabilir.

Bu en iyi uygulamaları takip ederek PowerShell profilinizde sorunsuz ve verimli bir deneyim sağlayabilirsiniz. İşte bir referans: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.3

Kapanıyor

Sonuç olarak PowerShell profiliniz, PowerShell ortamınızı özelleştirmenize ve otomatikleştirmenize olanak tanıyan güçlü bir araçtır. Bir profilin amacını anlayarak, profilleri bulup oluşturarak ve bunları takma adlar, modüller ve işlevlerle özelleştirerek PowerShell'in tüm potansiyelinin kilidini açabilirsiniz. Birden fazla profili yönetmek ve en iyi uygulamaları takip etmek üretkenliğinizi daha da artıracak ve iş akışlarınızı kolaylaştıracaktır. PowerShell profilinizi keşfetmeye ve denemeye zaman ayırın; günlük görevlerinizde yepyeni bir verimlilik düzeyi keşfedeceksiniz.

Umarız bu başlangıç kılavuzu PowerShell profillerinin nasıl oluşturulacağı ve yönetileceği konusunda iyi bir genel bakış sunmuştur. Bu kapsamlı kılavuzda aşağıdakiler de dahil olmak üzere PowerShell profilleri hakkında her şeyi öğrendiniz:

  • Profiller nelerdir ve nasıl oluşturulur?
  • Profilinizi nasıl düzenlersiniz?
  • Takma adlar, işlevler, değişkenler, PowerShell sürücüleri, modüller ve daha fazlasını ekleme.
  • Konsol renklerini ve istemini özelleştirme
  • Ana bilgisayara özel profilleri yapılandırma
  • Profil konumunu değiştirme
  • Değişiklik yaptıktan sonra profilleri yeniden yükleme
  • -NoProfile ile profilleri devre dışı bırakma
  • Çeşitli senaryolar için örnek profil komut dosyaları.

PowerShell profilleri kurulumun otomatikleştirilmesi, ortamınızın özelleştirilmesi ve üretkenliğin artırılması gibi birçok avantaj sağlar. PowerShell'den daha fazla yararlanmak için profilleri bugün kullanmaya başlayın!

İlgili makaleler