Windows 7 :PowerShell-1

Windows 7 hakkinda bilgi , ipucu ve tecrübe paylasim alanidir
Cevapla
Kullanıcı avatarı
trwe
Terabyte4
Terabyte4
Mesajlar: 5287
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Konum: Düzce/Akçakoca

Windows 7 :PowerShell-1

Mesaj gönderen trwe » 09 Eki 2013, 20:28

Değerli Forumdaşlar Ve Değerli Misafirler:

Windows PowerShell Nedir? Ne İşe Yarar

Resim

Bugünkü Windows 7 İşletim Sistemi İle ilgili makalemiz;çoğu Windows kullanıcısının bilmediği veya az bildiği(derin bilgisi olanları bu ifaden uzak tutarım...!) PowerShell(yeni nesil windows ms-dos komut'u olup linux'de (açık kaynak kodlu işletim sistemini oluşturanların bileşenlerin tümü....) yıllardır varolan bir istemci-komut setleri...şeklinde ifade edilebilir.Konuya girişgah yaptığımıza göre konun ayrıntılarına girelim.

Daha önce yukarıda kısaca PowerShell’in Ms-Dos benzeri bir komut sistemi olduğunu ve Ms-Dos’tan çok daha gelişmiş bir platform olduğunu söyledik. Fakat Bu konuya biraz daha değinmek gerekirse.Linux ve Unix taraftarlığının en büyük sebebi komut satırları ile sistemin bütün özelliklerine ulaşabilmelerinden dolayı hissettikleri özgürlüktür. Windows tarafında ise durum biraz farklı Microsoft CLI(command line interface) yerine daha çok GUI(graphic user interface) üzerinde çalışılıyordu. Buda kullanıcının sadece Windows’un görünen yüzü ile uğraşabilmesi anlamına geliyor. Daha üst düzey kullanıcılar ise sistem özelliklerine erişebilmek için Ms-Dos komut satırlarını kullansalarda Ms-Dos yeterli esnekliğe sahip olmadığı için yine istediklerini alamıyorlardı. İşte Microsoft bu açığı kapatmak için Windows PowerShell’i geliştirdi.
Microsoft Windows PowerShell Bilişim Teknolojileri uzmanları ve özellikle Sistem Programcıları için geliştirilmiş komut satır kabuğu ve komut dilidir. Bu kabuk sayesinde sistem kontrolünü çok kolay ve etkin bir şekilde kullanabilmek mümkün. Şöyleki 130 civarında standart komut satırı ve tutarlı söz dizimi ve hizmet programları, script dili ve birçok özelliği sayesinde sistemi yönetmek ve otomasyonları hızlandırmak çok daha kolay.

Windows 7 ve Server 2008’e entegre olarak gelen PowerShell’i Windows XP,Vista ve Server 2003 ‘te de kullanabilmek mümkün. Fakat öncelikle sisteminizde .NET Framework 2.0 veya daha üstü yüklü olması gerekmektedir.
**Buda demek oluyorki PowerShell ile .Net düzeyinde uygulamalarda geliştirilebilir anlamıngelmektedir.
NOT:
Bu konu hakkında yazılarımız devam edecektir.

Herkese İyi Günler
TRWE_2012
Düzce/Akçakoca
:oops: 8) :D :)
TRWE_2016
FEDAKARLIK OLMADAN ZAFER OLMAZ....!
-----------------------------
LINUXMASTER 2018
ZAFER'E GİDEN YOL,FEDAKARLIKTAN GEÇER...!
-----------------------------



Kullanıcı avatarı
trwe
Terabyte4
Terabyte4
Mesajlar: 5287
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Konum: Düzce/Akçakoca

Re: Windows 7 :PowerShell-1

Mesaj gönderen trwe » 09 Eki 2013, 20:37

Bilgilendirme Notu (Makale sonuna bu metni ekleyiniz.)

Windows PowerShell

