Güç kalkanı - PowerShell

Güç kalkanı
PowerShell Core 6.0 icon.png
Windows PowerShell 1.0 PD.png
Windows PowerShell oturumunun ekran görüntüsü
ParadigmaZorunlu, boru hattı, nesne odaklı, işlevsel ve yansıtıcı
Tarafından tasarlandıJeffrey Snover, Bruce Payette, James Truher (ve diğerleri)
GeliştiriciMicrosoft
İlk ortaya çıktı14 Kasım 2006; 14 yıl önce (2006-11-14)
Kararlı sürüm
7.1.0 / 11 Kasım 2020; 14 gün önce (2020-11-11)[1]
Önizleme sürümü
v7.1.0-rc.2 / 20 Ekim 2020; 36 gün önce (2020-10-20)[2]
Yazma disiplinikuvvetli, kasa, örtük ve dinamik
Uygulama diliC #
Platform.NET Framework, .NET Çekirdeği
işletim sistemi
LisansMIT Lisansı[3] (ancak Windows bileşeni kalır tescilli )
Dosya adı uzantıları
  • .ps1 (Komut Dosyası)
  • .ps1xml (XML Belgesi)
  • .psc1 (Konsol Dosyası)
  • .psd1 (Veri Dosyası)
  • .psm1 (Komut Dosyası Modülü)
  • .pssc (Oturum Yapılandırma Dosyası)
  • .psrc (Rol Yetenek Dosyası)
  • .cdxml (Cmdlet Tanımı XML Belgesi)
İnternet sitesimicrosoft.com/güç kalkanı
Tarafından etkilenmiş
Python, Ksh, Perl, C #, CL, DCL, SQL, Tcl, Tk,[4] Şef, Kukla

Güç kalkanı bir görev otomasyonudur ve konfigürasyon yönetimi çerçeveden Microsoft, oluşur Komut satırı kabuk ve ilişkili komut dosyası dili. Başlangıçta yalnızca bir Windows bileşeni olarak bilinen Windows PowerShellyapıldı açık kaynak ve çapraz platform 18 Ağustos 2016 tarihinde PowerShell Çekirdeği.[5] İlki, .NET Framework, ikincisi .NET Çekirdeği.

PowerShell'de yönetim görevleri genellikle cmdlet'ler (telaffuz edildi komut-let), uzmanlaşmış olan .NET sınıflar belirli bir işlemi uygulamak. Bunlar, farklı veri depolarındaki verilere erişerek çalışır. dosya sistemi veya kayıt ile PowerShell'e sunulan sağlayıcılar. Üçüncü taraf geliştiriciler, PowerShell'e cmdlet'ler ve sağlayıcılar ekleyebilir.[6][7] Cmdlet'ler şu kullanıcılar tarafından kullanılabilir: Kodlar ve komut dosyaları paketlenmiş olabilir modüller.

PowerShell şunlara tam erişim sağlar: COM ve WMI, yöneticilerin hem yerel hem de uzak Windows sistemlerinde ve ayrıca WS-Yönetimi ve CIM uzak Linux sistemlerinin ve ağ cihazlarının yönetimini sağlar. PowerShell ayrıca bir barındırma sağlar API PowerShell çalışma zamanının diğer uygulamaların içine yerleştirilebileceği. Bu uygulamalar daha sonra, belirli işlemleri uygulamak için PowerShell işlevselliğini kullanabilir. grafik arayüzü. Bu yetenek, Microsoft Exchange Sunucusu 2007, PowerShell cmdlet'leri ve sağlayıcıları olarak yönetim işlevselliğini ortaya çıkarmak ve grafiksel gerekli cmdlet'leri çağıran PowerShell ana bilgisayarları olarak yönetim araçları.[6][8] Dahil olmak üzere diğer Microsoft uygulamaları Microsoft SQL Server 2008 ayrıca PowerShell cmdlet'leri aracılığıyla yönetim arayüzlerini ortaya çıkarır.[9]

PowerShell, kendi kapsamlı, konsol tabanlı yardımını içerir (benzer adam sayfaları içinde Unix kabukları ) aracılığıyla erişilebilir Yardım almak cmdlet. Güncellenmiş yerel yardım içerikleri İnternetten şu yolla alınabilir: Güncelleme-Yardım cmdlet. Alternatif olarak, web'den yardım, vaka bazında şu yolla elde edilebilir: -internet üzerinden çevirmek Yardım almak.

Arka fon

Her versiyonu Microsoft Windows için kişisel bilgisayarlar dahil etti komut satırı yorumlayıcısı (CLI) işletim sistemini yönetmek için. Selefi, MS-DOS, yalnızca bir CLI'ye dayanıyordu. Bunlar COMMAND.COM içinde MS-DOS ve Windows 9x, ve cmd.exe içinde Windows NT işletim sistemleri ailesi. Her ikisi de birkaç temel dahili komutu destekler. Diğer amaçlar için ayrı bir konsol uygulaması yazılmalıdır. Ayrıca temel bir betik dili de içerirler (toplu dosyalar ), çeşitli görevleri otomatikleştirmek için kullanılabilir. Ancak, tüm yönlerini otomatikleştirmek için kullanılamazlar. grafiksel kullanıcı arayüzü (GUI) işlevselliği, kısmen işlemlerin komut satırı eşdeğerlerinin sınırlı olması ve komut dosyası dilinin temel olması nedeniyle. İçinde Windows Server 2003 durum iyileştirildi, ancak komut dosyası desteği hala tatmin edici değildi.[10]

Microsoft, bu eksikliklerden bazılarını, Windows Komut Dosyası Ana Bilgisayarı 1998'de Windows 98 ve komut satırı tabanlı ana bilgisayarı: cscript.exe. İle bütünleşir Aktif Komut Dosyası motor ve komut dosyalarının uyumlu dillerde yazılmasına izin verir, örneğin JScript ve VBScript, yararlanarak API'ler uygulamalar tarafından bileşen nesne modeli aracılığıyla gösterilir (COM ). Bununla birlikte, kendi eksiklikleri vardır: dokümantasyonu çok erişilebilir değildir ve bir sistem olarak hızla ün kazandı. güvenlik açığı vektörü birkaç yüksek profilli sonra bilgisayar virüsleri güvenlik hükümlerindeki zayıflıkları istismar etti. Windows'un farklı sürümleri, çeşitli özel amaçlı komut satırı yorumlayıcıları (ör. Netsh ve WMIC ) kendi komut kümeleriyle ancak birlikte çalışabilir değillerdi.

13 Eylül 2017'de yayınlanan bir röportajda, Jeffrey Snover proje için motivasyonu açıkladı:[11]

Bir grup değişikliği yönetiyordum ve daha sonra başlangıçta UNIX araçları ve bunları Windows'ta kullanılabilir hale getirdi ve sonra işe yaramadı. Sağ? Çünkü bir Windows ve Linux arasındaki temel mimari fark. Açık Linux her şey bir ASCII Metin dosyası, yani onu manipüle edebilecek her şey bir yönetim aracıdır. AWK, grep, sed ? Mutlu günler!

Bu araçları Windows'ta kullanıma sundum ve sonra Windows'u yönetmeye yardımcı olmadılar çünkü Windows'ta her şey bir API yapılandırılmış verileri döndürür. Yani, bu yardımcı olmadı. [...] Bu PowerShell fikrini buldum ve "Hey, bunu daha iyi yapabiliriz" dedim.

2002'de Microsoft, Monad adlı bir CLI (Microsoft Shell veya MSH olarak da bilinir) dahil olmak üzere komut satırı yönetimine yeni bir yaklaşım geliştirmeye başladı. Arkasındaki fikirler, Ağustos 2002'de Monad Manifesto adlı bir beyaz kitapta yayınlandı.[12] Monad, bir dizi temel yönetim görevini otomatikleştirebilecek yeni bir tasarıma sahip yeni bir genişletilebilir CLI olacaktı. Microsoft, Monad'ı ilk olarak Ekim 2003'te Los Angeles'taki Profesyonel Gelişim Konferansı'nda sergiledi. Özel bir beta programı birkaç ay sonra başladı ve sonunda bir genel beta programına yol açtı.

Microsoft ilk Monad kamuoyunu yayınladı beta sürümü 17 Haziran 2005, Beta 2, 11 Eylül 2005 ve Beta 3, 10 Ocak 2006'da. Çok geçmeden, 25 Nisan 2006'da Microsoft, Monad'ın yeniden adlandırıldığını resmen açıkladı Windows PowerShell, bunu yönetim teknolojisi tekliflerinin önemli bir parçası olarak konumlandırıyor.[13] PowerShell Sürüm Adayı 1 aynı anda yayınlandı. Hem ad değişikliğinin hem de RC'nin önemli bir yönü, bunun artık bir Windows bileşeni olması ve bir eklenti ürün olmamasıydı.

