towershell.com – All about Windows & Powershell

Windows Client

Powershell Core 6 Hazir!

Microsoft’un epeydir uzerinde calistigi Powershell Core 6 nihayet genel kullanima hazir hale getirildi.

Peki bu yeni surumun uzun yillardir kullandigimiz Powershell’den ne farki var?

Dilerseniz; bunu, iki surumun ozelliklerini hatirlayarak cevaplayalim.

Windows PowerShell

  • Tamamen .NET Framework mimarisi uzerine insaa edilmistir.
  • 11 yildan beri kullanilmakta olan “geleneksel” mimaridir.
  • Arka planda .NET yapisi kullanildigi icin sadece Windows tabanli isletim sistemleri uzerinde kullanilabilir.
  • Mevcut surumler sunlardir
    • 1.0
    • 2.0
    • 3.0
    • 4.0
    • 5.0
    • 5.1
  • Powershell, Windows Client ve Server isletim sistemleri icinde yuklu olarak gelir.
  • Calisitirlabilir uygulama ismi powershell.exe‘dir.

 

PowerShell Core

Tamamen .NET Core mimarisi uzerine insaa edilmistir.

.NET Core destgi sayesinde Windows, macOS, and Linux platformlarind calisabilir

  • Calisitirilabilir uygulama ismi Windows icin pwsh.exe, MacOS ve Linux icin pwsh‘dir.
  • Powershell Core 6.0 yetenekleri dogrudan .NET Core yetenekleriyle sinirlidir.

 

Powershell Core hangi platformlarda kullanilabilir?

  • Windows 7, 8.1, 10
  • Windows Server 2008 R2, 2012 R2, 2016
  • Ubuntu 14.04, 16.04, 17.04
  • Debian 8.7+, 9
  • CentOS 7
  • Red Hat Enterprise Linux 7
  • OpenSUSE 42.2
  • Fedora 25, 26
  • macOS 10.12+

 

Onur

Powershell ile Yerel Kullanici ve Grup Yonetimi

Powershell 5.1 ile gelen ve yerel kullanici ve gruplarin yonetilmesine imkan saglayan cmdlet’leri taniyalim.

Yukaridaki 15 adet cmdlet ile yerel kullanici ve gruplari rahatlikla yonetebilirsiniz.

Yeni bir yerel kullanici olusturmak icin;

Var olan yerek kullanicilari listelemek icin;

Yeni bir yerel grup olusturmak ve icerisine bir kullanici eklemek icin ise;

Gordugunuz gibi yerel kullanici ve grup islemleri son derece basit. Buyrun siz de deneyin!

Baştan Sona Bulut Serüveni Part 2 – Windows Server 2016 Part 5 – PowerShell Direct

Windows Server 2016 PowerShell Direct konusunu içeren Window Server 2016 Part-5 yayında!

<iframe width=”560″ height=”315″ src=”https://www.youtube.com/embed/-kdUJLBAW18″ frameborder=”0″ allowfullscreen></iframe>

Bu barkodu ya da https://bit.do/bastan-sona-bulut-seruveni adresini arkadaşlarınızla paylaşabilir onlarında bu kapsamlı seriye ulaşmalarını sağlayabilirsiniz.

Windows Powershell ile Windows Servislerini Yönetmek – Part I

Powershell ile Windows servislerinizin durumunu anlık olarak öğrenebilir, servis ayarlarınızı hızlı bir biçimde konfigüre edebilirsiniz. Bunun için Powershell’de en sık kullanılan yöntemleri görelim.

Get-Service

Bu standard komut ile hızlıca anlık çalışan servisleri listeleyebiliriz.

Ayrıca her komuta uygulayabileceğimiz gibi Get-Member ile bu komutla birlikte kullanabileceğimiz parametreleri (aslında property ve method) görebiliriz. Bu sayede bu komutun döndürdüğü değerlerin neler olduğunu görebiliriz. Set-Service komutunu kullanırken işimize yarayacaktır.