PowerShell efektif bir şekilde kullanıldığı takdirde Windows Server yöneticilerinin günlük olağan işlerini otomatize etmeye ve yönetimsel görevleri kolaylaştırmaya yardımcı olacak bir çok yeniliği de beraberinde getiriyor. Kodadı Nomad ve WSH (Windows Shell) olarak geçen PowerShell’in release tarihi olan Kasım 2006 dan bu yana 400.000 den fazla download edilmesi de bu ürünün yakın gelecekte Windows yöneticilerinin vazgeçilmez bir yardımcısı olacağının sinyallerini vermekte.
Windows PowerShell için sadece bir komut kabuğu dememiz doğru olmaz. PowerSheel kendi başına yönetimsel işlerin otomasyonu kolaylaştıran ve yöneticinin üretkenliğini arttıracak bir betik(scripting) teknolojisinide beraberinde getirir. Konsol basit bir komut yorumlayıcısından çok bir programlama dili derleyicisi gibi davranır. .NET programlama dili ile kendi komutlarımızı dahi yazıp kabuk içine entegre edebiliriz.
Microsoft PowerShell’i Longhorn Server’ın içinde dağıtacağını duyurdu. Fakat hali hazırda kullandığınız Windows versiyonları için alttaki linkten 1.0 versiyonunu bilgisayarınıza indirip yükleyebilirsiniz.
http://www.microsoft.com/windowsserv.../download.mspx
PowerShell 1.0 kurulumu yapmak için gereksinimler;
• .NET Framework 2.0
• Windows XP Service Pack 2 Windows 2003 Service Pack 1 veya daha yeni bir Windows sürümü
PowerShell ‘i başlatmak için;
• “Start > All Programs > Windows PowerShell 1.0 > Windows PowerShell” tıklanabilir.
• “Start > Run “ a “PowerShell” yazılıp çalıştırılabilir.

Ekran görüntüsü standart “cmd” konsoluna benzemektedir. Fakat işlevselliğindeki farkları birazdan göreceğiz.
Cmdlets Nedir?
Cmdlets en basit anlamda PowerShell’in yeni komut setidir diyebiliriz. Fakat bu komutlar standart çalıştırılabilir (executable) dosyalar şeklinde değilde .NET instance’ları şeklinde çalışmaktadır. .NET programlama dillerinin namespace mantığı da burda kullanılmıştır. Her komut VERB-NOUN yani Fiil-İsim şeklinde tanımlanmıştır. Bi örnekle açıklamak gerekirse “Get-Process” komutu (cmdlets) çalışan uygulamaların bir listesini vermektedir. “Stop-Process” komutu çalışan bir uygulamayı durdurmak için kullanılır. Aynı şekilde tanımlanmış “Get-Service” ve “Stop-Service” komutları servisleri listeler ve durdurur. Komutlar bu şekilde benzer yapılarda tanımlanmış olması komut öğrenmeyi kolaylaştırmak adına gerçekten önemlidir.
“Get-Command” komutuyla kullanılabilir cmdlets listesini alabilirsiniz.
“Get-Command –Verb Get” komutuyla ise Fiil’i Get olan ( yani get ile başlayan) komutların bir listesini alabilirsiniz.


Yardım Almak
PowerShell konsolunda yardım almak ve komutların yazım düzenlerini görmek için kullanabileceğimiz birkaç metod var. Bize tarihi gösteren “Get-Date” komutu ile ilgili yardım almaya çalışalım.
• Get-Help Get-Date >> Get-Help komutunu kullanabiliriz
• Get-Date -? >> -? Argümanını kullanabiliriz
• man Get-Date >> unix tarzı “man” komutunu kullanabiliriz
• help Get-Date >> geleneksel “help” komutunu kullanabiliriz



Alias
Alışkanlıklardan vazgeçmemek adına PowerShell önceden kullandığımız cmd ve unix komutlarına karşılık gelen cmdlets komutları için aliaslar tanımlamıştır. Bunların bir listesini “Get-Alias” komutuyla görebilirsiniz. Örneğin cmd’deki copy veya unix sistemlerdeki cp komutu için “Copy-Item” cmdlets komutu için alias tanımlanmıştır. Yani PowerShell içinde “Copy-Item” “copy” yada “cp” yazmak aynı komutu çalıştırır. Fakat komutların yerine cmdlets ifadelerini kullanmaya ve öğrenmeye çalışmalıyız.