PowerShell sürüm 1'in Sürüm Adayı 2, 14 Kasım 2006'da son Web'de Yayınlanma (RTW) ile 26 Eylül 2006'da yayınlandı ve TechEd Barcelona'da duyuruldu. Windows'un önceki sürümleri için PowerShell, 30 Ocak 2007'de piyasaya sürüldü.[14]

PowerShell v2.0 geliştirme, PowerShell v1.0 gönderilmeden önce başladı. Geliştirme sırasında Microsoft, üç topluluk teknolojisi önizlemeleri (CTP). Microsoft bu sürümleri halka açık hale getirdi. Windows PowerShell v2.0'ın son CTP sürümü Aralık 2008'de kullanıma sunuldu.

Linux 6.0 Alpha 9 için PowerShell Ubuntu 14,04 x64

PowerShell v2.0, Windows 7 ve Windows Server 2008 R2'nin ayrılmaz bir parçası olarak Ağustos 2009'da tamamlanarak üretime sunuldu. Windows XP, Windows Server 2003, Windows Vista ve Windows Server 2008 için PowerShell sürümleri Ekim 2009'da piyasaya sürüldü ve hem 32 bit hem de 64 bit platformlar için indirilebilir.[15]

Windows 10, PowerShell için bir test çerçevesi göndermiştir.[16]

18 Ağustos 2016'da Microsoft,[17] PowerShell'i Windows desteği ile açık kaynaklı ve çapraz platform yaptıklarını, Mac os işletim sistemi, CentOS ve Ubuntu.[5] Kaynak kodu tarihinde yayınlandı GitHub.[18] Açık kaynağa geçiş, "PowerShell Core" adlı ikinci bir PowerShell enkarnasyonunu oluşturdu. .NET Çekirdeği. Tam sürümde çalışan "Windows PowerShell" den farklıdır. .NET Framework.[19] Sürüm 5.1'den başlayarak, PowerShell Core aşağıdakilerle birlikte gelir: Windows Server 2016 Nano Sunucu.[20][21]

Tasarım

PowerShell'in geliştiricileri, aracın temel gramerini, POSIX 1003.2 KornShell.[22]

Windows PowerShell, dört tür adlandırılmış komutu yürütebilir:[23]

  • cmdlet'ler (.NET Framework PowerShell ile etkileşim için tasarlanmış programlar)
  • PowerShell betikleri (son eklenmiş dosyalar .ps1)
  • PowerShell işlevleri
  • bağımsız çalıştırılabilir programları

Bir komut bağımsız bir yürütülebilir programsa, PowerShell onu ayrı bir süreç; bir cmdlet ise, PowerShell sürecinde yürütülür. PowerShell etkileşimli bir komut satırı arayüzü burada komutlar girilebilir ve çıktıları görüntülenebilir. Kullanıcı arayüzü özelleştirilebilir sekme tamamlama. PowerShell, takma adlar PowerShell'in metinsel olarak orijinal komutların çağrılarına çevirdiği cmdlet'ler için. PowerShell her ikisini de destekler isimli ve konumsal parametreleri komutlar için. Bir cmdlet çalıştırılırken, bağımsız değişken değerini parametreye bağlama işi PowerShell tarafından yapılır, ancak harici yürütülebilir dosyalar için bağımsız değişkenler, PowerShell yorumlamasından bağımsız olarak harici yürütülebilir dosya tarafından çözümlenir.[kaynak belirtilmeli ]

PowerShell Genişletilmiş Tip Sistem (ETS) .NET türü sisteme dayalıdır, ancak genişletilmiş anlamlara sahiptir (örneğin, özellik kümeleri ve üçüncü taraf genişletilebilirliği). Örneğin, veri alanlarının, özelliklerin ve yöntemlerin yalnızca bir alt kümesini göstererek ve ayrıca özel biçimlendirme ve sıralama davranışını belirleyerek nesnelerin farklı görünümlerinin oluşturulmasını sağlar. Bu görünümler kullanılarak orijinal nesneye eşlenir XML tabanlı yapılandırma dosyaları.[24]

Cmdlet'ler

Cmdlet'ler, PowerShell ortamında belirli işlevleri uygulayan özel komutlardır. Bunlar, PowerShell yığınındaki yerel komutlardır. Cmdlet'ler bir Fiil-İsim adlandırma kalıbı, örneğin Get-ChildItem, onların kendilerini tanımlamalarına yardımcı oluyor.[25] Cmdlet'ler sonuçlarını nesneler olarak çıkarır ve nesneleri girdi olarak da alabilir, bu da onları bir ardışık düzen içinde alıcı olarak kullanıma uygun hale getirir. Bir cmdlet birden çok nesne çıktısı verirse, koleksiyondaki her nesne, sonraki nesne işlenmeden önce tüm ardışık düzen boyunca geçirilir.[25]

Cmdlet'ler uzmanlaşmıştır. sınıflar, PowerShell çalışma zamanının çalışma zamanında başlattığı ve çağırdığı. Cmdlet'ler aşağıdakilerden türemiştir: Cmdlet veya dan PSCmdlet, ikincisi cmdlet'in PowerShell çalışma zamanıyla etkileşime girmesi gerektiğinde kullanılır.[25] Bu temel sınıflar belirli yöntemleri belirtir - BeginProcessing (), ProcessRecord () ve EndProcessing () - cmdlet uygulamasının işlevselliği sağlamak için geçersiz kıldığı. Bir cmdlet çalıştığında, PowerShell bu yöntemleri sırayla çağırır. ProcessRecord () boru hattı girdisi alırsa çağrılır.[26] Bir nesne koleksiyonu borulu ise, koleksiyondaki her nesne için yöntem çağrılır. Cmdlet'i uygulayan sınıfın bir .NET'e sahip olması gerekir. nitelikCmdletAttribute - cmdlet'in adını oluşturan fiil ve ismi belirtir. Ortak fiiller bir Sıralama.[27][28]

Bir cmdlet boru hattı girdisi veya komut satırı parametre girdisi alırsa, karşılık gelen bir Emlak sınıfta mutatör uygulama. PowerShell, sınıf değişkenlerinde mutatör uygulaması tarafından kaydedilen parametre değeri veya işlem hattı girdisiyle mutatörü çağırır. Bu değerler daha sonra işlevselliği uygulayan yöntemlerle belirtilir. Komut satırı parametreleriyle eşleşen özellikler şu şekilde işaretlenir: ParameterAttribute[29] ve aramadan önce şu şekilde ayarlanır: BeginProcessing (). Boru hattı girdisini eşleştirenlerin yanında ParameterAttribute, ama ile ValueFromPipeline öznitelik parametre kümesi.[30]

Bu cmdlet sınıflarının uygulanması, herhangi bir .AĞ API ve herhangi biri olabilir .NET dili. Ek olarak, PowerShell, aşağıdaki gibi belirli API'leri kullanıma sunar: WriteObject (), ardışık düzene sonuç nesneleri yazmak gibi PowerShell'e özgü işlevlere erişmek için kullanılır. Cmdlet'ler .NET veri erişimini kullanabilir API'ler doğrudan veya PowerShell'in PowerShell altyapısını kullanın Sağlayıcılarveri depolarını benzersiz kullanarak adreslenebilir hale getiren yollar. Veri depoları, dizinler olarak adreslenen sürücü harfleri ve içlerindeki hiyerarşiler kullanılarak açığa çıkarılır. Windows PowerShell, dosya sistemi, kayıt, sertifika komut takma adları, değişkenler ve işlevler için ad alanlarının yanı sıra store.[31] Windows PowerShell ayrıca, çeşitli yazılımları yönetmek için çeşitli cmdlet'ler içerir. pencereler sistemler dahil dosya sistemi veya kullanıyor Windows Yönetim Araçları kontrol etmek Windows bileşenleri. Diğer uygulamalar cmdlet'leri PowerShell'e kaydedebilir, böylece onları yönetmesine izin verebilir ve herhangi bir veri deposunu (veritabanları gibi) kapsarlarsa, belirli sağlayıcılar da ekleyebilirler.[kaynak belirtilmeli ]

PowerShell V2, Modüller adı verilen daha taşınabilir bir cmdlet sürümü ekledi. PowerShell V2 sürüm notlarının durumu:

Modüller, komut dosyası geliştiricilerinin ve yöneticilerin Windows PowerShell kodlarını bağımsız, yeniden kullanılabilir birimler halinde bölümlemesine ve düzenlemesine olanak tanır. Bir modüldeki kod, kendi bağımsız bağlamında yürütülür ve modülün dışındaki durumu etkilemez. Modüller ayrıca bir komut dosyası kullanarak sınırlı bir çalışma alanı ortamı tanımlamanıza olanak tanır.[32]

Cmdlet'lerin sayısı genellikle her sürümde artmıştır:

