Powershell 5.0’ın Majör Özellikleri

Powershell 5.0 ile gelen ve dikkat edilmesi gereken en önemli 3 adet majör özellik bulunmaktadır.

- One Get

- Desired State Configuration Improvements

- Network Switch cmdlets

OneGet

OneGet, aslında hepimizinde bildiği gibi Paket Yönetim çözüzümüdür. Microsoft’un bu konudaki boşluğunu OneGet ile doldurdu diyebiliriz. Bu iş, YUM, APT-Get gibi Linux üzerinde uzun zamandır yapılmaktaydı. Web üzerinden software paketlerinin keşfi ve install etmenin yeni yoludur diyebiliriz. Yani search edilen, bulunan ve install edilen paketlerin yazılım repository listesini yönetebilir. Bu listeden ihtiyaç olanları listeler, filter edebilir. Tek bir Powershell komutuyla da birden çok paketi install/uninstall edebilir.

Design State Cnfiguration (DSC) Improvements

DSC, Windows Server 2012 R2 ile birlikte gelen bir özellik olduğunu bilmekteyiz. DSC ile basitçe aşağıdaki işlemleri yapabilmekteyiz.

  • Install/remove Windows Server Roles and Features
  • Dosya ve Folderları yönetilebilinir,
  • Registry ayarlarını yönetilebilir,
  • Servis ve process ler yönetilebilir,
  • Local Group ve kullanıcı hesapları yönetilebilir,
  • .MSI ve .EXE dosyalar kurulabilir ve yönetilebilinir,
  • Environment Variable yönetilebilir,
  • Yapılması istenen konfigürasyonları uzak makinalara iletilebilir,
  • Belirtilen node üzerindeki konfigürasyonun durumunu izleyebilir.

Network Swtich Cmdlets

Network Switch komutları ile Vlan ve temel Layer2 port konfigürasyonları yapmak mümkündür. Windows sertifikalı olması da önemlidir.

Aşağıdaki işlemler yapılabilmektedir.

  • Global switch konfigürasyon, such as:
    • Host name verebilmek
    • Switch banner,
    • Kalıcı konfig,
    • Enable veya disable edebilmek
  • VLAN configuration:
    • VLAN yaratabilmek, silebilmek
    • VLAN Enable veya disable edebilmekte,
    • Enumerate VLAN
  • Layer 2 port konfig:
    • Enumerate ports
    • Enable or disable ports
    • Set port modes and properties
    • Add or associate VLAN to Trunk or Access on the port

 

 

 


 

Desired State Configuration – 3 Basit Adım…

Bir önceki makalemizde DSC Configuration dosyasının syntaxlarının nasıl olacağını paylaşmıştım. Bu makalede de bunların nasıl uygulanabileceği ile ilgili basit adımları aktarmaya çalışacağım

Şu ana kadar ki benim bakış açımla hemen hemen 3 ana adımda DSC geliştirilebilir durumdadır.

Bu adımlar ;

  1. Config dosyası oluşturulması,
  2. Script çalıştırılması,
  3. Deploy edilmesi,

denilebilir.


 

  1. Config dosyası yaratılması; Bir önceki makalemde bunu uzun uzun anlattım.
  2. Script çalıştırılması; Config dosyasını yazdıktan sonra fonksiyonlarda olduğu gibi çalıştırılabilir.

    Configuration File çalıştırıldığı zaman bir adet MOF dosyası oluşur. MOF dosyasında Hedef sunucu için, ne yapacak, neyi honfigüre edecek ve/vea neyi kontrol edecek gibi bilgiler bulunmaktadır.

  3. Üçüncü yani son part’ta MOF dosyası deploy edilir. Bu deploy işleminde 2 yol bulunmaktadır. PUSH method ve diğeri PULL Method’tur.

    Push-Method’ta “Start-DSCConfiguration” komutunu kullanırız. Bu şekilde MOF dosyası hedef sunucuya push edilir.

    Pull-Method’ta ise MOF dosyasının otomatik olarak pull edileceği merkezi bir yer gerekmektedir. Bunun için http server kurulabilir veya file sharing üzerinden de yapılabilir.


     

Desired State Configuration: DSC Syntax

Windows Powershell Desired State konfigürasyonu aslında basitçe 3 part’tan oluşur. Bu omurgayı anladıktan sonar script yazımı oldukça kolay olacaktır. Nedir bunlar;

  1. Configuration Block
    1. Param() desteği olunan kısım,
  2. Node Block
    1. Bu kısımda Node Block’larının olacağı yer, bir veya daha fazla Node Block olabilir.
  3. Resource Block
    1. Bu kısımda da birden çok resource blockların kullanılabileceği yer denilebilir.

Configuration Block