Yeni alias tanımlaması yapmak için Set-Alias komutu kullanılır. Örneğin ;
Set-Alias -Name gi -Value Get-Item
Bu komutla Get-Item komutunu gi şeklinde çalıştıracak alias ı tanımlamaış olduk.
Tanımlı alias’lar karşılık geldikleri cmdlets komutu ve görevleri ile ilgili bikaç örnek;


Otomatik Tamamlama
PowerShell in sunduğu kullanım kolaylıklarından biride otomatik tamamlama. Tab tuşuna basmak suretiyle sadece yazdığımız komutları değil bunların argümanlarını da tamamlayabilmektedir . Argüman tamamlama olayı belliki komutların birer .NET komutu olmasından ve daha önceden tanımlanmış olmasından kaynaklanmaktadır. Ama bu konuda geliştirmesi gereken yerler olduğunu söylemeden geçmeyelim. PowerShell hala unix’in bash kabukğunun sağladığı otomatik tamamlama özelliklerinin tamamını barındırmamaktadır fakat eminimki ilerleyen versiyonlarda bunlar da eklenecektir.

Pipeline
Pipe ( boru “|” ) karakteri sayesinde bir komutun çıktısını bir diğerine argüman olarak aktarabiliriz. Bu cmd konsolunda da olan bi özellikti. Örneğin tek seferde ekrana sığmayacak bir “dir” komutu sonucunu “dir | more” diyerek sayfalar halinde görmemiz mümkün oluyordu. Fakat PowerShell de bu komut çok daha efektif bir şekilde kullanılır hale gelmiştir.
Örneğin 10 MB dan fazla ram kullanan processleri listelemek için;

ve hatta bunları kapatmak istersek şu komutu uygulayabiliriz.
PS C:\ Get-Process | where { $_.PM -gt 10MB } | Stop-Process
Bilgisayarımızdaki açık portların bir listesini ve bunları dinleyen programların process numaralarını (pid) bir dosyaya kaydetmek için şu komut uygulanabilir.

Programlama Ortamı Olarak PowerShell
Cmd konsolunun aksine PowerShell tam bir programlama ortamı gibi hizmet verebilir. .NET Framework’ün birçok özelliğini içinde barındıran PowerShell’i kullanırken dikkat etmek gereken bir husus da boşluk karakteridir. Eski konsoldan alışkanlıklarımızla örn; “cd..” gibi bir komut yazarsak PowerShell bize hata üretecektir. Çünkü sizin cd olarak çalıştırdığınız komut aslında “Set-Location” cmdlets komutuna atanmış bir aliasdır. ( “Get-Alias cd” yazarak görebilirsiniz ) Komutların ve argümanlarının arasında boşluk bırakmak zorunludur ve doğru kullanım şekli “cd ..” şeklinde olmalıdır. Bu küçük hatırlatmayı da yaptıktan sonra PowerShell’in birkaç küçük özelliğine göz atalım.
Siz cmd konsoluna “1+1” ifadesini girmiş olsanız konsol size böyle bir komut olmadığına dair hata verecektir. Fakat PowerShell bir programlama ortamı olduğundan bunu hesaplayacak ve sonucu bize gösterecektir. Bu tarz matematiksel işlemleri direk PowerShell konsoluna girerek hesaplatabiliriz.

Bu örnekte de görüldüğü gibi ister direk sayılar girerek ya da istersek değişkenler tanımlayarak bunları hesaplatabiliyoruz.
Bir küçük örnek de standart olarak gelen “PS C:\>” promptunu değiştirmekle ilgili verelim.

Prompt fonksiyonu ile kullandığımız promptu değiştirebilir ve ihtiyaçlarımıza göre özelleştirebiliriz.
Bu kez de -lt (less then) ve –gt (greater then) ifadeleriyle bir if koşullu ifadesi oluşturmaya çalışalım.

Şimdi programlama tarafında ne kadar ileri gidebileceğimizi göstermek adına biraz abartalım J
Öncelikle .NET System.Windows.Forms namespace’ini yüklemek için şu komutu çalıştıralım.
PS C:\> [Reflection.Assembly]::LoadWithPartialNam e("System.Windows.Fo rms")
Daha sonrada resimdeki komutlarla bir önce bir Windows formu sonra bir buton oluşturup bunu ekranda göstermeyi deneyelim.

