PowerShell Sürümünüzü Nasıl Kontrol Edebilirsiniz [yalnızca 1 Cmd]


PowerShell sürümü hangi özellikleri kullanabileceğinizi belirler. Bu nedenle, belirli bir komut dosyasını veya cmdlet'i çalıştırmadan önce PowerShell sürümünüzü kontrol etmeniz gerekebilir.

Hangi PowerShell sürümünü kullandığınızı tek komutla kontrol edebilirsiniz. PowerShell 7 kullanıyorsanız açtığınızda otomatik olarak görüntülenir.

Bu yazımda PowerShell sürümünü hızlı bir şekilde nasıl kontrol edebileceğinizi ve bu yöntemi scriptlerinizin içinde veya uzaktaki bir makinede nasıl kullanabileceğinizi anlatacağım.

PowerShell Sürümünü Kontrol Edin

Hangi PowerShell sürümünü kullandığınızı kontrol etmek için PowerShell'de tek bir komut kullanarak tam sürüm numarasını bulabilirsiniz:

$PSVersionTable

PSVersion değeri, kullandığınız PowerShell sürümüdür. Yukarıdaki örnekte PowerShell 7 kullanıyoruz. Başta da belirttiğimiz gibi PowerShell 7’yi açtığınızda ilk satırda versiyon numarasını da göreceksiniz:

Komut Dosyasında PowerShell sürümünü edinin

Örneğin yalnızca PowerShell 7 veya 5.1'de çalışan belirli cmdlet'leri kullanan bir PowerShell betiği oluşturduğunuzda, sürüm için bir kontrol oluşturmanız gerekecektir.

Tüm sürüm bilgilerini almak yerine, doğrudan ana sürüm numarasını seçerek ana sürüm numarasını (örneğin 5 veya 7) alabiliriz:

$PSVersionTable.PSVersion.Major

# Returns
7

$host Değişkenini Kullanmak

Yaygın olarak bahsedilen diğer bir seçenek de PowerShell sürümünü kontrol etmek için $host değişkenini kullanmaktır. $Host değişkeni, PowerShell'i çalıştıran ana bilgisayar hakkında bilgi döndürür. Bu, yerel PowerShell konsolunuzda harika çalışır:

$host

# Or directly the version number
$host.version

Ancak $Host değişkenini veya Get-Host cmdlet'ini kullanmak, bunu uzak bir makinede veya örneğin Visual Studio kodunda kullanırken sorunlara neden olacaktır. Sorun, PowerShell motoru hakkında değil, ana bilgisayar hakkında bilgi döndürmesidir.

Aşağıdaki örneği ele alalım, Visual Studio Code'da $PSVersionTable değişkenine bakarsak PowerShell sürüm 7.4.1'i döndürüyor. Ancak $host değişkeni, PowerShell motoru yerine Visual Studio Code sürümünü döndürür.

Kayıt Defterini Kullanma

PowerShell sürümünü kontrol etmek için kullanabileceğiniz son seçenek kayıt defterini kullanmaktır. Bu en uygun yöntem olmayabilir ancak birden fazla bilgisayarın envanterini çıkarmanız gerektiğinde bu seçenek yararlı olabilir.

Kayıt yöntemiyle ilgili tek bir zorluk var; PowerShell 7'nin sürüm numarası, eski sürüme göre farklı bir konumda saklanıyor.

Sürüm numaralarını kontrol etmek için aşağıdaki iki kayıt defteri yolunu kullanabiliriz:

# Get the older PowerShell versions
Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name 'PowerShellVersion'

# Get the PowerShell 7 Version
Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShellCore\InstalledVersions\31ab5147-9a97-4452-8443-d9709f0516e1 -Name 'SemanticVersion'

Uzak Ana Bilgisayardan PowerShell Sürümünü Alın

Uzak bilgisayarda bir komut dosyası çalıştırmadan önce bazen hangi sürümün yüklü olduğunu kontrol etmeniz gerekir. Bazı sunucularda hâlâ yalnızca sürüm 2 veya 3 yüklü olabilir; bu da komut dosyanızda kullanabileceğiniz cmdlet'leri sınırlayabilir.

Sürümü uzak bir ana bilgisayardan almak için invoke-command cmdlet'ini kullanacağız. Bu, uzaktaki bir bilgisayarda bir komut dosyası bloğu çalıştırmamıza ve sonuçları kullanıma döndürmemize olanak tanır:

Invoke-Command -Computername lazy-lab11 -Scriptblock {$PSVersionTable.PSVersion}

PowerShell'inizi güncelleme

PowerShell, Windows'ta yerleşik bir araçtır; bu, Windows Güncellemeleri ile güncellendiği anlamına gelir. Windows 10 ve Windows 11'de varsayılan olarak PowerShell 5.1'i alırsınız. PowerShell 7'ye güncellemek için onu manuel olarak yüklemeniz gerekir.

Bu makalede PowerShell 7'yi yükleme ve güncelleme hakkında daha fazla bilgi edinin.

Kapanış

$Host değişkeninin hatırlanması daha kolay olsa da bunun yerine $PSVersionTable kullanılması önerilir. Bu, özellikle komut dosyalarında veya uzak bilgisayarlarla çalışmanız gerektiğinde, ana bilgisayar değişkeninden daha güvenilirdir.

Umarım bu makaleyi faydalı bulmuşsunuzdur, herhangi bir sorunuz varsa aşağıya yorum bırakmanız yeterlidir.

İlgili makaleler