Month: November 2015

Windows Powershell Ortam Değişkenleri (ENV)

Windows Powershell ile ortam değişkenlerini kullanmak son derece kolay.
Ortam değikenleri sayesinde bir çok pratik bilgiye hızlıca erişebilirsiniz. Powershell scriptlerinizi yazarken çok sık ihtiyaç duyacağınız bu Pratik bilgiler için Windows Powershell içerisinde bir sürürüc tanımlanmış durumda.
Get-PsDrive komutu ile Powershell’in sisteminizde desteklediği tüm sürücü tiplerini görebilirsiniz. Bu, aslında Powershell ile yapılabileceklerin neredeyse “sınırsız” olduğuna dair ipuçlarından yalnızca biri!

Görüldüğü gibi bilgisayarımdaki sabit disklerin yanında daha bir çok birim de sürücü gibi algılanıyor. Böylece tıpkı komut satırından c: yazarak C:\ sürücüsünün içerisine girer gibi CD HKLM: yazarak Registry içerisinde HKEY Local Machine içerisinde de gezinmek mümkün. Biz kendi konumuz olan Environment Variables’a gelelim. Bunun için de CD ENV: komutunu vermemiz gerekiyor.

Bu ortam değişkenleri, bildiğiniz gibi Windows içerisinde My computer özelliklerine geldiğinizde de görebileceğiniz değişkenler. Windows Powershell’den de rahatlıkla ulaşılabilir durumda.


Peki bu ortam değişkenlerinin kullanımına bir örnek olarak aşağıdaki scripti düşünelim. Bunun öncesinde de bu ortam değişkenleri içerisinden istediğim değişkeni doğrudan çağırabilmek için ne yapmam gerektiğine bakalım.
Çok basit. Tek komut!
$env:İstediğimDeğişkenİsmi
Mesela;

Görüldüğü gibi bilgisayar ismini script içinde kullanmam gereken durumlarda yukarıdaki gibi çağırabilirim.
Örnek:

Sonuç bu!
 Sorular için bakionur@bakionur.com

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

 

Powershell 5.0 Chocolatey ile yüzlerce uygulamaya sahip olun

Powershell 5.0 ile birilkte gelen önemli yeniliklerden biri de Chocolatey!

Bu uygulama kütüphanesi sayesinde bilgisayarınıza bir uygulamayı indirip kurmak bir kaç saniyeyi geçmiyor. Nasıl mı?

Öncelikle Powershell 5.0’a sahip olduğumuzdan emin olalım.

Evet artık 5.0 için emin olduğumuza göre Chocolatey’e bakabiliriz. Peki Powershell 5.0 sahibi olmayanlar ne yapmalı?

Şuradan indirebilirsiniz!

Update:

WMF 5.0 download için aşağıdaki linki kullanabilirsiniz

https://www.microsoft.com/en-us/download/details.aspx?id=50395

Chocolatey aslında free bir kütüphane. Powershell 5.0 içerisinde bulunan Package modülü sayesinde uygulamalarımı yönetebildiğimi düşünürsek Chocolatey’i de bunlardan biri gibi düşünebiliriz. Bir nev’I Uygulama Kaynağı (Package Source) aslında. Bilgisayarımda daha önceden yüklü programlar da birer package olarak değerlendirileceği için aslında uygulamalarımı yönetebileceğim zengin bir modül var karşımda. Hani modül peki bu?

Evet artık chocolatey kütüphanesinde hangi uygulamalar var göz atabilirim.

Rakam sürekli artıyor ve binlerle ifade ediliyor.

Peki gözümüze bir uyglama kestirdik, bunu Powershell içerisinden nasıl yükleyeceğiz?

Işte böyle!

Bakın yüklendi bile!

Peki ya kaldırmak istersek?

Sorular için bakionur@bakionur.com

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

Powershell ile Ağ Ayarları Yönetimi

Powershell ile günlük hayatınızda yaptığınız ağ ayarlarını daha hızlı ve otomatik bir hale getirmek istiyorsanız işte bir kaç ipucu…
Ip adresini görüntülemek için;


Ağ adaptörü ayarlarını görüntülemek için;


Ağ kartlarının kullanım durumlarını görüntülemek için;


Statik IP Adresi ve DNS tanımlamak için;

Otomatik IP Adresi (DHCP) için;

 
Ping atmak için;


Trace Route için;



Bir de son olarak Telnet’in Powershell’cesine bir bakalım. Telnet için;


Sorular icin bakionur@bakionur.com

Powershell ile Tarih Oyunları – 1

Tarih konusu hep eğlenceli olmuştur. Powershell tarih fonksiyonları ile “oynayarak” siz de bunu hissedebilirsiniz.
Örneğin doğum günü hesabı yapabilirsiniz. Kaç gün yaşadığınızı öğrenebilirsiniz. Hangi gün doğduğunuzu bulabilirsiniz. Bu bilgi bazen horoskop sayfalarında fayda sağlayabilir J

Burada ne mi yaptık? Bir fonksiyon oluşturduk, içerisine do -while döngüsü sayesinde bir control ekledik. Bu control ile kişiye sorulan dogum gunu bilgisini gün.ay.yıl şeklinde girmesini zorunlu tuttuk. Sonrasında da Timespan fonksiyonu ile şu anki tarihten (Get-Date) doğum günümüzü çıkararak detayları elde ettik.
Sonuç nasıl mı? Şöyle..

Sorular icin bakionur@bakionur.com