İlginizi Çekebilir
  1. Ana Sayfa
  2. Microsoft PowerShell
  3. Powershell 3.0’da Neler Var?

Powershell 3.0’da Neler Var?


Disconnected Sessions

Bu özellik sayesinde, New-PSSession cmdlet ile kurulan uzak bağlantılar, uzaktaki bilgisayara kaydediliyor. Böylelikle session’dan disconnect olabilme, istendiği takdirde tekrardan aynı session’a bağlanabilme özelliği tanınmış oldu. Bu özellik ile beraber; Disconnected-PSSession, Connect-PSSession, Receive-PSSession gibi yeni cmdlet’ler de geldi. Bu cmdletler ile beraber, yeni parametreler de kullanılabilir durumda. InDisconnectedSession paramatersini Invone-Command yerine kullanabilirsiniz.


Bir Windows Server 2012 özelliği olan Web Access, komutlarınızı ve script’lerinizi web konsol üzerinden çalıştırmanızı sağlıyor. Bu erişim için, herhangi bir plug-in, uzaktan yönetim aracı ya da benzeri bir araç kullanmanıza gerek kalmıyor. Windows Server 2012 üzerindeki Web Access Gateway konfigürasyonundan sonra kullanılabilir. Web Browser’lar üzerinde JavaScript ve cookie’ler kabul edilebilir haldeler.

Scheduled Jobs

Powershell’in diğer versiyonlarıda da bulunan bu özellik, belirlediğiniz görevleri ilgili zaman dilimlerinde otomatik olarak çalıştırmanızı sağlar. Background Job’larınızı Task Scheduler içerisindeki Windows Powershell üzerinden zamanlayabiliyorsunuz. Arka planda çalışabilen bu job’lar, size başka scriptler çalıştırabilme ya da farklı kombinasyonlar deneme şansını, asenkron şekilde çalışarak verebiliyor. Task Scheduler içerisindeki tüm özellikleri;

  • Bir kereliğine job çalıştırma
  • Görevi reccur ederek belli zamanlarda çalıştırma
  • Job’lara belli kondisyonlar tanımlayabilme
  • Template’ler üzerinden Job’lar çalıştırma

kullanabilirsiniz.


Windows Powershell, Windows Workflow Foundation gücünü de arkasına alarak, XAML içerisinde workflow’lar hazırlayıp bunları, cmdlet olarak kullanabilirsiniz. Örneğin Get-Help sizlere workflow’ların çalışma şekli hakkında bilgi verebilir.

Workflow’lar multicomputer yönetim aşamaları için, uzun süre çalıştırılabilir, tekrarlanabilir, yeniden başlatılabilir ya da bekletilebilir bir ortam sağlar. Aynı zamanda workflow’lar portable’dır. Varolanları export edebilir, ya da yapınızda kullanmak istediğiniz hazır olan workflow’ları XAML’üzerinden import edebilirsiniz.

Bununla beraber;

  • Uzun süreli çalışan aktivitelerinizi izleyebilir, bu izlemeye uzaktan da yapabilirsiniz.
  • Tek bir workflow içerisinde complex scriptler çalıştırabilirsiniz,
  • Scriptlerinizi belli bir noktaya kadar çalışmasını sağlayıp, dilerseniz tekrar başlangıç noktasına dönüp aynı script’i çalıştırabilirsiniz.
  • Script içerisinde problem meydana geldiğinde, script’in en iyi şekilde çalıştığı zamanı saptayarak oraya kadar çalışmasını ve tekrar devam etmesini sağlayabilirsiniz. Script’lerinizin tamamen fail etmesini engelleyen güzel bir olgudur.
  • Kullanıcılar workflow sunucuna bağlanabilir, ya da bağlantılarını kesebilirler. Ancak arka planda process /script’ler çalışmaya devam eder.
  • Workflow içerisindeki cmdlet ve script’ler zamanlanabilir. Böylelikle, istediğiniz zaman diliminde ilgili cmdlet ya da script’i çalıştırabilirsiniz.
  • Yüksek erişilebilirlik senaryoları için node’lara workflow’larınızı execute edebilirsiniz. Böylelikle workflow içerisinde çalışan script’lerinizin performansı sürekli kılınabilir.

Update-Help

Bu özellik, herhangi bir cmdlet hakkında yardım almak istediğinizde, size en yeni yardım doküman dosyalarını getirerek, ilgili cmdlet hakkında en kapsamlı ve doğru dokümanı okumanızı sağlar.