SürümCmdlet'ler
Windows PowerShell 1.0129[33]
Windows PowerShell 2.0632[34]
Windows PowerShell 3.0yaklaşık 1.000[35]
Windows PowerShell 4.0?
Windows PowerShell 5.0yaklaşık 1.300[36]
Windows PowerShell 5.11586[kaynak belirtilmeli ]
PowerShell Core 6.0?
PowerShell Çekirdek 6.1?
PowerShell Çekirdek 6.2?
PowerShell 7.01507[kaynak belirtilmeli ]
PowerShell 7.1?

Boru hattı

PowerShell, bir boru hattı, bir cmdlet'in çıktısını girdi olarak başka bir cmdlet'e aktarmayı sağlar. Örneğin, Get-Process cmdlet, Nerede-Nesne 1 MB'den az disk belleğine sahip herhangi bir işlemi filtrelemek ve ardından Sırala Nesne cmdlet (örneğin, nesneleri tutamaç sayısına göre sıralamak için) ve son olarak Nesne Seç cmdlet ile yalnızca ilk 10'u seçin (yani, tutamaç sayısına göre 10 işlem).[kaynak belirtilmeli ]

Olduğu gibi Unix ardışık düzenleri, PowerShell ardışık düzenleri, | aşamaları bağlamak için operatör. Bununla birlikte, PowerShell ardışık düzeni, Unix işlem hatlarından farklıdır; bu aşamalar, işletim sistemi tarafından koordine edilen bir dizi işlem ve yapılandırılmış .NET nesneleri yerine PowerShell çalışma zamanı içinde yürütülür. bayt akışları, bir aşamadan diğerine geçilir. Kullanma nesneler ve PowerShell çalışma zamanı içinde aşamaların yürütülmesi, seri hale getirmek veri yapıları veya bunları açıkça ayrıştırma metin çıkışı.[37] Bir nesne ayrıca alıcı komutunun kullanımına açık hale gelen, içerilen veriler üzerinde çalışan belirli işlevleri de kapsayabilir.[38][39] İşlem hattındaki son cmdlet için, PowerShell çıktı nesnesini otomatik olarak Temerrüt dışı cmdlet, nesneleri format nesneleri akışına dönüştürür ve ardından bunları ekrana dönüştürür.[40][41]

Tüm PowerShell nesneleri .NET nesneleri olduğundan, bir .ToString () Bir nesnedeki verilerin metin temsilini alan yöntem. Ek olarak, PowerShell, biçimlendirme tanımlarının belirlenmesine izin verir, böylece nesnelerin metin gösterimi, hangi veri öğelerinin görüntüleneceği ve ne şekilde seçilerek özelleştirilebilir. Bununla birlikte, geriye dönük uyumluluğu korumak için, bir ardışık düzen içinde harici bir yürütülebilir dosya kullanılıyorsa, PowerShell türü sistemle doğrudan tümleştirme yerine nesneyi temsil eden bir metin akışı alır.[42][43][44]

Komut dosyası oluşturma

Windows PowerShell şunları içerir: dinamik olarak yazılmış komut dosyası dili cmdlet'leri kullanarak karmaşık işlemler uygulayabilen zorunlu olarak. Komut dosyası dili değişkenleri, işlevleri, dallanmayı (eğer-ise-değilse), döngüler (süre, yapmak, için, ve her biri için), yapısal hata / istisna işleme ve kapanışlar /lambda ifadeleri,[45] yanı sıra .NET ile entegrasyon. PowerShell betiklerindeki değişkenlerin önünde $. Değişkenlere, cmdlet'lerin çıktısı dahil herhangi bir değer atanabilir. Dizeler tek tırnak içine veya çift tırnak içine alınabilir: çift tırnak kullanılırken, değişkenler tırnak işareti içinde olsalar bile genişletilecektir. Bir dosyanın yolunu, önünde dolar işareti bulunan küme parantezleri içine alma ( $ {C: foo.txt}) dosyanın içeriğine bir referans oluşturur. Olarak kullanılıyorsa L değeri ona atanan her şey dosyaya yazılacaktır. Olarak kullanıldığında R değeri dosyanın içeriği okunacaktır. Bir nesne atanmışsa, depolanmadan önce serileştirilir.[kaynak belirtilmeli ]

Nesne üyelerine kullanılarak erişilebilir . gösterimi, C # sözdizimindeki gibi. PowerShell gibi özel değişkenler sağlar. $ args, komut satırından bir işleve iletilen tüm komut satırı bağımsız değişkenlerinin bir dizisi olan ve $_, boru hattındaki mevcut nesneyi ifade eder.[46] PowerShell ayrıca diziler ve ilişkilendirilebilir diziler. PowerShell komut dosyası dili ayrıca komut satırına girilen aritmetik ifadeleri hemen değerlendirir ve GB, MB ve KB gibi yaygın kısaltmaları ayrıştırır.[47][48]

Kullanmak işlevi PowerShell, aşağıdaki genel formda işlevlerin oluşturulmasını sağlar:[49]

işlevi isim ($ Param1, $ Param2){  Talimatlar}

Tanımlanan işlev aşağıdaki biçimlerden biriyle çağrılır:[49]

isim değer1 değer2isim -Param1 değer1 -Param2 değer2

PowerShell, adlandırılmış parametreleri, konumsal parametreleri, anahtar parametrelerini ve dinamik parametreleri destekler.[49]

PowerShell, ad alanlarını parantez ([]) ve sonra iki nokta üst üste kullanarak (::) statik yöntemi belirtmek için.[50] Örneğin,[System.Console] :: WriteLine ("PowerShell")Nesneler, Yeni Nesne cmdlet. .NET nesnelerinin çağrı yöntemleri, normal . gösterim.[50]

PowerShell kabul eder Teller hem çiğ hem de kaçtı. Tek arasında bir dize alıntı işaretleri çift ​​tırnak işaretleri arasında yer alan bir dize, çıkış karakterli bir dizedir. PowerShell, düz ve kıvrık tırnaklara eşdeğer olarak davranır.[51]

Aşağıdaki özel karakter listesi PowerShell tarafından desteklenir:[52]

PowerShell Özel Karakterleri
KarakterAçıklama
`0Boş
`aUyarmak
`bGeri tuşu
`eKaçış
`fForm besleme
`nYeni hat
`rSatırbaşı
`tYatay sekme
`u {x}Unicode kaçış dizisi
`vDikey sekme
--%Ayrıştırmayı durdur

Hata işleme için PowerShell, .NET tabanlı bir istisna işleme mekanizma. Hata durumunda, hatayla ilgili bilgileri içeren nesneler (İstisna nesne) atılır, bunlar kullanılarak yakalanır dene ... yakala inşa etmek (bir tuzak yapı da desteklenmektedir). PowerShell, gerçekte istisna atılmadan yürütmeyi sessizce devam ettirecek şekilde yapılandırılabilir; bu tek bir komutla, tek bir oturumda veya sürekli olarak yapılabilir.[53]

PowerShell kullanılarak yazılan komut dosyaları, her iki durumda da oturumlar arasında kalıcı olacak şekilde yapılabilir. .ps1 dosya veya bir .psm1 dosya (ikincisi bir modülü uygulamak için kullanılır). Daha sonra, kodun tamamı veya koddaki tek tek işlevler kullanılabilir. Komut dosyaları ve işlevler, ardışık düzenlerde komut olarak kullanılabilmeleri ve parametrelerin bunlara bağlanabilmeleri açısından cmdlet'lerle benzer şekilde çalışır. Boru hattı nesneleri işlevler, komut dosyaları ve cmdlet'ler arasında sorunsuz bir şekilde aktarılabilir. Komut dosyalarının yanlışlıkla çalıştırılmasını önlemek için, komut dosyası yürütme varsayılan olarak devre dışı bırakılır ve açıkça etkinleştirilmelidir.[54] Komut dosyalarının etkinleştirilmesi sistem, kullanıcı veya oturum düzeyinde gerçekleştirilebilir. PowerShell betikleri olabilir imzalı bütünlüklerini doğrulamak için ve tabi Kod Erişim Güvenliği.[55]

PowerShell betik dili destekler ikili önek benzer gösterim bilimsel gösterim C ailesindeki birçok programlama dili tarafından desteklenir.[56]

Barındırma

Ayrıca, yönetim işlevini uygulamak için PowerShell çalışma zamanını kullanan bir yönetim uygulamasına gömülü PowerShell de kullanılabilir. Bunun için PowerShell, bir yönetilen barındırma API. Uygulama, API'ler aracılığıyla bir çalışma alanı (PowerShell çalışma zamanının bir örneği), uygulamanın süreç ve bir Çalışma alanı nesne.[6] Çalışma alanının durumu bir SessionState nesne. Çalışma alanı oluşturulduğunda, Windows PowerShell çalışma zamanı, sağlayıcıları başlatma ve cmdlet'leri numaralandırma dahil olmak üzere başlatmayı başlatır ve SessionState buna göre nesne. Çalışma alanı daha sonra eşzamanlı işlem veya eşzamansız işlem için açılmalıdır. Bundan sonra komutları yürütmek için kullanılabilir.[kaynak belirtilmeli ]