PowerShell ve Registry
PowerShell in standart sürücüleri arasından registry düğümleri de vardır. “Get-PSDrive” komutuyla sürücülere bir bakalım.

Görüldüğü üzere PowerShell registry’deki HKEY_CURRENT_USER ve HKEY_LOCAL_MACHINE düğümleri içim birer sürücü tanımlaması yapmıştır. Bir sürücüdeki klasör ve dosyalarda dolaşırcasına bu düğümlerde dolaşabilirsiniz. Tek bir komutla da registry’deki değerleri değitirebiliriz. Şimdi bilgisayarımızda Remote Desktop açık durumda mı bir bakalım ve kapalı olan Remote Desktop u registry’deki değerini değiştirerek açalım. Registry’de bir değeri görüntülemek için Get-ItemProperty ve bunu değiştirmek için de Set-ItemProperty komutları kullanılır.

PowerShell ve WMI Scripting
PowerShell’in kendi scriptlerinin dışında WMI scriptlerini de çalıştırabiliriz. WMI (Windows Management Iinstrumentation) sorguları sayesinde local bilgisayar veya network kaynakları için sorgulamalar yapabiliriz. Şimdi PowerShell ile WMI uygulamalarına birkaç örnek verelim.
Öncelikle WMI kullanarak bilgisayarmızdaki printerları listelemeye çalışalım. Bunun için Get-WmiObject komutunu kullanabiliriz. Ayrıca Select komutuna pipe yaparak sadece yazıcı adlarının listelenmesini sağlayalım.

Şimdi yine biraz abartıp WMI komutlarıyla ping request’i gönderelim fakat PowerShell’in scripting özelliklerinden faydalanarak 1 den 254 e kadar bir döngü oluşturalım ve networkümüzdeki tüm makinaları tarayalım. Ayrıca sadece istediğimiz kolonların görüntülenmesi içinde Select komutunu kullanalım. Bakalım neler olacak.


Gerçekten yapılabilecekler sınırsız gibi görünüyor. Belirtmeden geçemeyeceğimiz bir konu da PowerGUI. www.powergui.org adresinden PowerShell ile temel yönetimsel görevleri grafik ekrandan yapmaya olanak veren bir arayüz olarak PowerGUI programını indirebilirsiniz. Programın içindeki hazır scriptleri de inceleyebilirsiniz.
Bu makale PowerShell için bir kullanım klavuzu olmaktan çok onun getirdiği yenilikler ve onunla ne kadar kompleks görevleri birkaç satırlık kodla gerçekleştirebileceğ imizi göstermek amacıyla yazılmıştır.
TRWE_2016
FEDAKARLIK OLMADAN ZAFER OLMAZ....!
-----------------------------
LINUXMASTER 2018
ZAFER'E GİDEN YOL,FEDAKARLIKTAN GEÇER...!
-----------------------------

Kullanıcı avatarı
velociraptor
Yottabyte3
Yottabyte3
Mesajlar: 28522
Kayıt: 14 Mar 2006, 02:33
cinsiyet: Erkek

Re: Windows 7 :PowerShell-1

Mesaj gönderen velociraptor » 09 Eki 2013, 22:50

teşekkürler örnekleri aşağıdaki linkte bulabilirsiniz:
https://www.sordum.net/4510/windows-7-de ... kullanimi/
Knowledge determines destiny, And ye shall know the Truth and the Truth shall make you free

Kullanıcı avatarı
trwe
Terabyte4
Terabyte4
Mesajlar: 5287
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Konum: Düzce/Akçakoca

Re: Windows 7 :PowerShell-1

Mesaj gönderen trwe » 09 Eki 2013, 23:25

Teşekkürler bende en sık kullandığım komutları resimli anlatımlı bir makale hazırlıyorum.Baya yararlı olcak....!
TRWE_2016
FEDAKARLIK OLMADAN ZAFER OLMAZ....!
-----------------------------
LINUXMASTER 2018
ZAFER'E GİDEN YOL,FEDAKARLIKTAN GEÇER...!
-----------------------------

Cevapla