Windows'ta PowerShell Sürümünü Güncelleme
Bu makalede, Windows PowerShell'in en son sürüm 5.1'e nasıl güncelleneceği ve PowerShell Core 7.3'ün nasıl yükleneceği (yükseltileceği) açıklanmaktadır. Şu anda PowerShell'in iki dalı vardır:
Klasik Windows PowerShell (maksimum sürüm 5.1'dir ve artık geliştirilmemektedir.);
Yeni PowerShell Core platformu (sürüm 7.3 şu anda mevcut).
PowerShell sürüm numaralandırması 5.1'den devam etse de (6.0, 6.1, 7.0, 7.1 vb.), bunlar iki farklı platformdur. Bu nedenle, Windows PowerShell ve PowerShell Core güncellemesi ayrı ayrı ele alınacaktır.
PowerShell Core 7.x, klasik Windows PowerShell ile en uyumlu sürümdür. Bu, eski PS1 betik dosyalarınızı ve cmdlet'lerinizi PowerShell Core'da kolayca çalıştırabileceğiniz anlamına gelir.
Windows PowerShell 5.1'e Yükseltme
Windows PowerShell 5.1, Windows 10 ve Windows Server 2016'dan başlayarak tüm sürümlerde varsayılan olarak zaten yüklenmiştir.
Önceki sürümler için (Windows 7/8.1 ve Windows 2008 R2/2012) PowerShell 5.1'e manuel olarak yükseltmelisiniz. Örneğin, Windows Server 2012 R2'de (Windows 8.1) PowerShell 4.0 yüklüdür.
Windows Server 2012 R2'de Windows PowerShell sürümünü 5.1'e yükseltmeyi deneyelim.
Öncelikle mevcut PowerShell sürümünü kontrol edin (ekran görüntüsü, bunun PowerShell 4.0 olduğunu gösteriyor):
$PSVersionTable.PSVersionPowerShell sürümünüzü 5.1'e yükseltmek için .NET Framework 4.5.2'yi (veya üstünü) gerektiren Windows Management Framework 5.1'i yükleyin. Bu komutu kullanarak .NET 4.5.2 veya üstünün kurulu olduğundan emin olun:
(Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’ -Name Release).ReleaseBenim durumumda, yayın sürümü
378675.NET Framework sürüm 4.5.1'in yüklü olduğu anlamına gelir. Bu nedenle, en son .NET Framework 4.8'i indirip yüklemem gerekiyor (işte çevrimdışı yükleyicinin bağlantısı: https://go.microsoft.com/fwlink/?linkid=2088631 —
ndp48-x86-x64-allos-enu.exe).
.NET 4.8 paketini yükleyin (bilgisayarınızı yeniden başlatmanız gerekecek):
.NET 4.5.2 olmadan WMF 5.1'i yüklerseniz bazı PowerShell özellikleri kullanılamayacaktır.
Windows Server 2012 R2 için WMF 5.1'i indirin —
Win8.1AndW2K12R2-KB3191564-x64.msu(https://go.microsoft.com/fwlink/?linkid=839516).
MSU dosyasından Windows Management Framework 5.1'i yükleyin.
Sunucuyu yeniden başlattıktan sonra powershell.exe konsolunu açın ve PowerShell sürümünün 5.1 olarak güncellendiğinden emin olun.
Desteklenmeyen Windows 7 veya Windows Server 2008 R2'ye sahipseniz, PowerShell sürümünü 2.0'dan 5.1'e aynı şekilde yükseltebilirsiniz. Önce .Net Framework 4.5.2'yi (veya daha yenisini), ardından WMF 5.1'i yükleyin (indirme bağlantıları Windows Server 2012 R2'dekinden farklı olacaktır).
PowerShell Core 7 Nasıl Kurulur veya Güncellenir?
PowerShell Core, platformlar arasıdır ve etkin geliştirme aşamasındadır (Windows PowerShell 5.1'den farklı olarak). Aslında PowerShell Core, klasik Windows PowerShell'in yanı sıra işletim sistemine yüklenen yeni bir platformdur. Bu, PowerShell 5.1'den PowerShell Core 7.3'e yükseltme yapamayacağınız anlamına gelir. PowerShell 7.x, bilgisayarınıza Windows PowerShell 5.1'den ayrı (yan yana) yüklenir.
PowerShell Core 6.x ve 7.x şu anda kullanılabilir. Eski betiklerle özel uyumluluğa ihtiyacınız olmadıkça her zaman PowerShell'in en son sürümünü (şu anda 7.3) yüklemeniz önerilir.
Windows 10 ve 11'de PowerShell Core sürümünü yükseltmenin (yüklemenin) birkaç yolu vardır:
GitHub'dan indirilebilen PowerShell Core MSI yükleyicisini kullanın;
Yerleşik Windows 10/11 paket yöneticisi WinGet'i kullanma;
Microsoft Store'u kullanma.
Ardından, Windows 10 22H2'de PowerShell Core'u 7.3'e güncelleme örneğini kullanarak, bu yöntemlerin tümüne bakacağız.
MSI yüklemesini Kullanarak PowerShell Çekirdeğini Yükseltme
PowerShell Core'u MSI paketini kullanarak kurmak istiyorsanız https://github.com/PowerShell/PowerShell proje sayfasına gidin ve işletim sistemi sürümünüze uygun kurulum paketini indirin. Bu makalenin yazıldığı sırada, PowerShell'in en son sürümü 24 Şubat 2023 tarihli v7.3.3'tür (örneğin,
PowerShell-7.3.3-win-x64.msiveya
PowerShell-7.3.3-win-x86.msi). Bir üretim ortamı için yalnızca kararlı veya LTS sürümlerini kullanın.
MSI dosyasını indirin ve kurun.
Aşağıdaki kurulum seçenekleri mevcuttur:
Yol Ortamı Değişkenine PowerShell Ekleme
Windows Olay Günlüğü Bildirimini Kaydedin (PowerShell olayları için ayrı bir Olay Görüntüleyici günlüğü oluşturulur.
%SystemRoot%\System32\Winevt\Logs\PowerShellCore%4Operational.evtx)
PowerShell Remoting'i Etkinleştir (PowerShell Remoting için WinRM'yi etkinleştirir ve yapılandırır)
Explorer'a 'Burada aç' içerik menüsünü ekleyin
PowerShell dosyaları için "PowerShell 7 ile Çalıştır" bağlam menüsünü ekleyin
Ardından, Windows Update/WSUS aracılığıyla PowerShell Çekirdeğinin otomatik güncellemelerini etkinleştirebilirsiniz (aşağıya bakın).
Sessiz modda SCCM/MDT/komut dosyalarını kullanarak bir MSI paketinden PowerShell Core yüklemek için aşağıdaki parametrelere sahip bir komut kullanabilirsiniz:
- ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL
- ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL
- ENABLE_PSREMOTING
- REGISTER_MANIFEST
- ADD_PATH
- DISABLE_TELEMETRY
- USE_MU
- PSCore güncellemelerini almak için Microsoft Update'i kullanın
- ENABLE_MU
- PowerShell Çekirdeğinin Windows Update aracılığıyla güncellenmesine izin verin
Örneğin, sessiz kurulum komutu şuna benzer:
msiexec.exe /package PowerShell-7.3.3-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 ADD_PATH=1 ENABLE_MU=1 ADD_PATH=1PowerShell'i doğrudan konsoldan yükseltebilirsiniz. PowerShell Core'un en son sürümünü yüklemek veya yükseltmek için aşağıdaki komutu çalıştırın:
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"Bu komut, PowerShell 7.3 MSI dosyasını GitHub'dan indirir ve ardından MSI yükleyici aracılığıyla kurulumu başlatır.
Kurulum tamamlandığında, PowerShell Core (pwsh.exe) penceresi görünür. PoSh 7.3.3'e güncellendiğinden emin olmak için PowerShell sürümünü kontrol edin.
PowerShell Çekirdeğini Kurmak veya Güncellemek için WinGet Paket Yöneticisini Kullanma
WinGet paket yöneticiniz kuruluysa, PowerShell sürümünüzü yükleyebilir veya en son komuta güncelleyebilirsiniz:
winget install --id Microsoft.Powershell --source wingetVeya belirli bir PowerShell Core sürümünü yükleyebilirsiniz:
winget install --id=Microsoft.PowerShell -v "7.1.2" -eChocolatey paket yöneticiniz kuruluysa, komutları kullanın (5.1 için):
choco install powershell -y
choco upgrade powershell -yveya PowerShell 7.x için:
choco install pwsh -y
choco install pwsh -yPowerShell'in farklı sürümleri için varsayılan dizinlere dikkat edin:
Windows PowerShell 5.1:
$env:WINDIR\System32\WindowsPowerShell\v1.0PowerShell Çekirdeği 6.x:
$env:ProgramFiles\PowerShell\6PowerShell Çekirdeği 7.x:
$env:ProgramFiles\PowerShell\7
Bilgisayarınızda PowerShell 6.x yüklüyse,
$env:ProgramFiles\PowerShell\6PowerShell 7.3'ü yüklediğinizde dizin otomatik olarak kaldırılır.
PowerShell yürütülebilir dosyasının adının değiştiğini unutmayın. PowerShell Core'da c:\Program Files\PowerShell \pwsh.exe şeklindedir. Başlat menüsünde kendi simgesi vardır.
.NET Framework tabanlı Windows PowerShell'i çalıştırmak için,
powershell.exekomut kullanılır
.NET Core tabanlı PowerShell Core'u çalıştırmak için
pwsh.exe
Bu, bilgisayarınızda hem Windows PowerShell 5.1'in hem de PowerShell Core 7.3'ün yüklü olduğu anlamına gelir.
Cihazınızda yüklü olan PowerShell sürümünü ve yapısını bulmak için pwsh.exe dosyasının sürümünü kontrol edebilirsiniz:
(Get-Command 'C:\Program Files\PowerShell\7\pwsh.exe').VersionUzak bilgisayardaki bir dosyanın sürümünü şu şekilde kontrol edebilirsiniz:
Invoke-Command -Computername computer1 -Scriptblock {(Get-Command 'C:\Program Files\PowerShell\7\pwsh.exe').Version}Windows PowerShell, yüklü yeni sürümleriniz olsa bile PowerShell'in eski bir sürümünü çalıştırmanıza izin veren özel bir geriye dönük uyumluluk modu sağlar. PowerShell örneğinin 4.0'ın belirli bir sürümünü çalıştırmak için aşağıdaki komutu kullanabilirsiniz):
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Version 4PowerShell Core'u Microsoft Mağazası aracılığıyla Windows 10 ve 11'e kurun
Windows 10 ve 11'de PowerShell'i Microsoft Mağazası aracılığıyla yükleyebilir veya güncelleyebilirsiniz. PowerShell uygulamasını Mağaza'da manuel olarak bulabilir veya bu bağlantıyı kullanabilirsiniz.
PowerShell'in Mağaza sürümünü yüklemek için WinGet'i de kullanabilirsiniz:
winget search powershell --source msstore
winget install --id 9MZ1SNWT0N5DPowerShell Core'u Microsoft Store'dan yüklemenin avantajı, App Store'un kurulu PowerShell sürümünüzü otomatik olarak kontrol etmesi ve güncellemeleri kullanıma sunuldukça otomatik olarak yüklemesidir.
PowerShell Core'un Mağaza sürümünü yüklediğinizi doğrulamak için şu komutu kullanın:
Get-AppPackage Microsoft.PowerShellBu örnekte Microsoft.PowerShell_7.3.3.0_x64__8wekyb3d8bbwe paketi kuruludur.
Ancak, böyle bir PowerShell örneğinin korumalı alan ortamında çalışacak olmasının da sakıncaları vardır.
APPX/MSIX uygulama dosyasını indirebilir ve
Add-AppxPackagecmdlet (veya "Microsoft Store'u Onarma" makalesinde açıklandığı gibi).
Uzak Bilgisayarlara PowerShell Çekirdeği Yükleme/Güncelleme
Birden çok uzak bilgisayara PowerShell Çekirdeğini yüklemek veya güncellemek için iki senaryo düşünün.
PowerShell Core'u Grup İlkesi ile Dağıtma
PowerShell Core'u bir Active Directory etki alanında merkezi olarak dağıtmak ve güncellemek için Grup İlkesi'ni kullanabilirsiniz. MSI paketlerini etki alanı bilgisayarlarına dağıtmak için GPO'nun özelliklerini kullanın.
PowerShell MSI kurulum dosyasını indirin ve etki alanı denetleyicisindeki SYSVOL dizinine kopyalayın;
Etki Alanı Grup İlkesi Yönetim Konsolu'nu açın (
gpmc.msc), yeni bir GPO oluşturun ve onu bilgisayarlar ve sunucularla OU'ya bağlayın;
Bilgisayar Yapılandırması -> Yazılım Ayarları GPO bölümüne gidin, yeni bir paket oluşturun ve etki alanındaki SYSVOL klasöründe PowerShell MSI yükleme dosyasının yolunu belirtin (kullanın UNC yolu);
Politikanızı etki alanı cihazlarına daha doğru bir şekilde hedeflemek için GPO WMI filtrelerini kullanabilirsiniz.
Yazılım kurulumu için Grup İlkesi ayarlarını güncellemek için bilgisayarları yeniden başlatmanız gerekir. PowerShell'in yeni sürümü başlangıçta tüm bilgisayarlara yüklenecektir.
Uzak Bilgisayardaki PowerShell Komut İsteminden Nasıl Güncellenir?
Uzak bir bilgisayarda PowerShell'i güncellemek için komut satırı istemini kullanabilirsiniz.
İlk yöntem, bir bilgisayarda PowerShell'i uzaktan güncellemek için paylaşılan bir ağ klasöründeki bir MSI yükleyicisini kullanır:
Invoke-Command -ComputerName mun-srv01 -ScriptBlock {Start-Process msiexec.exe -ArgumentList '/package "\\mun-fs01\install\PowerShell-7.3.3-win-x64.msi" /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1' -Wait}
Aşağıdaki komut dosyası, Windows 10 çalıştıran tüm etkin bilgisayarları Active Directory etki alanından seçer ve PowerShell Core'u indirip her birine yüklemeye başlar:
$ADComputers = Get-ADComputer -Filter 'operatingsystem -like "*Windows 10*" -and enabled -eq "true"' ForEach ($computer in $ADcomputers) { Invoke-Command -ComputerName $computer {iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"} }GetADComputer cmdlet'ini kullanmak için bilgisayarda Active Directory PowerShell modülünün kurulu olması gerekir.
Uzak bilgisayarlara bağlanırken PowerShell Remoting komutlarını kullanırken dikkatli olun (
Enter-PSSessionVe
Invoke-Commandcmdlet'ler). Bir PowerShell 7 uç noktasına bağlanmanız gerekirse şu komutu kullanmanız gerekir:
Enter-PSSession -ComputerName dc01 -ConfigurationName "powershell.7"Aksi takdirde, PowerShell Remoting 5.1 uç noktasına bağlanacaksınız.
PowerShell Core'u Linux dağıtımlarında güncellemenin en yaygın yolu yerel paket yöneticisini kullanmaktır.
PowerShell'i Windows Update veya WSUS aracılığıyla güncelleme
PowerShell Core 7.2'den önce, pwsh.exe otomatik olarak güncellenmiyordu. Yeni bir sürümün yayınlanmasından sonra konsolda yalnızca bir bildirim vardı:
A new PowerShell stable release is available. Upgrade now, or check out the release page at: https://aka.ms/PowerShell-Release?tag=v7.1.37.2 sürümünden itibaren PowerShell Core, Windows Update (Microsoft Update, Windows Update for Business, dahili WSUS sunucusu veya SCCM) aracılığıyla otomatik güncellemeleri destekler. Bunu yapmak için, MSI paketinin kurulumu sırasında uygun seçenekleri etkinleştirmelisiniz.
İlki, PowerShell'in mevcut herhangi bir kanalı kullanarak otomatik olarak güncellenmesini sağlar (kayıt defteri parametresi UseMU =1'i etkinleştirir.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShellCoreanahtar)
İkinci onay kutusu, yalnızca Windows için değil, Microsoft'un tüm yazılımları için güncellemeler almanıza izin verecektir. Bu seçenek devre dışı bırakılırsa Microsoft Update'ten PowerShell güncellemelerini almazsınız ancak WSUS/SCCM'nizden alabilirsiniz (kayıt defteri parametresi registeredwithAU=1 altında
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\7971F918-A847-4430-9279-4A52D1EFE18D)
Ayarlar -> Güncelleme ve Güvenlik -> Windows Güncelleme -> Gelişmiş seçenekler altında Windows'u güncellediğinizde diğer Microsoft ürünleri için güncellemeler al seçeneğinin etkinleştirildiğinden emin olun.
Bir yönetici güncelleme yüklemesini yapılandırabilir Grup İlkesi ayarları aracılığıyla seçenekler.
Artık Güncellemeleri Kontrol Et düğmesini tıkladığınızda veya PSWindowsUpdate modülü aracılığıyla bir güncelleme taraması çalıştırdığınızda, PowerShell Core için de güncellemeler alacaksınız.




