Bir komutu yürütmek için, bir boru hattı (bir Boru hattı nesne) oluşturulmalı ve çalışma alanıyla ilişkilendirilmelidir. Ardışık düzen nesnesi daha sonra ardışık düzeni oluşturan cmdlet'lerle doldurulur. Sıralı işlemler için (bir PowerShell betiğinde olduğu gibi), her ifade için bir Pipeline nesnesi oluşturulur ve başka bir Pipeline nesnesinin içine yerleştirilir.[6] Bir ardışık düzen oluşturulduğunda, Windows PowerShell, cmdlet'leri ilgili satırlara çözümleyen ardışık düzen işlemcisini çağırır. meclisler ( komut işlemcisi) ve boru hattına bir referans ekler ve bunları Giriş Borusu, Çıkış Borusu ve ErrorOutputPipe boru hattı ile bağlantıyı temsil etmek için nesneler. Türler doğrulanır ve parametreler kullanılarak bağlanır yansıma.[6] Ardışık düzen kurulduktan sonra, ana bilgisayar Çağırmak() komutları çalıştırma yöntemi veya eşzamansız eşdeğeri - InvokeAsync (). Boru hattında Yazma-Barındırma cmdlet işlem hattının sonunda, sonucu konsol ekranına yazar. Değilse, sonuçlar ana bilgisayara aktarılır ve bu da daha fazla işlem yapabilir veya çıktının kendisini görüntüleyebilir.[kaynak belirtilmeli ]

Microsoft Exchange Sunucusu 2007, yönetim GUI'sini sağlamak için barındırma API'lerini kullanır. GUI'de gösterilen her işlem bir dizi PowerShell komutuyla (veya ardışık düzenleriyle) eşlenir. Ana bilgisayar ardışık düzeni oluşturur ve yürütür. Aslında, etkileşimli PowerShell konsolunun kendisi bir PowerShell ana bilgisayarıdır. yorumlar komut satırına girilen komut dosyaları ve gerekli Boru hattı nesneleri ve onları çağırır.[kaynak belirtilmeli ]

İstenilen Durum Yapılandırması

DSC, bir yazılım ortamının nasıl yapılandırılması gerektiğini bildirimli olarak belirlemeye izin verir.[57]

Bir konfigürasyonDSC, sistemin konfigürasyonda açıklanan durumu almasını sağlayacaktır. DSC konfigürasyonları idempotenttir. Yerel Yapılandırma Yöneticisi (LCM), aşağıda açıklanan kontrol akışını kullanarak sistemi periyodik olarak sorgular kaynaklar (zorunlu DSC parçaları) bir konfigürasyonun durumunun korunduğundan emin olmak için.

Versiyonlar

Başlangıçta "Monad" kod adını kullanan PowerShell, ilk kez Los Angeles'ta Ekim 2003'te Profesyonel Geliştiriciler Konferansı'nda halka gösterildi. Tüm büyük sürümler hala desteklenmektedir ve her büyük sürüm, önceki sürümlerle geriye dönük uyumluluğa sahiptir.

Windows PowerShell 1.0

PowerShell 1.0, Kasım 2006'da, Windows XP SP2, Windows Server 2003 SP1 ve Windows Vista.[58] İsteğe bağlı bir bileşendir Windows Server 2008.

Windows PowerShell 2.0

Windows PowerShell ISE v2.0 açık Windows 7, bir entegre geliştirme ortamı PowerShell betikleri için.

PowerShell 2.0, Windows 7 ve Windows Server 2008 R2[59] ve için yayınlandı Windows XP Service Pack 3 ile, Windows Server 2003 Service Pack 2 ile ve Windows Vista Service Pack 1 ile.[60][61]

PowerShell v2, 240'tan fazla yeni cmdlet eklemenin yanı sıra komut dosyası dili ve barındırma API'sindeki değişiklikleri içerir.[62][63]

PowerShell 2.0'ın yeni özellikleri şunları içerir:[64][65][66]

  • PowerShell uzaktan kumanda: Kullanma WS-Yönetimi PowerShell 2.0, komut dosyalarının ve cmdlet'lerin uzaktaki bir makinede veya çok sayıda uzak makinede çağrılmasına olanak tanır.
  • Arka plan işleri: Ayrıca a PSJob, bir komut dizisinin (betik) veya boru hattının eşzamansız olarak çağrılmasına izin verir. İşler yerel makinede veya birden çok uzak makinede çalıştırılabilir. PSJob'daki etkileşimli bir cmdlet, kullanıcı girişi sağlanana kadar işin yürütülmesini engeller.
  • İşlemler: Cmdlet'i etkinleştirin ve geliştiriciler gerçekleştirebilir işlemsel işlemler. PowerShell 2.0, başlangıç, taahhüt ve geri alma için işlem cmdlet'leri içerir. PSTransaction yanı sıra, işlemi yönetme ve katılan cmdlet ve sağlayıcı işlemlerine yönlendirme özellikleri. PowerShell Kayıt sağlayıcısı işlemleri destekler.
  • Gelişmiş işlevler: Bunlar, PowerShell betik dili kullanılarak yazılan cmdlet'lerdir. Başlangıçta "komut dosyası cmdlet'leri" olarak adlandırılan bu özellik daha sonra "gelişmiş işlevler" olarak yeniden adlandırıldı.[67]
  • Steppable: Bu, kullanıcının ne zaman BeginProcessing (), ProcessRecord () ve EndProcessing () bir cmdlet'in işlevleri denir.
  • Modüller: Bu, komut dosyası geliştiricilerinin ve yöneticilerin PowerShell komut dosyalarını bağımsız, yeniden kullanılabilir birimler halinde düzenlemelerine ve bölümlemelerine olanak tanır. Bir kod modül kendi bağımsız bağlamında çalışır ve modül dışındaki durumu etkilemez. Modüller, bir komut dosyası kullanarak sınırlı bir çalışma alanı ortamı tanımlayabilir. Kalıcı bir devletleri ile kamu ve özel üyeleri var.
  • Veri dili: PowerShell komut dosyası dilinin, veri tanımlarının komut dosyalarından ayrıştırılmasına olanak tanıyan etki alanına özgü bir alt kümesi yerelleştirilmiş çalışma zamanında betiğe aktarılacak dize kaynakları (Komut Dosyası Uluslararasılaştırma).
  • Komut dosyası hata ayıklama: İzin veriyor kesme noktaları PowerShell betiğinde veya işlevinde ayarlanacak. Kesme noktaları satırlara, satırlara ve sütunlara, komutlara ve değişkenlerin okuma veya yazma erişimine ayarlanabilir. Kesme noktalarını komut dosyası aracılığıyla kontrol etmek için bir dizi cmdlet içerir.
  • Olay: Bu özellik, yönetim ve sistem olaylarını dinlemeye, iletmeye ve bunlara göre hareket etmeye izin verir. Olay oluşturma, PowerShell ana bilgisayarlarının, yönetilen varlıklardaki durum değişiklikleri hakkında bilgilendirilmesine olanak tanır. Ayrıca PowerShell betiklerinin abone olmasını sağlar ObjectEvents, PSEvents, ve WmiEvents ve bunları eşzamanlı ve eşzamansız olarak işleyin.
  • Windows PowerShell Tümleşik Komut Dosyası Ortamı (ISE): PowerShell 2.0, entegre hata ayıklayıcı sağlayan GUI tabanlı bir PowerShell ana bilgisayarı içerir, sözdizimi vurgulama, sekmeli bir kullanıcı arabiriminde sekme tamamlama ve 8 adede kadar PowerShell Unicode etkin konsol (Çalışma Alanları) ve ayrıca bir komut dosyasında yalnızca seçilen parçaları çalıştırma yeteneği.
  • Ağ dosya aktarımı: Öncelikli, azaltılmış ve eşzamansız dosya aktarımı için yerel destek, Arka Plan Akıllı Aktarım Hizmeti (BITS).[68]
  • Yeni cmdlet'ler: Dahil olmak üzere Out-GridView, tablo şeklindeki verileri görüntüleyen WPF GridView nesne, buna izin veren sistemlerde ve ISE kurulu ve etkinleştirilmişse.
  • Yeni operatörler: -Bölünmüş, -Katılmakve Splatting (@) operatörler.
  • Try-Catch-Finally ile özel durum işleme: Diğer .NET dillerinden farklı olarak, bu, tek bir yakalama bloğu için birden çok istisna türüne izin verir.
  • Nestable Here-Strings: Güç kalkanı Here-Strings geliştirildi ve artık iç içe geçebilir.[69]
  • Yorumları engelle: PowerShell 2.0, kullanarak blok açıklamalarını destekler <# ve #> sınırlayıcılar olarak.[70]
  • Yeni API'ler: Yeni API'ler, PowerShell ayrıştırıcısı ve çalışma zamanı üzerinde ana bilgisayara daha fazla kontrol sağlamaktan, Çalışma Alanlarının koleksiyonunu oluşturmaya ve yönetmeye (RunspacePools) yanı sıra yaratma yeteneği Kısıtlı Çalışma Alanları yalnızca yapılandırılmış bir PowerShell alt kümesinin çağrılmasına izin verir. Yeni API'ler ayrıca Windows PowerShell tarafından yönetilen bir işleme katılımı da destekler.

