PowerShell 7.0: Özellikler | sıcak çevrimiçi

Womanne

Member


  1. PowerShell 7.0: işlev aralığı

PowerShell 7.0, komut aralığı açısından PowerShell 5.1’e çok yaklaştı. Hala 95 komut kaldı. Ve özelliklerin yalnızca bir kısmı Linux ve macOS’ta kullanılabilir.


PowerShell 7.0 serimin ilk bölümünde, PowerShell’in teknik arka planını ve yeni sürümünü yüklemeyi anlattım. Şimdi, önceki Windows PowerShell 5.1 ve PowerShell Core 6.0/6.1/6.2 ile karşılaştırıldığında işlev yelpazesini tartışmak istiyorum.

Sürüm 5.1 ve 6.0 arasında ara verin


Windows PowerShell 5.1 (yalnızca Windows için) ile PowerShell Core 6.0 (Windows, Linux ve macOS için) arasında işlevsel bir kopukluk vardır. Aşağıdaki liste, Windows 10 20H1’in geçerli önizleme sürümünde PowerShell’in her sürümünde bulunan komutların sayısını gösterir. Standart bir Windows 10 kurulumunda yer alan komutlar ve işlevler burada komut olarak sayılır. Hiçbir ek Windows özelliği etkinleştirilmemiş ve hiçbir ek yazılım yüklenmemiştir.

  • Windows 10 v20H1’de PowerShell 5.1: 1586 komut
  • Windows 10 v20H1’de PowerShell Core 6.0: 425 komut
  • Windows 10 v20H1’de PowerShell Core 6.1: 1436 komut
  • Windows 10 v20H1’de PowerShell Core 6.2: 1439 komut
  • Windows 10 v20H1’de PowerShell 7.0: 1507 komutları
  • Linux ve macOS’ta PowerShell 7.0: 270 komut
Windows PowerShell 5.1’deki (2 Ağustos 2016’da yayınlandı) komut sayısındaki 1586’dan PowerShell Core 6.0’da (20 Ocak 2018’de yayınlandı) sadece 425’e düşmesi üç faktörden kaynaklanıyor:

  1. Microsoft, bazı eski alışkanlıklardan (örneğin, 1. nesil WMI komut uygulamacıkları, ek bileşenler) kurtulmak istedi.
  2. PowerShell Core’un temeli olan .NET Core, 2018’de birçok PowerShell komutunu uygulayacak kadar güçlü değildi.
  3. Windows’ta yerleşik olan PowerShell modüllerinin çoğu, PowerShell Core ile uyumlu değildi.
Windows PowerShell 5.1 ve PowerShell 7.0 arasındaki farklar



2018 ile 2020 arasındaki iki yılda Microsoft, 2. ve 3. noktalar üzerinde çalıştı. PowerShell 7.0’ın temeli olan .NET Core 3.1 artık daha güçlü ve Windows’ta PowerShell modüllerinin uyumluluğunu sağlamak da daha kolaydı. Pano (Get-Clipboard, Set-Clipboard), yazıcı çıktısı (Out-Printer) ve grafik çıktı (Out-GridView, Show-Command, Get-Help) gibi PowerShell Core 6.x’te eksik olan birçok komut uygulaması – ShowWindow) PowerShell 7.0’a geri döndü.

Ancak, aşağıdaki hesaplamanın gösterdiği gibi, Windows PowerShell 5.1 ve PowerShell 7.0 arasındaki işlevsel fark tamamen ortadan kalkmadı:

Windows PowerShell 5.1’de 1586 komut artı PowerShell 7.0’da 15 yeni komut (PowerShell Core 6.0’dan 6.2’ye kadar olan yenilikler dahil) eksi PowerShell 7.0’da Windows PowerShell 5.1’e kıyasla 95 komut ve PowerShell 7.0’da toplam 1507 komut.

Özellikle, Windows PowerShell 5.1’de bulunan ve PowerShell 7.0’da hala eksik olan özellikler şunları içerir:

  • Get-WmiObject ve Invoke-WmiMethod gibi 1. Nesil Windows Yönetim Araçları (WMI) komutları (WMI v1). Ancak, Get-CimInstance ve Invoke-CimMethod gibi ikinci nesil WMI komutları vardır.
  • Add-computer ile Windows etki alanlarına katılın
  • PowerShell’deki iş akışları (temel teknik olan Windows Workflow Foundation, .NET Core’da yoktur).
  • Windows Olay Günlüğü Erişimi (Get-EventLog, Write-EventLog ve diğerleri)
  • İşlem desteği (Get-Transaction, Complete-Transaction, Undo-Transaction ve diğerleri)
  • Windows Kullanıcı Deneyimi Sanallaştırma (UE-V) hizmet komutları
  • PowerShell ek bileşenleri (Add-PSSnapin, Remove-PSSnapin). PowerShell Core 6.0’dan bu yana yalnızca modüller var ve gelecekte de bu şekilde kalmasını amaçlıyoruz.
Linux ve macOS’ta daha da az komut


Zaten PowerShell Core 6.x’te, platform tarafsızlığını ihlal eden ve yalnızca Windows’ta kullanılabilen komutlar vardı (örneğin, hizmet yönetimi, kullanıcı yönetimi ve dosya izinleri için). PowerShell 7.0’da bu liste, grafik çıktı oluşturan komutları (Out-GridView ve Show-Command gibi) içerecek şekilde genişletildi. Bu komutlar, .NET Core Windows Desktop Runtime’ın 3.0 sürümünden beri .NET Core’da var olan, ancak henüz Linux ve macOS için uygulanmayan Windows Presentation Foundation’a (WPF) dayalıdır. PowerShell 7.0’da yeniden sunulan Out-Printer, Get-HotFix ve Clear-RecycleBin komutları da yalnızca Windows’ta çalışır.

Linux ve macOS altında, PowerShell çekirdeğine değil Windows’a ait olan tüm PowerShell modülleri eksiktir. Örneğin, Windows 10’da 1507 komut yerine Linux ve macOS’ta yalnızca 270 komut vardır.

Dolayısıyla, Linux ve macOS’ta sorun devam ediyor, çok az komut var. Linux yöneticileri için PowerShell, klasik Linux kabukları üzerinde yeterince iyileştirme yapmaz. Öte yandan DevOps için, platformdan bağımsız ardışık düzenleri betikleyebilmek ve yayınlayabilmek iyi bir şey.


()



Haberin Sonu
 
Üst