Şimdi WinRm servisini örnek olarak ele alalım ve bu servisi konfigüre edelim.

Öncelikle Get-Service ile bu servisin tüm ayarlarını listeleyelim.

 

Set-Service

Şimdi de bu servisin ayarlarını Set-Service komutu ile değiştirip düzenleyebiliriz. Aşağıdaki 4 ayrı örnekte WinRm servisinin Başlangıç tipini ayarlamak, servisi başlatmak ve servisi kapatmak gibi işlemler yer alıyor.

 

Get-Service ve Set-Service komutlarının yanı sıra aşağıdaki diğer servis yönetim cmdlet’lerine de biraz bakalım.

Restart-Service

Son derece basit kullanımlı bir cmdlet. Zaten adında da anlaşılacağı gibi komutun sonuna servis ismini yazarak Restart edebiliyorsunuz.

 

Start-Service & Stop Service

Evet bu ikili de adlarından anlışacağı gibi servisleri başlatıp kapatmak için kullanılacak. Şöyle mesela;

 

Peki ismi win ile başlayan tüm servisleri bul ve başlat demek istersem;

 

 

Peki bütün Stop durumundan olan servisleri çalışır hale getirmek istersem;

 

Bu kombinasyonları arttırabilirsiniz.

 

New-Service

Bu cmdlet ile yeni bir Windows servisini ekleyebilirsiniz. Daha önceden derlenmiş bir Windows servisiniz var ve bunu Windows içine deploy etmek istiyorsunuz.

 

Böylece aşağıdaki resim oluşmuş oluyor.

 

Evet Powershell’in yukarıdaki komutları ile servislerinizi yönetmek kolay, peki başka powershell komutları yok mu servisleri yönetebilmek için?

Elbette var.

WMI !

 

Wmi ile Servis yönetimi yazısı için tıklayın

 

Windows Powershell ile Windows Servislerini Yönetmek – Part 2

Windows Servislerini yönetmek için Get-service, Set-Service, New-Service gibi komutları görmüştük. Şimdi de WMI kullanarak servis yönetimi nasıl yapılır ona bir bakalım.

WMI çok kuvvetli bir platform. Dolayısıyla Powershell içerisinden WMI kullanarak Windows içinde sayısız görevi yerine getirebilirsiniz.

Biz konumuza yani servislere geri dönelim. Öncelikle tüm servisleri listelemek için WMI şu şekilde kullanılmalıdır.

 

Ben biraz daha düzgün görünümlü olması için sadece servis ismini ve durumunu çektim.

 

Get-WMiobject komutu ile kullanabileceğim member listesi için (property, method vs.) hemen komutun sonuna Get-Member’i ekliyorum.

 

Kullanabileceğim tüm property ve method’lar çıktı. Artık komutumla birlikte kullanacağım servisimin hangi özelliklerini görüntüleyebiliyorum, hangilerini değiştirebiliyorum artık biliyorum. Property olanlar özelliklerinden her birini gösterirken, method olanlar ise verebileceğim komutları ifade ediyor. Örneğin; bir servisin ismi Name adlı Property ile ifade ediliyor. Bu property’yi çağırdığımda servisin ismini öğrenebiliyorum. Çünkü bu bir Property.

Method ile ise örneğin bir servisi durdurabiliyorum. Çünkü bir method ile bir eylem gerçekleştirilir.

Şimdi örnek olarak WinRM servisini ele alıyoruz ve önce bu servisi listeliyoruz.

 

Bir başka yolu da Filter parametresini kullanmak.

Daha basit bir şekilde yapamaz mıyız?

Evet görüldüğü gibi her 3 şekilde de WinRM servisinin listelendiğini görüyorum.

Şimdi servise ait property’lerden 2-3 tanesini çağırayım ve bir değişkene atayarak göstereyim.