Windows PowerShell 3.0

PowerShell 3.0, Windows 8 Ve birlikte Windows Sunucusu 2012. Microsoft ayrıca PowerShell 3.0'ı Windows 7 Service Pack 1 ile Windows Server 2008 Service Pack 1 ile ve Windows Server 2008 R2 Service Pack 1 ile.[71][72]

PowerShell 3.0, daha büyük bir paketin parçasıdır, Windows Yönetim Çerçevesi 3.0 (WMF3), ayrıca WinRM uzaklaşmayı desteklemek için hizmet.[72] Microsoft birkaç tane yaptı Topluluk Teknolojisi Önizlemesi WMF3 sürümleri. Windows Management Framework 3.0'ın ilk topluluk teknolojisi önizleme 2 (CTP 2) sürümü 2 Aralık 2011'de yayınlandı.[73] Windows Management Framework 3.0, Aralık 2012'de genel kullanıma sunulmak üzere piyasaya sürüldü[74] ve varsayılan olarak Windows 8 ve Windows Server 2012'ye dahildir.[75]

PowerShell 3.0'daki yeni özellikler şunları içerir:[72][76]:33–34

  • Planlanmış işler: İşler, önceden belirlenmiş bir tarih ve saatte çalışacak şekilde programlanabilir.
  • Oturum bağlantısı: Oturumların bağlantısı kesilebilir ve yeniden bağlanabilir. Uzak oturumlar, geçici ağ arızalarına karşı daha toleranslı hale geldi.
  • Geliştirilmiş kod yazma: Kod tamamlama (IntelliSense) ve parçacıklar eklendi. PowerShell ISE, kullanıcıların PowerShell cmdlet'leri için parametreleri doldurmak üzere iletişim kutularını kullanmasına izin verir.
  • Delegasyon desteği: İdari görevler, kalıcı ek izinler verilmeksizin, bu tür görevler için izinleri olmayan kullanıcılara devredilebilir.
  • Yardım güncellemesi: Yardım belgeleri Update-Help komutu ile güncellenebilir.
  • Otomatik modül algılama: Modüller, bu modülden bir komut çalıştırıldığında örtük olarak yüklenir. Kod tamamlama, yüksüz modüller için de işe yarar.
  • Yeni komutlar: Diskleri yönetme işlevi de dahil olmak üzere düzinelerce yeni modül eklendi get-WmiObject win32_logicaldiskdaha önce WMI aracılığıyla gerçekleştirilen birimler, güvenlik duvarları, ağ bağlantıları ve yazıcı yönetimi.[daha fazla açıklama gerekli ]

Windows PowerShell 4.0

PowerShell 4.0, Windows 8.1 Ve birlikte Windows Server 2012 R2. Microsoft ayrıca PowerShell 4.0'ı Windows 7 SP1, Windows Server 2008 R2 SP1 ve Windows Sunucusu 2012.[77]

PowerShell 4.0'daki yeni özellikler şunları içerir:

  • İstenilen Durum Yapılandırması:[78][79][80] Bildirime dayalı dil uzantıları ve araçları kullanan sistemler için yapılandırma verilerinin dağıtımını ve yönetimini mümkün kılan DMTF yönetim standartları ve WS-Yönetimi Protokol
  • Yeni varsayılan yürütme politikası: Windows Sunucularında varsayılan yürütme İlkesi artık Uzaktan İmzalanmıştır.
  • Kaydet-Yardım: Artık uzak bilgisayarlara kurulan modüller için yardım kaydedilebilir.
  • Gelişmiş hata ayıklama: Hata ayıklayıcı artık hata ayıklama iş akışlarını, uzaktan komut dosyası yürütmeyi ve PowerShell oturumu yeniden bağlantılarında hata ayıklama oturumlarını korumayı destekliyor.
  • -PipelineVariable anahtarı: Geçerli işlem hattı nesnesini programlama amacıyla bir değişken olarak göstermek için her yerde bulunan yeni bir parametre
  • Ağ teşhisi fiziksel ve Hyper-V'nin sanallaştırılmış ağ anahtarları
  • Nerede ve Nerede yöntem sözdizimi, nesneler üzerinde filtreleme ve yineleme için alternatif bir yöntem sağlar.

Windows PowerShell 5.0

PowerShell 5.0 simgesi

PowerShell 5.0'ı içeren Windows Management Framework (WMF) 5.0 RTM, ciddi bir hata içeren ilk sürümün ardından 24 Şubat 2016'da web'de yeniden yayınlandı.[81]

Temel özellikler şunları içerir:

  • Yeni sınıf oluşturan anahtar kelime sınıflar için nesne yönelimli programlama
  • Yeni Sıralama oluşturan anahtar kelime numaralandırma
  • OneGet cmdlet'leri desteklemek için Chocolatey Paketleme yöneticisi[82]
  • Anahtar yönetimi desteğinin genişletilmesi katman 2 ağ anahtarları.[83]
  • Diğer işlemlerde barındırılan PowerShell arka plan işleri ve PowerShell örnekleri için hata ayıklama (her biri "çalışma alanı" olarak adlandırılır)
  • İstenen Durum Yapılandırması (DSC) Yerel Yapılandırma Yöneticisi (LCM) sürüm 2.0
  • DSC kısmi konfigürasyonları
  • DSC Yerel Yapılandırma Yöneticisi meta yapılandırmaları
  • PowerShell sınıflarını kullanarak DSC kaynaklarını geliştirme

Windows PowerShell 5.1

İle birlikte serbest bırakıldı Windows 10 Yıldönümü Güncellemesi[84] 2 Ağustos 2016 ve Windows Server 2016.[85] PackageManagement artık proxy'leri destekliyor, PSReadLine artık ViMode desteğine sahip ve iki yeni cmdlet eklendi: Get-TimeZone ve Set-TimeZone. LocalAccounts modülü, yerel kullanıcı hesaplarının eklenmesine / kaldırılmasına izin verir.[86] 16 Temmuz 2016'da Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 ve Windows Server 2012 R2 için PowerShell 5.1 için bir önizleme yayınlandı,[87] ve 19 Ocak 2017'de yayınlandı.[88]

PowerShell 5.1, "Desktop" ve "Core" olmak üzere iki sürümde gelen ilk sürümdür. "Masaüstü" sürümü, tam .NET Framework yığını üzerinde çalışan geleneksel Windows PowerShell'in devamıdır. "Core" sürümü .NET Core üzerinde çalışır ve Windows Server 2016 Nano Server ile birlikte gelir. Daha küçük ayak izi karşılığında ikincisi, panoyu yönetmek veya bir bilgisayarı bir etki alanına eklemek için cmdlet'ler, WMI sürüm 1 cmdlet'leri, Olay Günlüğü cmdlet'leri ve profilleri gibi bazı özelliklerden yoksundur.[21] Bu, PowerShell'in özel olarak Windows için yapılmış son sürümüdür.

PowerShell Çekirdek 6

PowerShell Core 6.0 ilk olarak 18 Ağustos 2016'da Microsoft'un PowerShell Core'u ve ürünü yapma kararını açıkladığında duyuruldu. çapraz platform, Windows'tan bağımsız, ücretsiz ve açık kaynak.[5] Başardı genel kullanılabilirlik Windows için 10 Ocak 2018 tarihinde, Mac os işletim sistemi ve Linux.[89] Kendi destek yaşam döngüsüne sahiptir ve Windows 10 ile sunulan Microsoft yaşam döngüsü politikasına uyar: Yalnızca PowerShell Core'un en son sürümü desteklenir. Microsoft, her altı ayda bir PowerShell Core 6.0 için bir küçük sürüm yayınlamayı beklemektedir.[90]

PowerShell'in bu sürümündeki en önemli değişiklik, diğer platformlara yapılan genişlemedir. Windows yöneticileri için, PowerShell'in bu sürümü herhangi bir önemli yeni özellik içermiyordu. Toplulukla 11 Ocak 2018'de yapılan bir röportajda, PowerShell ekibinden Windows PowerShell 5.1'den PowerShell Core 6.0'a geçiş yapacak bir Windows BT uzmanı için olabilecek en heyecan verici 10 şeyi listelemesi istendi; yanıt olarak, Microsoft'tan Angel Calvo yalnızca iki isim verebildi: çapraz platform ve açık kaynak.[91]

