PowerShell Yerleşik Değişkenleri


PowerShell, komut dosyalarında kullanılabilecek önceden tanımlanmış bir dizi değişken olan yerleşik değişkenlere sahiptir. Bu değişkenler mevcut ortam ayarları, sistem özellikleri ve komut dosyası yürütme ayrıntıları gibi önemli bilgilere erişim sağlar.

PowerShell'de otomasyon değişkenleri, ortak yerleşik değişkenler, özel değişkenler ve olay değişkenleri bulunur.

Bu makalede PowerShell'de bulunan çeşitli yerleşik değişken türlerini ve bunların komut dosyalarında kullanımını tartışacağız.

Ortak Yerleşik Değişken

PowerShell'de yaygın olarak kullanılan bazı yerleşik değişkenler şunları içerir:

$veya $PSItem - İşlem hattındaki, döngüdeki veya filtrelerdeki geçerli nesneyi temsil eder

Aşağıdaki komut dosyası, geçerli dizindeki her dosyanın adını yazdırmak için $_ kullanır.

Get-ChildItem | ForEach-Object { Write-Host $_.Name }

$HOME - Kullanıcının ana dizin konumunu temsil eder

Aşağıdaki komut dosyası, çalışma dizinini kullanıcının ana dizini olarak değiştirmek için $HOME değişkenini kullanır

Set-Location $HOME

$PWD - Geçerli çalışma dizinini temsil eder

Aşağıdaki komut dosyası, Get-ChildItem cmdlet'ini kullanarak geçerli çalışma dizinindeki dosyaların listesini almak için $PWD'yi kullanır.

Get-ChildItem $PWD

$NULL - Boş değeri temsil eder.

Aşağıdaki komut dosyası boş değeri bir değişkene atar

$filePath = $NULL

PowerShell Otomatik Değişkenleri

Otomatik değişkenler PowerShell tarafından oluşturulur ve yönetilir. Geçerli yürütme ortamı hakkındaki bilgileri depolarlar.

Aşağıda PowerShell'deki otomatik değişkenlerin listesi bulunmaktadır.

$Args - İşleve veya betiğe iletilen bağımsız değişkenleri içerir

Aşağıdaki komut dosyası, bir betiğe iletilen bağımsız değişkenleri yazdırmak için $Args öğesini kullanır:

param($arg1, $arg2)
Write-Host "Arguments: $arg1, $arg2"

Yukarıdaki PowerShell betiğinde $arg1 ve $arg2 param ifadesi kullanılarak tanımlanır. Write-Host cmdlet'i bu iki bağımsız değişkenin değerlerini konsola yazdırmak için kullanılır. Komut dosyasını example-script.ps1 olarak kaydedin

Yukarıdaki betiği aşağıda verilen bağımsız değişkenlerle çalıştırın:

.\example-script.ps1 "shell" "admin"

Yukarıdaki PowerShell betiğinin çıktısı:

Arguments: shell, admin

$Error - Betiğin yürütülmesi sırasında ortaya çıkan bir dizi hatayı tutar

Aşağıdaki komut dosyası, geçerli PowerShell oturumunda oluşan hatayı görüntülemek için $Error otomatik değişkenini kullanır.

Get-ChildItem -Path 'D:\PS\FRVTemp\'
$Error[-1].Exception.Message

Yukarıdaki PowerShell betiğinde Get-ChildItem cmdlet'i, belirtilen dizinden var olmayan ve hata oluşturacak öğeleri almak için kullanılır.

Dizideki son hata nesnesine erişmek için $Error değişkeni, hata mesajını görüntülemek için .Exception.Message özelliği kullanılır.

$ExecutionHost - Geçerli yürütme bağlamına erişim sağlar

Aşağıdaki komut dosyası, oturum durumu nesne bilgilerini almak için bu $ExecutionHost'u kullanır.

$ExecutionContext.SessionState

$Host - Geçerli ana bilgisayar uygulamasıyla ilgili bilgileri içerir

Aşağıdaki komut dosyası, PowerShell ana bilgisayarının geçerli sürümünü almak için $HOST otomatik değişkenini kullanır.

