Windows PowerShell
2006 yılında tanıtılan Windows PowerShell, Microsoft .NET üzerine kurulmuş olan bir platformdur ve yönetim görevlerini otomatikleştirmek için kullanılır.
Komutlar, Windows PowerShell’in ana işlevini sağlar. Tek bir görevi tamamlamak için doğrudan Windows PowerShell konsolundan komutlar çalıştırılabilir veya komutları kullanarak, karmaşık yönetim sorunları için özel çözümler oluşturulabilir. Konsol, Windows PowerShell için komut satırı arabirimidir (CLI – Command-Line Interface) ve Windows PowerShell ile etkileşim kurmanın birincil yoludur.
Windows PowerShell, önceki cmd.exe CLI’nın ve sınırlı özelliklere sahip batch file script dilinin yerini alır.
Microsoft, sunucu uygulamaları ve bulut hizmetlerini yönetmek için kullanılabilecek birçok cmdlet’ler sağlar. Hatta bazı özellikler sadece Windows PowerShell kullanılarak yönetilir.
2016’dan itibaren Windows PowerShell, PowerShell Core olarak adlandırılan açık kaynak bir proje haline geldi ve Linux ve MacOs gibi diğer işletim sistemleri üzerinde de kullanılabilir hale getirildi.
Windows PowerShell Versiyonları
Windows PowerShell’in 5 sürümü vardır. Windows PowerShell 1.0, Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0 (Windows PowerShell 5.1. güncellemesi mevcuttur) çıkan her yeni sürüm eski sürümleriyle geriye dönük olarak uyumludur. Fakat bazı sunucu ürünleri belirli Windows PowerShell sürümleri ile bağımlıdır ve yeni sürümler ile uyumluluğu olmaya bilir. Örneğin Microsoft Exchange 2010, Windows PowerShell 2.0 ile bağımlıdır ve Windows PowerShell’in daha yeni sürümleriyle uyumlu değildir. Bu sebeple bir sunucu üzerinde Windows PowerShell’in yeni bir sürümü yüklenmeden önce, o sunucu üzerindeki yüklü yazılımlar ile uyumluluğu kontrol edilmelidir.
Bazı durumlarda Windows PowerShell’in farklı versiyonları kullanılması gerektiğinde hangi versiyon kullanıldığını öğrenmek için:
$PSVersionTable
komutu kullanılabilir. Eğer PowerShell motorunun farklı bir versiyonunu kullanmaya zorlamak istenilirse aşağıdaki gibi istenilen versiyon komutu yazılır.
PowerShell.exe -Version 2
Windows PowerShell ile etkileşim kurmak için, Windows PowerShell motoru içeren bir uygulama kullanmak gerekir. Örnek olarak Exchange Server 2007’deki Exchange Yönetim Konsolu ve daha yeni sürümler gibi. Microsoft’un sağladığı 2 ana PowerShell uygulaması bulunur. Bunlar Windows PowerShell Konsolu ve Windows PowerShell ISE’dir.
Windows PowerShell Konsolu
Windows PowerShell konsolu, Windows işletim sistemi üzerinde varsayılan olarak bulunur ve eski cmd.exe’nin sunduğu komut satırı deneyiminin aynısıdır. Fakat daha fazla kullanım işlevselliğine sahiptir.
Windows PowerShell ISE
Windows PowerShell ISE, zengin düzenleme yetenekleri, IntelliSense kod ipuçları, tamamlama ve çift baytlı karakter kümeleri desteği sağlayan bir Windows Presentation Foundation (WPF) uygulamasıdır.
Cmdlet Yapısı
Windows işletim sistemleri ve diğer Windows ürünlerinde yerleşik olarak bulunan binlerce Windows PowerShell cmdlet’i vardır. Tüm bu komutların isimlerini ve sözdizimini ezberlemek neredeyse imkansızdır. Neyse ki cmdlet’ler kullanımı kolaylaştıracak bir yapı kullanılarak oluşturulduğundan cmdlet’leri keşfetmek ve kullanmak kolaydır.
Cmdlet’lerin temel yapısı Fiil-İsim’dir.
Cmdlet Fillleri
Cmdlet’in fiil bölümü, cmdlet’in ne yaptığını gösterir. Yaygın olarak kullanılan filler aşağıdaki gibidir.
Get – Dosya veya kullanıcı gibi bir kaynağı getirir.
Set – Dosya veya kullanıcı özelliği gibi bir kaynakla ilişkili verileri değiştirir.
New – Dosya veya kullanıcı gibi bir kaynak oluşturur.
Add – Birden çok kaynak içeren bir kapsayıcıya kaynak ekler.
Remove – Birden çok kaynak içeren bir kapsayıcıdan bir kaynağı siler.
Cmdlet İsimleri
Cmdlet’lerin isim kısmı, cmdlet’in ne tür kaynakları veya nesneleri etkilediğini gösterir. Ayrıca isimlerin ailelere gruplanmasına yardımcı olan öneklere sahip olabilirler. Örneğin, Active Directory isimleri AD harfleriyle başlar. (ADUser, ADGroup, ADComputer gibi.) Microsoft Sharepoint Server cmdlet’leri SP önekiyle başlar ve Microsoft Azure Active Directory cmdlet’leri AzureAD önekiyle başlar.)
Parametreler
Parametreler, cmdlet’lerin gerçekleştireceği eylemleri belirler. Cmdlet’lerin bir veya birden fazla parametresi olabileceği gibi hiç olmaya da bilir. Parametresi olan bir cmdlet’i parametre değeri sağlamadan çalıştırırsanız, Windows PowerShell bu parametre için bir değer girilmesini ister.
Parametreler tire (-) işareti ile başlar. Boşluk, diğer parametreler ile ayrım sağladığından eğer değer boşluk içeriyorsa, değer tırnak işaretlerinin içine alınması gerekir. Ayrıca bazı parametreler virgülle ayrılmış ve boşluk içermeyen birden çok değeri kabul eder.
Sekme Tamamlama – Tab
Sekme tamamlama, cmdlet’lerin ve parametrelerin girme hızını ve doğruluğunu artıran bir Windows PowerShell özelliğidir. Cmdlet’in birkaç karakterini girdikten sonra sekme tuşuna basıldığında, Windows PowerShell otomatik olarak tamamlar. Kullanılabilecek birden fazla cmdlet varsa, istenilen cmdlet gelinceye kadar sekme tuşuna basmaya devam edilir.
Sekme tamamlama, komutların çok daha hızlı girilmesini sağlar ve kodun hatasız olarak yazılmasını sağlar. Bazı cmdlet’ler uzun ve karmaşık olabilir. Örneğin, Get-DnsServerResponseRateLimitingExceptionList cmdlet’ini yazarken yanlışlıkla bir karakter yanlış yazılabilir ve kod çalıştırıldığında hayal kırıklığına yol açabilir.
Sekme tamamlama, ayrıca cmdlet ve parametreleri keşfedilmesine de yardımcı olur. Örneğin, Get-AD yazıp tab tuşuna bastığınızda Active Directory cmdlet’lerini sırasıyla görüntüleyebilirsiniz. Sekme tamamlama, joker karakterlerle de çalışır. Örneğin, hizmetler ile ilgili bir cmdlet kullanmak istiyorsunuz ama nasıl yazılacağını bilmiyorsanız *-hizmet metnini girerseniz, hizmet ile ilgili tüm cmdlet’leri tab tuşu ile görüntüleyebilirsiniz.
Get-Help Kullanımı
Windows PowerShell, komutlar için kapsamlı bir yardım sağlar. Get-Help komutunu kullanarak bu yardımlara ulaşabilirsiniz. Get-Help ve istenilen yardım hakkında birkaç karakter yazarsanız o konu ile ilgili cmdlet’ler listelenir ve Get-Help cmdlet komutu ile istenilen cmdlet hakkında bilgi alınabilir. Örneğin, Get-Help hyper komutunu yazarsanız Hyper-V ile ilgili bütün cmdlet’ler listelenir. Get-Help add-vmharddiskdrive komutunu yazarsanız Hyper-V üzerinde bir sanal sunucuya disk eklenmesi ile ilgili komuta ait tüm syntax bilgisini öğrenebilirsiniz.
Eğer yardım komutunun sonuna -Full komutu eklenirse, bütün parametreler dahil daha detaylı bilgiye ulaşılabilir.
Eğer yardım komutunun sonuna -ShowWindow komutu eklenirse, yardım içeriği ayrı bir pencerede açılır ve yardım içeriği ve çalıştığınız komut satırı arasında daha kolay bir kullanım sağlar.
Eğer yardım komutunun sonuna -Online komutu eklenirse, yardım içeriğinin bulunduğu internet sayfasına yönlendirilir.
Yardım komutunu çalıştırdığınızda parametreler 2 blok şeklinde olabilir ve her biri çalıştırılabilecek bir yolu temsil eden parametre kümeleridir. Birinci bloktaki parametreler ile ikinci bloktaki parametreler birlikte kullanılamazlar.
Yardım içeriğinde listelenen parametrelerin adı ve aldığı değerin tamamı köşeli parantez içerisinde olmayanlar zorunlu olan parametrelerdir.
Get-Command Kullanımı
Windows PowerShell Get-Help komutu ile detaylı birçok yardım konusunu sağlar ama ihtiyaç duyulan komutları bulmak zor olabilir. Get-Command komutu ile ihtiyaç duyulan cmdlet’leri bulmak daha kolay bir yoldur. Get-command komutuna fiil, isim, kategori, sürüm hatta modül gibi birçok parametre vererek ihtiyaç duyulan komutlara daha çabuk erişebilir sonrasında Get-Help komutu ile de daha detaylı yardım içeriğine ulaşabilirsiniz. Örneğin, Get-Command -module Hyper-V komutu ile Hyper-v ile ilgili bütün komutlara erişebilirsiniz.
Show-Command Kullanımı
Show-command cmdlet’i, komutların bir listesini veya belirli bir komut için parametrelerini görüntüleyen bir pencere açar. Windows PowerShell ISE’deki komut penceresi ile aynı penceredir. Komutları ve parametrelerini görsel olarak seçip keşfedebileceğiniz kullanışlı bir araçtır.
Active Directory PowerShell Cmdlet’leri ile ilgili detaylı bilgi için : Windows PowerShell Active Directory Yönetim Cmdlet’leri
One Comment