Microsoft'a göre, PowerShell 6.1'in yeni özelliklerinden biri "Windows 10'daki 1900'den fazla mevcut cmdlet ile uyumluluk ve Windows Sunucusu 2019."[92] Yine de, bu cmdlet'lerin hiçbir detayı, değişiklik günlüğünün tam sürümünde bulunamıyor.[93] Microsoft daha sonra, PowerShell Core Windows PowerShell 5.1'in yerini alamadığı ve Windows'ta çekiş gücü kazandığı için bu sayının yetersiz olduğunu iddia etti.[94] Bununla birlikte, Linux'ta popülerdi.[94]

PowerShell Core 6.2, öncelikli olarak performans iyileştirmelerine, hata düzeltmelerine ve kullanıcıların yaşam kalitesini artıran daha küçük cmdlet ve dil geliştirmelerine odaklanır.[95]

PowerShell 7

PowerShell 7, PowerShell Core 6.x ürünlerinin yanı sıra desteklenen son Windows PowerShell sürümü olan Windows PowerShell 5.1'in yerini alan üründür.[96][94] Geliştirmedeki odak noktası, PowerShell 7'yi Windows PowerShell 5.1 için uygun bir alternatif haline getirmekti, yani Windows ile birlikte gelen modüllerle uyumluluk açısından Windows PowerShell ile neredeyse eşitliğe sahip olmaktı.[97]

PowerShell 7'deki yeni özellikler şunları içerir:[98]

  • -Paralel için geçiş ForEach-Object paralel işlemenin üstesinden gelmeye yardımcı olmak için cmdlet
  • Yerleşik Windows modülleri ile uyumluluk açısından Windows PowerShell ile neredeyse eşit
  • Yeni bir hata görünümü
  • Hata Al cmdlet
  • Ardışık düzen zincirleme operatörleri (&& ve ||) ardışık düzendeki sonraki cmdlet'in koşullu yürütülmesine izin veren
  • ?: için operatör üçlü işlem
  • ??= değişkenin mevcut değeri olduğunda bir değişkene bir değer atayan operatör boş
  • ?? için operatör boş birleştirme
  • Çapraz platform Invoke-DscResource (deneysel)
  • Dönüşü Out-GridView cmdlet
  • Dönüşü -Pencere göster için geçiş Yardım almak

Cmdlet'lerin benzer komutlarla karşılaştırılması

Aşağıdaki tablo, diğer iyi bilinen komut satırı yorumlayıcılarındaki benzer komutları dikkate alarak, PowerShell ile birlikte gönderilen cmdlet'lerin bir seçimini içerir. Bu benzer komutların çoğu, PowerShell'de diğer adlar olarak tanımlanan kutudan çıkar çıkmaz, diğer yaygın kabuklara aşina olan kişilerin çalışmaya başlamasını kolaylaştırır.

Comparison of PowerShell cmdlets with internal and external commands of other command-line interpreters
PowerShell (Cmdlet)PowerShell (Alias)Windows Komut İstemiUnix kabuğuAçıklama
Get-ChildItemgci, dir, lsdirlsLists all files and folders in the current or given folder
Test-Connection[a]pingpingpingGönderir ICMP echo requests to the specified machine from the current machine, or instructs another machine to do so
İçeriğe erişgc, type, cattipkediGets the content of a file
Get-CommandgcmYardımtip, hangi, compgenLists available commands
Get-Helphelp, manYardımapropos, adamPrints a command's documentation on the console
Clear-Hostcls, clearclsaçıkEkranı temizler[b]
Copy-Itemcpi, copy, cpkopya, xcopy, robocopycpCopies files and folders to another location
Move-Itemmi, move, mvhareketmvMoves files and folders to a new location
Öğeyi kaldırmakri, del, erase, rmdir, rd, rmdel, silmek, rmdir, rdrm, rmdirDeletes files or folders
Rename-Itemrni, ren, mvren, Adını değiştirmekmvRenames a single file, folder, hard link or symbolic link
Get-Locationgl, cd, pwdCDpwdDisplays the working path (current folder)
Pop-LocationpopdpopdpopdChanges the working path to the location most recently pushed onto the stack
Push-LocationpushdpushdpushdStores the working path onto the stack
Set-Locationsl, cd, chdirCD, chdirCDChanges the working path
Tee-ObjecttişörtYoktişörtPipes input to a file or variable, passing the input along the pipeline
Yazma Çıkışıecho, writeEkoEkoPrints strings or other objects to the standart çıktı
Get-Processgps, pstlist,[c] görev listesi[d]psLists all running processes
Stop-Processspps, killöldürmek,[c] görev öldürme[d]öldürmek[e]Stops a running process
Dize SeçslsFindstrbulmak, grepPrints lines matching a pattern
Set-Variablesv, setAyarlamakenv, export, set, setenvCreates or alters the contents of an Çevre değişkeni
Invoke-WebRequestiwr, curl, wget[f]kıvırmak[100]wget, curlGets contents from a web page on the Internet

Notlar

  1. ^ While the external ping command remains available to PowerShell, Test-Connection's output is a structured nesne that can be programmatically inspected.[99]
  2. ^ Clear-Host is implemented as a predefined PowerShell function.
  3. ^ a b Uygun Windows NT 4, Windows 98 Resource Kit, Windows 2000 Support Tools
  4. ^ a b Introduced in Windows XP Professional Edition
  5. ^ Also used in UNIX to send a process any sinyal, the "Terminate" signal is merely the default
  6. ^ kıvırmak ve wget aliases are absent from PowerShell Core, so as to not interfere with invoking similarly named native commands.

Dosya adı uzantıları

UzantıAçıklama
.ps1Script file[101]
.psd1Module's manifest file; usually comes with a script module or binary module[102]
.psm1Script module file[103]
.dllDLL -Uysal[a] binary module file[104]
.ps1xmlFormat and type definitions file[44][105]
.xmlXML -Uysal[b] serialized data file[106]
.psc1Console file[107]
.psscSession configuration file[108]
.psrcRole Capability file[109]
  1. ^ Dinamik bağlantı kitaplığı (DLL) is not a PowerShell-only format. It is a generic format for storing compiled .NET assembly's code.
  2. ^ XML is not a PowerShell-only format. It is a popular information interchange format.

Uygulama desteği

UygulamaSürümCmdletsSağlayıcıManagement GUI
Exchange Sunucusu2007402EvetEvet
Windows Server2008EvetEvetHayır
Microsoft SQL Sunucusu2008EvetEvetHayır
Microsoft SharePoint2010EvetEvetHayır
Sistem Merkezi Yapılandırma Yöneticisi2012 R2400+EvetHayır
Sistem Merkezi Operasyon Yöneticisi200774EvetHayır
Sistem Merkezi Sanal Makine Yöneticisi2007EvetEvetEvet
Sistem Merkezi Veri Koruma Yöneticisi2007EvetHayırHayır
Windows Compute Cluster Server2007EvetEvetHayır
Microsoft Transporter Suite for Lotus Domino[110]08.02.001247HayırHayır
Microsoft PowerTools for XML açın[111]1.033HayırHayır
IBM WebSphere MQ[112]6.0.2.244HayırHayır
IoT Core Eklentiler[113]74BilinmeyenBilinmeyen
Quest Management Shell for Active Directory[114]1.795HayırHayır
Special Operations Software Specops Command[115]1.0EvetHayırEvet
VMware vSphere PowerCLI[116]6.5 R1500+EvetEvet
internet bilgi servisi[117]7.054EvetHayır
Windows 7 Troubleshooting Center[118]6.1EvetHayırEvet
Microsoft Dağıtım Araç Seti[119]2010EvetEvetEvet
NetApp PowerShell Toolkit[120][121]4.22000+EvetEvet
JAMS Scheduler – Job Access & Management System[122]5.052EvetEvet
UIAutomation[123]0.8432HayırHayır
Dell Equallogic[124]3.555HayırHayır
LOGINventory[125]5.8EvetEvetEvet
SePSX[126]0.4.139HayırHayır

Alternative implementation

Adlı bir proje Pash (the name is a pun on the well-known "bash " Unix shell[127]) has been an açık kaynak ve çapraz platform re-implementation of PowerShell via the Mono framework. Pash was created by Igor Moochnick, written in C # and was released under the GNU Genel Kamu Lisansı. Pash development stalled in 2008,[127] was restarted on GitHub in 2012,[128] and finally ceased in 2016 when PowerShell was officially made open-source and cross-platform.[129]

Ayrıca bakınız