Görülüğü gibi komutun tamamını parantez içine alarak sonra nokta işareti ve dilediğim Property’yi yazarak sadece o bilgiyi çekebiliyorum.

Powershell’in en önemli özelliklerinden ve en yaygın kullanım alanlarından biri de budur işte. Mesela bana acilen WinRM servisinin o anki durumu gerekiyorsa bunu bulmak için yukarıdaki komutu bie değişkene atayıp daha sonra ihtiyacın olduğunda çağırabilirim.

Artık “$winrm_servisinin_durumu” isimli değişkeni her çağırışımda aşağıdaki gibi bana WinRM servisinin o anki durumunu verecektir.

Running!

Şimdi biraz da Method’ları kullanalım ve servisin ayarlarını değiştirelim.

Servisin başlangıç tipini Manual olarak belirleyelim

Servisin başlangıç tipini Automatic olarak belirleyelim

Servisi başlatalım

Servisi durduralım

 

Konumuzun dışlında olabilir ancak komut satırından da (cmd.exe) SC komutuyla servislerinizi yönetebilirsiniz. Elbette powershell kadar esnek değil.

Sorular için bakionur@bakionur.com

Windows Powershell ile haftasonuna ne kadar kaldığını öğrenmek

Haftasonu gibisi yok J

Aklımdan haftasonu geçerken buna da powershell’i ortak etmek istedim.

Basit bir fonksiyonla bugünü ve bir sonraki Cuma gününü bulan, sonra bir sonraki Cuma günü saat 17:30’u belirleyen ve sonrasında şu anki gün, dakika ve saaten bunları çıkaran bir script bu.

Script döngüsünü de sonsuz yapak için bu sefer farklı bir yöntem kullandım ve dedim ki; script 1, 2’den büyük oluncaya kadar devam etsin. J

Bakalım nasıl olmuş

 

 

sorular için bakionur@bakionur.com

Windows Powershell’de çok karıştırılan 3 döngü ve örnekler

Powershell’de çok karıştırılan 3 döngü: Foreach ve For ve Foreach-Object

Foreach-Object

Bir kümedeki istisnasız tüm öğeler için aynı döngü içindeki komutların çalıştırılmasını sağlar.

Örneğin;