$HOST.Version

Yukarıdaki PowerShell betiğinin çıktısı, PowerShell ana bilgisayar sürümünü döndürür:

PS D:\> $HOST.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      18362  2212


PS D:\>

$Input - İşlem hattı aracılığıyla bir işleve veya komut dosyasına yapılan giriş geçişlerini saklar

Aşağıdaki PowerShell betiği, ardışık düzenden geçen öğelerin sayısını saymak için $Input betiğini kullanır.

$Input | Measure-Object | Select-Object -ExpandProperty Count

$MyInvokasyon - Mevcut komut dosyası veya komut çağrısıyla ilgili ayrıntıları sağlayın

Aşağıdaki komut dosyası, geçerli komut dosyasının adını almak için $MyInvation değişkenini kullanır.

$MyInvocation.MyCommand.Name

$PROFILE - Geçerli kullanıcının profil komut dosyasının yolunu temsil eder.

Aşağıdaki komut dosyası, geçerli kullanıcının profil komut dosyasına erişmek için $PROFILE değişkenini kullanır.

notepad $PROFILE

Yukarıdaki PowerShell betiğinde, $PROFILE değişkeni geçerli kullanıcının profil betiğini alır ve betiği bir metin düzenleyicide açmak için Not Defteri kullanılır.

$PSBoundParameters - Bir komut dosyasına veya işleve iletilen parametrelerin sözlüğünü içerir

Aşağıdaki komut dosyası, işleve iletilen parametrelerin değerlerini yazdırmak için $PSBoundParameters'ı kullanır.

function Example-Function {
    $PSBoundParameters
}

Example-Function -Param1 "Shell" -Param2 "Admin"

Yukarıdaki PowerShell betiği bir "Örnek İşlev" işlevi oluşturur. Komut dosyasını çalıştırın ve bir example-script.ps1 dosyası olarak kaydedin.

PowerShell konsolunu açın ve betiği çalıştırın. $PSBoundParameters değişkeni parametre değerlerini yazdıracaktır.

$PSCommonPath - Geçerli betiğin veya komutun yolunu saklar

Aşağıdaki komut dosyası, geçerli komut dosyasının yolunu bulmak için $PSCommandPath'i kullanır.

$PSCommandPath

$PSHome - PowerShell'in kurulu olduğu dizini ifade eder

Aşağıdaki komut dosyası, PowerShell kurulum dizini yolunu almak ve pwsh.exe ile Join-Path cmdlet'ini kullanarak yolu birleştirmek için $PSHome otomatik değişkenini kullanır.

Join-Path $PSHome "pwsh.exe"

$PSScriptRoot - Geçerli betiği içeren dizini temsil eder

Aşağıdaki komut dosyası, geçerli komut dosyasını içeren dizinin yolunu bulmak için $PSScriptRoot otomatik değişkenini kullanır.

$PSScriptRoot 

Harika İpucu: PowerShell'de dosyaya değişkenler nasıl yazılır?

PowerShell Özel Değişkenleri

PowerShell, özel sabit değerlere sahip özel değişkenler sağlar.

  • $true - Boolean gerçek değerini temsil eder.
  • $false - Boolean false değerini temsil eder.
  • $null - Boş değeri temsil eder.

PowerShell Olay Değişkenleri

PowerShell, PowerShell olaylarıyla çalışırken kullanılan olay değişkenlerini sağlar.

  • $Event - Geçerli olay nesnesini ifade eder.
  • $EventArgs - Geçerli olayın olay bağımsız değişkenlerini temsil eder.
  • $Sender - Geçerli olayı başlatan nesneyi ifade eder.

Çözüm

Umarım PowerShell yerleşik değişkenleri ve bunların bir komut dosyası ortamında nasıl kullanılacağı hakkındaki yukarıdaki makale size yardımcı olur.

PowerShell Active Directory komutları ve PowerShell temelleri hakkında daha fazla konuyu ShellGeek ana sayfasında bulabilirsiniz.

İlgili makaleler