Bu terim Powershell dünyasına yeni katıldı diyebiliriz. Aslında scriptin ana başlangıçı, gövdesi de denilebilir. Powershell’de fonksiyonlara da benzemektedir.

Script’timizde DSC konfigüre etmek için ilk olarak tanımlamak gerekmektedir. Bu tanım aşağıdaki örnekte de görüleceği üzere “Configuration” yazarak başlanır ve bu Configuration’a bir isim yani string değer verilir. Süslü parantezler içerisine de script yazılır.

 


 

 

 

 

Node Block

Configuration Blocklar içerisine Node Block dediğimiz diğer blockları tanımlamak zorundayız. Bu blocklarda “Desired State Configuration” ve MOF dosyasını uygulayacağımz sunucu isimlerini veririz. Configuration Block içerisinde birden çok Node Blocklar olabilir.

Node Block’lar basittir. Node ismiyle başlarlar. Sunucu ismi yanına yazılır ve yine süslü parantezler açılır ve kapanır. ({}).


Eğer birden çok sunucuya DSC deploy edeceksek parantezler içerisinde sunucu isimlerini “,” ile ayırabiliriz. Ek olarak sunucu isimleri için tabii ki bir değişken de kullanılabilir.


Son hali aşağıdaki gibi olur.


Resource Block

Node Blocklar içerisine Resource Block’ları tanımlamak gerekmektekdir. Resouce blocklar, genellikle Resource isimleri ile başlarlar. File, Archive gibi. Bunları string değerler tanımlanarak devam eder ve her zamanki gibi süslü parantezler açılıp/kaptılarak son bulurlar.

Bir Node Block içerisine birden çok Resource Block tanımlanabilir. Yine resorce blocklar içerisine resource değeri ve özellikleri bildirilir.

 


Parameterizing Configuration Script

Fonksiyonlarda olduğu gibi DSC içerisinde de parameter tanımı yapabiliriz. Tanım için Param() kullanılıp içerisine parametreler girilir. Aşağıdaki resimde örnek bir DSC scripti görebiliriz.


 

Enis Göktay

DSC Changes in WMF 5.0 Preview

Yakın zamanda duyurusu yapıldığı üzere Powershell Takımı WMF 5.0 releasse ettiğini duyurdu. Eylül ayında yayınlanan 5.0 biraz daha geliştirilerek hizmete sunuldu.

5.0′da yapılan önemli geliştirmeler aşağıdaki gibidir.

  • OneGet
  • PowershellGet
  • Windows Powershell Desired State configuration
  • Classes for Windows Powershell
  • Debugging in Windows Powershell

DSC’de ki değişiklikler

Özellikle WMF 5.0′ın majör değişikliklerinden biride DSC’de oldu. Partial Configurations, class-defined DSC resources, yeni LCM konfigürasyonu method ve daha birçok DSC komutu görebilmekteyiz.

Ek olarak;

DSC konfigürasyonları artık 32 Bit processler içinde tanımlanıp compiled edilebilir hale geldi. Bu 32-bit işlemcili bir sunucuda 64-bit işlemcili sunucu için konfigürasyon yapılabilir hale geldi

Merkezi Lokasyona Konfigürasyon Durumu İletme

Gerek Pull gerekse Push yönetimiyle yönlendirilen konfigürasyonlarda Local Configüration Manager(LCM) status bilgileri gönderilemesi sağlanabilmektedir.

Start-DSCConfiguration ile ilgili geliştirmeler

Eğer konfigürasyon restart gerektiriyorsa ve restart ediliyorsa sunucu açıldıktan sonra bile bilgileri streaming etmeye devam etmektedir.

Enis Göktay

Kaynak :
http://blogs.msdn.com/b/powershell/archive/2014/11/18/windows-management-framework-5-0-preview-november-2014-is-now-available.aspx

 


 

Powershell COM Obje kullanımı

Fonksiyonlarda COM objeleri tabii ki oluşturulabilir ve kullanılabilir. Örnek olarak bu makalede bir obje oluşturularak nasıl çalıştığı hakkında bilgi vereceğim.

Aşağıdaki resimde görüldüğü üzere GoogleArama isimli bir fonksiyon oluşturulmuştur. Fonksiyon içerisine sırasıyla Internet.Explorer objesi oluşturulmuş ve aramanın yapılacağı web adresi girilmiştir.

 


Sonuç olarak powershell ekranına fonksiyon adı ve aramanın yapılacağı kelime yazılırsa size istenilen aramayı Internet Explorer’da açacaktır.

Powershell – Remote Management Ayarları