Referanslar

  1. ^ "PowerShell/PowerShell". GitHub. Alındı 2020-11-11.
  2. ^ "v7.1.0-rc.2 Release of PowerShell". GitHub PowerShell repository. Alındı 2020-10-20.
  3. ^ "PowerShell for every system!". 12 June 2017 – via GitHub.
  4. ^ Snover, Jeffrey (May 25, 2008). "PowerShell and WPF: WTF". Windows PowerShell Blog. Microsoft.
  5. ^ a b c Bright, Peter (2016-08-18). "PowerShell is Microsoft's latest open source release, coming to Linux, OS X". Ars Technica. Övmek. Arşivlendi from the original on 2020-04-09. Alındı 2020-05-12.
  6. ^ a b c d e "How Windows PowerShell works". Microsoft Geliştirici Ağı. Microsoft. Alındı 2007-11-27.
  7. ^ Truher, Jim (December 2007). "Extend Windows PowerShell With Custom Commands". MSDN Dergisi. Microsoft. Arşivlenen orijinal 6 Ekim 2008.
  8. ^ Lowe, Scott (January 4, 2007). "Exchange 2007: Get used to the command line". TechRepublic. CBS Interactive. Arşivlendi 2018-11-16 tarihinde orjinalinden. Alındı 2020-05-12.
  9. ^ Snover, Jeffrey (2007-11-13). "SQL Server Support for PowerShell!". Windows PowerShell Blog (blog posting). Microsoft. Arşivlenen orijinal 2007-11-15 tarihinde. Alındı 2007-11-13.
  10. ^ Dragan, Richard V. (April 23, 2003). "Windows Server 2003 Delivers Improvements All Around". Yorumlar. PC Magazine. Ziff Davis. A standout feature here is that virtually all admin utilities now work from the command line (and most are available through telnet).
  11. ^ Biggar and Harbaugh (2017-09-14). "The Man Behind Windows PowerShell". To Be Continuous (Dijital ses dosyası). Heavybit. Alındı 2017-09-14.
  12. ^ Snover, Jeffrey (August 2, 2002). "Monad Manifesto – the Origin of Windows PowerShell". Windows PowerShell Blog (blog posting). Microsoft.
  13. ^ "Windows PowerShell (Monad) Has Arrived". Windows PowerShell Blog. Microsoft. 25 Nisan 2006.
  14. ^ Snover, Jeffrey (November 15, 2006). "Windows PowerShell & Windows Vista". Windows PowerShell Blog (blog posting). Microsoft.
  15. ^ "Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0, and BITS 4.0)". Destek. Microsoft. 30 Eylül 2013. Arşivlenen orijinal 13 Ekim 2013.
  16. ^ "What is Pester and Why Should I Care?". 14 Aralık 2015.
  17. ^ Snover, Jeffrey (18 August 2016). "PowerShell is open sourced and is available on Linux". Microsoft Azure Blog. Microsoft.
  18. ^ "PowerShell/PowerShell". GitHub. Alındı 2016-08-18.
  19. ^ Hansen, Kenneth; Calvo, Angel (August 18, 2016). "PowerShell on Linux and Open Source!". Windows PowerShell Blog. Microsoft.
  20. ^ Foley, Mary Jo (August 18, 2016). "Microsoft open sources PowerShell; brings it to Linux and Mac OS X". ZDNet. CBS Interactive.
  21. ^ a b "PowerShell on Nano Server". TechNet. Microsoft. 20 Ekim 2016.
  22. ^ Payette, Bruce (2007). Windows PowerShell in Action. Manning Pubs Co Series. Manning. s. 27. ISBN  9781932394900. Alındı 2016-07-22. The core PowerShell language is based on the POSIX 1003.2 grammar for the Korn kabuğu.
  23. ^ "about_Command_Precedence". TechNet. Microsoft. 8 Mayıs 2014.
  24. ^ "Windows PowerShell Extended Type System". Alındı 2007-11-28.
  25. ^ a b c "Windows PowerShell Cmdlets". Alındı 2007-11-28.
  26. ^ "Creating Your First Cmdlet". Alındı 2007-11-28.
  27. ^ "Get-Verb". TechNet. Microsoft. 8 Mayıs 2014.
  28. ^ "Cmdlet Overview". MSDN. Microsoft. 8 Mayıs 2014.
  29. ^ "Adding parameters That Process Command Line Input". Alındı 2007-11-28.
  30. ^ "Adding parameters That Process Pipeline Input". Alındı 2007-11-28.
  31. ^ "Windows PowerShell Providers". Alındı 2010-10-14.
  32. ^ PowerShell V2 release notes
  33. ^ Yoshizawa, Tomoaki; Ramos, Durval (29 September 2012). "PowerShell 1.0 Cmdlets". TechNet Articles. Microsoft.
  34. ^ Yoshizawa, Tomoaki (10 July 2012). "PowerShell 2.0 Cmdlets". TechNet Articles. Microsoft.
  35. ^ Wilson, Ed (2013). "1: Overview of Windows PowerShell 3.0". Windows Powershell 3.0 Step by Step. Sebastopol, Kaliforniya: Microsoft Press. ISBN  978-0-7356-7000-6. OCLC  829236530. Windows PowerShell 3.0 comes with about 1,000 cmdlets on Windows 8
  36. ^ Wilson, Ed. "1: Overview of Windows PowerShell 5.0". Windows PowerShell Step by Step (Üçüncü baskı). Redmond, Washington: Microsoft Press. ISBN  978-1-5093-0043-3. OCLC  927112976. Windows PowerShell 5.0 comes with about 1,300 cmdlets on Windows 10
  37. ^ "Windows PowerShell Owner's Manual: Piping and the Pipeline in Windows PowerShell". TechNet. Microsoft. Alındı 2011-09-27.
  38. ^ Jones, Don (2008). "Windows PowerShell – Rethinking the Pipeline". Microsoft TechNet. Microsoft. Alındı 2007-11-28.
  39. ^ "Windows PowerShell Object Concepts". Arşivlenen orijinal 19 Ağustos 2007. Alındı 2007-11-28.
  40. ^ "How PowerShell Formatting and Outputting REALLY works". Alındı 2007-11-28.
  41. ^ "More – How does PowerShell formatting really work?". Alındı 2007-11-28.
  42. ^ "about_Pipelines". TechNet. Microsoft. 8 Mayıs 2014.
  43. ^ "about_Objects". TechNet. Microsoft. 8 Mayıs 2014.
  44. ^ a b "about_Format.ps1xml". TechNet. Microsoft. 8 Mayıs 2014.
  45. ^ "Anonymous Functions and Code Blocks in PowerShell". Alındı 2012-01-21.
  46. ^ "Introduction to Windows PowerShell's Variables". Alındı 2007-11-28.
  47. ^ "Byte Conversion". Windows PowerShell Tip of the Week. Alındı 15 Kasım 2013.
  48. ^ Ravikanth (20 May 2013). "Converting to size units (KB, MB,GB,TB, and PB) without using PowerShell multipliers". PowerShell Dergisi.
  49. ^ a b c "about_Functions". Microsoft TechNet. Microsoft. 17 Ekim 2013. Alındı 15 Kasım 2013.
  50. ^ a b "Lightweight Testing with Windows PowerShell". Alındı 2007-11-28.
  51. ^ Angelopoulos, Alex; Karen, Bemowski (4 December 2007). "PowerShell Got Smart About Smart Quotes". Windows BT Pro. Penton Media. Alındı 15 Kasım 2013.
  52. ^ "About Special Characters". Powershell / Scripting. Microsoft. 8 Haziran 2017. Alındı 20 Haziran 2019.
  53. ^ "Trap [Exception] { "In PowerShell" }". Alındı 2007-11-28.
  54. ^ "Running Windows PowerShell Scripts". Alındı 2007-11-28.
  55. ^ "about_Signing". Microsoft TechNet. Microsoft. 17 Ekim 2013. Alındı 15 Kasım 2013.
  56. ^ Lee Holmes (September 2006). Windows PowerShell Quick Reference. O'Reilly Media.
  57. ^ eslesar. "Windows PowerShell Desired State Configuration Overview". msdn.microsoft.com.
  58. ^ Chung, Leonard; Snover, Jeffrey; Kumaravel, Arul (14 November 2006). "It's a Wrap! Windows PowerShell 1.0 Released!". Windows PowerShell Blog. Microsoft.
  59. ^ "PowerShell will be installed by default on Windows Server 08 R2 (WS08R2) and Windows 7 (W7)!". Windows PowerShell Blog. Microsoft. 2008-10-28. Alındı 2011-09-27.
  60. ^ "Windows Management Framework is here!". 2009-10-27. Alındı 2009-10-30.
  61. ^ "Microsoft Support Knowledge Base: Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0, and BITS 4.0)". Support.microsoft.com. 2011-09-23. Alındı 2011-09-27.
  62. ^ "574 Reasons Why We Are So Proud and Optimistic About W7 and WS08R2". Windows PowerShell Blog. Microsoft. 2008-10-29. Alındı 2011-09-27.
  63. ^ Snover, Jeffrey (2008). "PowerShell: Creating Manageable Web Services". Arşivlenen orijinal 13 Ekim 2008. Alındı 19 Temmuz 2015.
  64. ^ "What's New in CTP of PowerShell 2.0". Alındı 2007-11-28.
  65. ^ "Windows PowerShell V2 Community Technology Preview 2 (CTP2) – releaseNotes". Arşivlenen orijinal 6 Mayıs 2008. Alındı 2008-05-05.
  66. ^ "Differences between PowerShell 1.0 and PowerShell 2.0". Alındı 2010-06-26.
  67. ^ Jones, Don (May 2010). "Windows PowerShell: Writing Cmdlets in Script". TechNet Dergisi. Microsoft.
  68. ^ "GoGrid Snap-in – Managing Cloud Services with PowerShell". Windows PowerShell Blog. Microsoft. 2008-10-14. Alındı 2011-09-27.
  69. ^ "Emit-XML". Windows PowerShell Blog. Microsoft. 2008-10-17. Alındı 2011-09-27.
  70. ^ "Block Comments in V2". Windows PowerShell Blog. Microsoft. 2008-06-14. Alındı 2011-09-27.
  71. ^ Lee, Thomas (13 August 2012). "PowerShell Version 3 is RTM!". Under The Stairs. Alındı 2012-08-13.
  72. ^ a b c "Windows Management Framework 3.0". İndirme Merkezi. Microsoft. 4 Eylül 2012. Alındı 2012-11-08.
  73. ^ "Windows Management Framework 3.0 Community Technology Preview (CTP) #2 Available for Download". Windows PowerShell Blog. Microsoft. 2 Aralık 2011.
  74. ^ "Windows Management Framework 3.0". İndirme Merkezi. Microsoft. 3 Aralık 2012.
  75. ^ Jofre, JuanPablo (December 14, 2016). "Windows PowerShell System Requirements". Microsoft Geliştirici Ağı. Microsoft. Alındı 20 Nisan 2017.
  76. ^ Honeycutt, Jerry (2012). Woolley, Valerie (ed.). Introducing Windows 8: An Overview for IT Professionals. Redmond, WA: Microsoft Press. ISBN  978-0-7356-7050-1.
  77. ^ "Windows Management Framework 4.0 is now available". Microsoft. 24 Ekim 2013. Alındı 4 Kasım 2013.
  78. ^ Levy, Shay (25 June 2013). "New Features in Windows PowerShell 4.0". PowerShell Dergisi. Alındı 26 Haziran 2013.
  79. ^ "Desired State Configuration in Windows Server 2012 R2 PowerShell". Kanal 9. Microsoft. 3 Haziran 2013. Alındı 26 Haziran 2013.
  80. ^ Hall, Adrian (7 June 2013). "Thoughts from Microsoft TechEd North America". Blogs: Tips & Tricks. Splunk. Alındı 26 Haziran 2013.
  81. ^ "Windows Management Framework (WMF) 5.0 RTM packages has been republished". Windows PowerShell Blog. Microsoft. 24 Şubat 2016.
  82. ^ "S ve A". GitHub. Alındı 21 Nisan 2015.
  83. ^ Snover, Jeffrey (2014-04-03). "Windows Management Framework V5 Preview". blogs.technet.com. Microsoft. Arşivlenen orijinal 2014-06-30 tarihinde. Alındı 2015-04-21.
  84. ^ says, Jaap Brasser (2 August 2016). "#PSTip New PowerShell Commands in Windows 10 Anniversary Update".
  85. ^ "What's New In Windows Server 2016 Standard Edition Part 9 – Management And Automation".
  86. ^ "Microsoft.PowerShell.LocalAccounts Module". technet.microsoft.com.
  87. ^ "Announcing Windows Management Framework (WMF) 5.1 Preview".
  88. ^ "WMF 5.1". Microsoft İndirme Merkezi.
  89. ^ Aiello, Joey (11 January 2018). "PowerShell Core 6.0: Generally Available (GA) and Supported!". PowerShell Team Blog. Microsoft. Arşivlendi 11 Haziran 2018 tarihli orjinalinden. Alındı 11 Haziran 2018.
  90. ^ Aiello, Joey; Wheeler, Sean (10 January 2018). "PowerShell Core Support Lifecycle". Microsoft Docs. Microsoft.
  91. ^ Calvo, Angel (11 January 2018). "Top 10 most exciting reasons to migrate". PowerShell AMA. Microsoft.
  92. ^ Aiello, Joey (2018-09-13). "Announcing PowerShell Core 6.1". devblogs.microsoft.com. Microsoft. Alındı 2019-06-01.
  93. ^ "PowerShell/PowerShell". GitHub. Alındı 2020-06-22.
  94. ^ a b c Lee, Steve (2019-04-05). "The Next Release of PowerShell – PowerShell 7". Microsoft. Alındı 2019-06-01.
  95. ^ Lee, Steve (2019-03-28). "General Availability of PowerShell Core 6.2". devblogs.microsoft.com. Microsoft. Alındı 2019-06-01.
  96. ^ Mackie, Kurt (2019-05-30). "Microsoft Releases PowerShell 7 Preview". 1105 Media Inc. Alındı 2019-06-01.
  97. ^ Lee, Steve (2019-05-30). "PowerShell 7 Road Map". devblogs.microsoft.com. Microsoft. Alındı 2020-08-12.
  98. ^ PowerShell 7 Preview 5 | Güç kalkanı
  99. ^ "Test-Connection". PowerShell documentations. Microsoft. 9 Ağustos 2015.
  100. ^ Tar and Curl Come to Windows! - Microsoft Tech Community - 382409
  101. ^ Wheeler, Sean (2 June 2020). "About Scripts". Microsoft Docs. Microsoft.
  102. ^ Wheeler, Sean; Smatlak, David; Wilson, Chase (16 October 2019). "How to write a PowerShell module manifest". Dokümanlar. Microsoft.
  103. ^ Wheeler, Sean; Smatlak, David (22 November 2019). "How to Write a PowerShell Script Module". Microsoft Docs. Microsoft.
  104. ^ Wheeler, Sean (13 November 2016). "How to Write a PowerShell Binary Module". Microsoft Docs. Microsoft.
  105. ^ Wheeler, Sean; Jofre, Juan Pablo; Vorobev, Sergei; Nikolaev, Kirill; Coulter, David (2 June 2020). "About Types.ps1xml". Microsoft Docs. Microsoft.
  106. ^ Wheeler, Sean. "Export-Clixml". Microsoft Docs. Microsoft.
  107. ^ Wheeler, Sean; Jofre, Juan Pablo; Vorobev, Sergei; Nikolaev, Kirill; Coulter, David. "Export-Console". Microsoft Docs. Microsoft.
  108. ^ Wheeler, Sean (2 June 2020). "About Session Configuration Files". Microsoft Docs. Microsoft.
  109. ^ Wheeler, Sean (2 June 2020). "New-PSRoleCapabilityFile". Microsoft Docs. Microsoft.
  110. ^ "Microsoft Transporter Suite for Lotus Domino". Alındı 2008-03-07.
  111. ^ "PowerTools for Open XML". Alındı 2008-06-20.
  112. ^ "MO74: WebSphere MQ – Windows PowerShell Library". Alındı 2007-12-05.
  113. ^ "IoT Core Add-ons command-line options". Alındı 2020-06-13.
  114. ^ "PowerShell Commands for Active Directory by Quest Software". Alındı 2008-07-02.
  115. ^ "PowerShell Remoting through Group Policy". Alındı 2007-12-07.
  116. ^ "VMware vSphere PowerCLI". Alındı 2014-09-09.
  117. ^ "Windows PowerShell : IIS7 PowerShell Provider Tech Preview 2". Alındı 2008-07-03.
  118. ^ "Kudos to the Win7 Diagnostics Team". Alındı 2009-06-15.
  119. ^ Michael, Niehaus (10 Jul 2009). "MDT 2010 New Feature #16: PowerShell support". Alındı 2014-10-27.
  120. ^ "Kudos to NetApp for Data ONTAP PowerShell ToolKit". Alındı 2010-06-15.
  121. ^ "PowerShell Toolkit 4.2 Announcement". Alındı 2016-09-07.
  122. ^ "Heterogeneous Job Scheduling With PowerShell". Alındı 2010-09-15.
  123. ^ "UIAutomation PowerShell Extensions". Alındı 2012-02-16.
  124. ^ "EqualLogic HIT-ME with PowerShell". Alındı 2012-03-09.
  125. ^ de:LOGINventory
  126. ^ "Selenium PowerShell eXtensions". Alındı 2012-08-20.
  127. ^ a b "Pash". SourceForge. Dice Holdings, Inc. Alındı 2011-09-27.
  128. ^ "Pash Project". Alındı 2013-04-10.
  129. ^ "Pash is now obsolete · Issue #429 · Pash-Project/Pash". GitHub. Alındı 2019-11-26.

daha fazla okuma

Dış bağlantılar