Show Command

.0 ait bu cmdlet ile, konsolda kullanabileceğiniz komutların listesi, bir script blok oluşturacağınız zaman içeriğini tamamen GUI arayüzden doldurabilme, dolayısı ile script bulmakla ya da hangi cmdlet nerede ne işe yarar, nerede hangi parametreyi kullanabilirim sorularını ortadan kaldıran kullanışlı bir yenilik diyebiliriz.

Unblock-File

Varsayılan konfigürasyonda, istediğiniz script’i Powershell üzerinde çalıştıramazsınız. Bunun sebebi, zararlı içeriğe sahip script bloklarının servis/hizmetlerinize zarar vermemesi içindir. Ancak, Unblock-File cmdlet ile internetten indirmiş olduğunuz dosyaların içeriğini görüntülemenizi sağlar. Böylelikle, içeriğini okuduğunuz script’in zararlı olup olmadığını anlayabiliyoruz.

Web cmdlets

Powershell 3.0 ile beraber Web üzerinde kullanabileceğiniz yeni cmdlet’ler kullanımınıza sunuldu. Bunlar;

  • Invoke-Webrequest : Http ya da Https isteklerini web servise göndererek parse edilmesini sağlar.
  • Invoke-Restmethod : RESTful web servislerine Http ya da Https isteklerini gönderen, HTML ve JSON objeleri geri döndüren bir cmdlettir.
  • Convertfrom-JSON: JSON formatındaki bir string’i JSON objesine çevirir.
  • ConvertTo-JSON: Herhangi bir objeyi JSON formatındaki string’e çevirir.

Web Hosting Hizmetleri için Certificate Provider Support

Web Hosting için kullanılan SSL sertifikaları ile ilgili Powershell 3.0’da gelişmiş özellikler sunulmaktadır. Bu özellikte dinamik parametreler ile beraber yeni cmdlet’ler kullanılabilir durumda.Local makine içerisindeki certificate store içerisinde sertifika oluşturabilir, silebilir; ya da farklı store’lardaki sertifikaları taşıyabilir ya da silebilir. İstenildiği takdirde yeni sertifikalar da oluşturulabilir.

Dinamik Parametreler;

  • DNSname
  • EKU
  • SSLServerAuthentication
  • ExpiringInDays

Yukarıdaki parametreler Get-Childitem cmdlet’i ile beraber kullanılabilir durumdalar. Burada parametreleri “Cert:” sürücüsüne bağlayarak sertifikalarla ilgili oluşturma, silme ya d arama gibi işlemleri yapabilirsiniz. Cert: sürücüsü içerisindeki Remove-Item cmdlet bünyesine “DeleteKey” adında bir dinamik parametre daha atandı.

  • DNSNameList
  • EnhancedKeyUsageList
  • SendAsTrustedIssuer

script Property’leri ise yeni eklendi. Bunlarla beraber, x509Certificate2 tipindeki objeye ait sertifikaları kolay bir şekilde yönetebilirsiniz.

Dinamik olarak paylaşılan hostinglerde gerektiği zamanlarda binlerce sertifikanın yönetilmesi gerekir. Bu sertifikaların yönetilmesi oluşturulması ya da silinmesi, yönetimsel iş yükü getirebileceğinden, tüm bu işlemleri artık verimlilik için daha optimize, hızlı ve otomatize halde yönetebiliyoruz. IIS üzerinde bulunan yeni “WebHosting” sertifika store ile bu işlemleri yapabiliyorsunuz.

Public Network’lerde Powershell Remoting

“SkipNetworkProfileCheck” parametresi, Enable-PSRemoting ve Set-WSManQuickConfig cmdlet’leri ile beraber kullanılabilir halde. Bununla parametre ile beraber public ağlarda uzaktan diğer bilgisayarın Powershell konsoluna bağlantı kurabiliyorsunuz.Bu parametrenin yaptığı iş, local subnet üzerinde bulunan sunucu üzerindeki gerekli firewall portunu trafiğe açmak.

Eğer biraz daha kısıtlayıcı özelliklerle kullanılmak istenirse, “Set-NetFirewallRule” ya da “NetSecurity” modülü ile beraber yapılabilir. Ancak şunu bilmekte yarar var; bu özellik Powershell’in diğer versiyonlarında kullanılamamaktadir.

Foreach-Object & Where-Object için basit syntax