Windows Server 2012 R2 işletim sisteminde default olarak enable etmek için aşağıdaki adımları gerçekleştirilebilir

  • Windows Remote Management (WinRM) servislerinin start tipini Automatic olarak ayarlanır ve servis start edilir.

    • Authenticate Kerberos ve
    Negotiate olarak enable edilir.
    • WINRM için Windows Firewall inbound ruleları aktif edilir,
    •Subnet scoping kurallarını aşağıdakilere göre değiştirilidir.

    • Domain veya private profile: any IP address
    • Public profile: Sadece LocalSubnet
    • Wsman:\localhost\Service\AllowRemoteAccess True olarak ayarlanır
    • WinRM listener over HTTP port number 5985 olarak yaratılır.
    The LocalAccountTokenFilterPolicy default setting prevents remote
    management by local, non-domain Administrator accounts other than
    the built-in Administrator account.

    Daha fazla bilgi için;

    http://go.microsoft.com/fwlink/?LinkID=252970.

Online SharePoint Yöneticiliği

SharePoint sistemlerinin ana ve temel konseptlerinden biride kontrol ve erişilebilirlik diyebiliriz. Yetkisi olana yetkisi kadar izin vererek veya roller atayabilirsiniz.

SharePoint Online’da bu işlemler, Microsoft kendi datacenterlarında, Sharepoint Farm’ı kendisi yaratır ve yönetir. Merkezi yönetimide kendi elinde tutar.


Office 365 üyeliğini Microsoft’tan satın aldığınız zaman ilk tanımlanan hesap root Global Administrator olarak tanımlanır. Yani Sharepoint tenant Admin olarak(Sharepoint Online Administrator) isimlendirilir.

Aşağıdaki tabloda SharePoint Online Administrator, Site Collection Administartor ve Site Level Owner neler yapabileceğini göstermektedir.

 

 

 

SharePoint Online Administrator

Site Collection Administrator

Site Level Owner

  • Site collection’ları yaratmak ve yönetmek,
  • Site silmek ve/veya geri almak,
  • Site özelliklerini gözden geçirmek,
  • Site sharing seçeneklerini ayarlamak,
  • Designate Site Collection
  • WEbsite Domain kontrolü,
  • InfoPath, User profile, BSC, Term Store, Records Man, Search ve app,
  • Manane Tenant ayarları
  • Site kollection özelliklerini yönetmek,
  • Yeni subsite yaratmak, yeni doküman kütüphanesi ve listesi,,
  • Site Collection Adminliği ekleyebilmek,
  • Siteyi template olarak kaydetmek,
  • Site kolonu ve içerik tiplerini yönetmek,
  • Kullanıcı alert ve RSS ayarlarını yönetmek,
  • Default region ve dil ayarlarını,
  • Internal/External grup/user davet etmek
  • Sahip olunan site ayarları,
  • Site özelliklerini yönetmek,
  • Template olarak siteyi kaydetmek,
  • Site delete,
  • Kullanıcı alert ve Rss ayarları,

Powershell ile Dosya/Klasörleri Encrypting – Decrypting

EFS(Encrypting File System) default olarak sistemlerimizde enable durumdadır. Kullanmakta olduğumuz dosyaları pekala kriptolayabilir veya açabiliriz.

Aşağıdaki örnekte de görebileceğiniz üzere bir text dosyası kriptolanıp sonrasında da decrypte edilmiştir. Kriptolanmış dosya YEŞİL renkte gözükmektedir.


Decrypte edildikten sonra dosya tekrar siyah olarak gözükmektedir.

Creating Switch via Powershell

Sanal switch GUI üzerinden oluşturulabildiği gibi powershell komutları ile de yaratılabilmektdir.

Aşağıda belirttiğim komutlar yardımıyla oluşturabilmek mümkündür.

#Create new external (implicit external as adapter passed)
New-VMSwitch -Name “External Switch” -Notes “External Connectivity”
-NetAdapterName “VM NIC” -AllowManagementOS $false
#Create new internal (visible on host) and private (vm only)
New-VMSwitch -Name “Internal Switch” -SwitchType Internal
New-VMSwitch -Name “Private Switch” -SwitchType Private

Switch yaratıldığı zaman Virtual Switch Manager’dan konfig görülebilir.

Installing Windows PowerShell 4.0 on Windows 2012 [Windows Management Framework 4.0]

Installing Windows PowerShell 4.0 on Windows 2012 [Windows Management Framework 4.0]

 

WMF 4.0′I Windows 2012′ye kurmak oldukça basittir.

  1. .Net 4.5 is Windows Server 2012 sunucumuzda kuruyoruz
  2. Windows8-RT-KB2799888-x64.msu patch indirin
  3. .msu uzantılı dosyayı sunucumuza kuruyoruz
  4. Kurulum sonrası sunucumuzu reboot ediyoruz.
  5. $psversionTable ile çıktıyı control ediyoruz.

https://support.microsoft.com/kb/2799888/tr