Get-NetAdapter | Foreach-Object{

Yukarıdaki örnekte bilgisayarınızda bulunan tüm ağ aygıtları (Ethernet kartı, kabosuz bağdaştırıcı vs.) listeleniyor. Ancak listelenirken her bir aygıtın MAC adresini ekrana yazdırıyor.

Elbette amacım sadece bir liste içindeki tüm ekipmanların belirli öğelerini ekrana yazdırmak olsaydı hiç bu kadar uğraşmayacaktım ve Select-Object ya da Format-Table komutlarıyla ilgili süzme işlemini yapardım. Bakmaın siz bana, maksat Foreach-Object ile tüm öğelerin tek tek işlendiğini göstermek.

 

Foreach

Burada da farklı bir kullanıım sergiliyorum. Aslında yine amacım proses adedi kadar aynı işlemi yapmak. Burada “proses adedi kadar” deme görevi bana düşüyor. Yukarıdaki örnekte ise onu da poersell yapıyor, çnkü kaç adet proses olduğunu bulma yöntemini ona söylememe gerek yok.

 

 

For

For kullanımında ise bir döngünün ne kadar süreceği benim belirlediğim kriterlere bağlı. Mesela 1’den başlayıp 10’a kadar diyebileceğim gibi istersem 0’dan başlayıp toplam servis adedine göre de diyebilirim. Burada sayaç mantığı daha ön planlda. Sayacımı nerde başlatıp nered durduracağıma kendimin karar vermesi gerekiyor.

Aşağıdaki örnekte önce servis sayısını öğreniyorum. Sonra sayacımı 0’dan başlatıp, birer birer artacak şekilde en son $servissayisindan 1 eksik duruma gelene kadar devam etmesini söylüyorum. Neden 1 eksik? Çünkü neredeyse tüm programlama dillerinde öğelerin sayıları 0’dan başlıyor.

 

sorular icin bakionur@bakionur.com

Windows 10 ve Tüm Yönleriyle Emektar Komut Satırı Yenilikleri

Windows deyince eskiden günümüze gelişmiş kullanıcıların vazgeçilmez oyun alanı geldi aklıma. Komut satırı!!

Bazen arayüzden yapılamayan bir çok gelişmiş ayarın yapılabilmesine olanak tanıyan, bazen de gizli kalmış özelliklerin aktif hale getirilebildiği gizemli bir pencere… Hepsi doğru aslında J

Herşeyden önce saatlerce çalışmanızı gerektirecek yığın işlerinizi bazen 3-5 dakika içinde halledebileceğiniz hızlı mı hızlı bir araç komut satırı. Tüm bunlar için uzun yıllardır kullandık komut satırını. Günün birinde Powershell gelerek komut satırının (cmd) pabucunu dama atsa da emektar komut satırını hala seviyor hala kullanıyoruz.

Windows 10 içerisinde de ayrı bir yenilik ile geldi komut satırı. Uzun yıllar kullananlar bilirler; komut satırı penceresinin kendine has özellikleri, kuralları vardır. Öyle Alt+F4 ile kapatamazsınız, öyle kafanıza göre bildiğiniz kısayollar ile copy-paste yapamazsınız vs. vs. Böyle kurallar varken birden bire bu alışkanlıklarımızı unutacağımız hiç aklıma gelmezdi doğrusu. Artık Windows 10’da komut satırının da kendine ait kısayolları var. Artık Windows 10’da komut satırının da kendine ait yepyeni özellikleri var… Neler mi?

Cmd.exe yine eski cmd.exe gibi görünse de pencerede sağ tuş/özellikler bölümüne girdiğinizde karşınızda farklı seçenekler göreceksiniz.

“Experimental” bölümündeki seçeneklere bir göz atalım bu durumda. Bu özellikleri görüntülü olarak paylaşmayı daha faydalı buluyorum. Yani seçenek aktifken etkisi nasıl pasifken etkisi nasıl görün istedim. Buyrun.

“Enable line wrapping selection” özelliği aktifken

“Enable line wrapping selection” özelliği pasifken

Gördüğünüz gibi pencere içerisindeki metinleri seçerek kopyalamak istediğinizde seçimin satır satır mı yoksa serbest mi (mouse ile dikdörtgen çizerek) yapılacağına karar verebilirsiniz.

“Filter cipboard content on paste” özelliği aktifken

Görüldüğü gibi TAB için ayrılmış aralıklar otomaitk silinerek paste işlemi gerçekleştirildi.

“Wrap text output on resize” özelliği aktifken

Pencereyi hangi boyuta getirirsem ekrandaki yazılar da ona göre kendini ayarlıyor. Responsive design everywhere J

“Enable new Ctrl Key shortcuts” özelliği aktifken

Geldik kısayolun faydalarına. Bakalım yeni cmd.exe’miz bize ne gibi kısayollar sunuyor. Yılllardır beklediğimiz özelliklerden en beğendiklerimi kırmızı ile boyadım J

“Extended Edit Keys” özelliği pasifken yukarıda belirttiğim yeni kısayolların büyük bir kısmını kullanamazsınız.

“Trim leading zeros on selection” özelliği aktifken

“Trim leading zeros on selection” özelliği pasifken

Vee Registry..

Computer\HKEY_CURRENT_USER\Console altın bulunan DWORD anahtarlarının açıklamalarına bir göz atalım şimdi…

 

BONUS:

ALT+ENTER

J

Evet emektar komut satırına bir göz de ben atayım dedim.

Kolay gelsin.

BakiOnur

TOWERSHELL - All About Windows Powershell © 2014 Frontier Theme