Bu komutlarla beraber istediğiniz objeyi filtreleme, getirme ya da getirilen bu objeleri her birine başka bir işlem yaptırmak gibi işlemler uyguluyorduk. Örneğin;

Her nerede VM değeri 100 MB’dan yüksek process varsa bunları getirmek için;

Get-Process | where VM –gt 100MB

Yazılabilir. Önceki Powershell versiyonlarında bu değeri getirmek mümkün değildi. Artık daha kısa ve basit parametreler ile istediğiniz işlemi yaptırabilirsiniz.

Aşağıdaki komut ise, tırnak içindeki kelimeyi baştan saymaya başlayarak 15 değerine ulaşana kadar sağ tarafına “-” simgesi koyacaktır.

“Windows” , “Systems” | ForEach-Object padright 15 “-”

Önceki Powershell versiyonlarında “Foreach” yazıldıktan sonra “tab” tuşuna basılması ilgili cmdlet’i tamamlamaya yetmiyor, el ile yazmak gerekiyordu. Artık bunun gibi cmdlet’lerde ilk kısmını yazdıktan sonra kendisi size önce “Foreach” bir daha “Tab” tuşuna basınca, “Foreach-Object” komutunu tamamlayabilir.

Network Sürücülerin Map Edilmesi

Yeni gelen “Persist” parametresi’i ile beraber network paylaşımında oluşturabilirsiniz. Bu yöntem, komut satırında kullandığımız “Net Use” ya da File Explorer’ın yaptığı işin aynısını yapmaktadır. “New-PsDrive” cmdlet’i ile beraber kullanılabilen bir parametredir.

Get-Childitem ve Derinlemesine Arama

Get-Childitem –Recurse komutu ile bulunduğunuz dosya lokasyonu içerisindeki tüm klasör ve datanın listesini çekebiliyorduk. Artık Get-Childitem cmdlet’imize; “File,Hidden,Directory,ReadOnly,System” parametreleri eklenerek, yapılan aramaları daha spesifikleştirmek mümkün hale getirildi. Aynı zamanda “Attributes” parametresi ile beraber niteliklerin daha karışık hallerini arayabiliyorsunuz.

Örneğin;

Get-Childitem X:\*.docx -Recurse

Bu komutla beraber X dizinindeki “docx” uzantılı tüm dosyaları listeleyebilirsiniz.

Module AutoLoading

Get-Command komutunu ile beraber, tüm modüllere ait olan tüm cmdlet ve fonksiyonları listeleyebilirsiniz. Modülü import etmeye gerek kalmadan bunu yapabilmek gerçekten güzel bir özellik. Daha önceki Powershell versiyonlarında, Active Directory ile ilgili cmdlet’leri listeleyebilmek için, ilgili Active Directory modülünü; “Import-Module ActiveDirectory” yazıp, import etmeniz gerekiyordu.

$PSModuleAutoLoadingPreference değişkeni kullanılarak, otomatik import özelliği aktif/pasif hale getirilebilir.

Özel Session Konfigürasyon Dosyaları Kullanmak

Powershell 3.0 versiyonu ile beraber, bir dosya içerisinde istediğiniz modül, script ya da fonksiyonlar barındırabilirsiniz. Böylelikle karşıdaki host’a session kurulduğunda dosyadaki ilgili bilgileri çalıştırılabilir, ne görmek ya da çalıştırmak istiyorsanız onu kullanabilirsiniz. Yeni bir konfigürasyon dosyası oluşturmak için;

“NewPsSessionConfigurationFile” cmdlet kullanılabilir. Bu dosyayı uygulamaya koymak için ise, “RegisterPsSessionConfigurationFile” ya da “SetPsSessionConfigurationFile” kullanılabilir.

Yazımızda özetle, Windows Powershell 3.0 ile beraber gelen yeniliklerden bahsettik.

Umarım sizlere faydası olacaktır.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Yorum Yap

Yazar Hakkında

Baran Saygın, İstanbul-Üsküdar doğumludur.Bilge Adam ‘da Sistem ve Platform biriminde Danışman ünvanıyla görev almaktadır. Bundan önce de yine aynı sektörde çeşitli firmalarda görev almış eğitimler vermiş ve projeler gerçekleştirmiştir. Mshowto bünyesinde sizlere yardımcı olmaktan ve bilgilerini paylaşmaktan memnuniyet duymaktadir.

Yorum Yap