Yeni Başlayanlar İçin Powershell Eğitimi
⚡ Akıllı Özet
PowerShell Scripting, .NET çerçevesi üzerine kurulu nesne yönelimli bir otomasyon motorudur. BT yöneticilerinin otomasyon yapmasına yardımcı olmak için cmdlet'leri, komut dosyalarını ve bir komut dosyası dilini bir araya getirir. WindowsTek bir komut satırından hizmetleri yönetin ve uzak makineleri bağlayın.

PowerShell nedir?
Windows PowerShell Nesne yönelimli bir otomasyon motoru ve betik dilidir. BT uzmanları ve sistem yöneticileri için tasarlanmıştır ve sistem yönetimini kontrol etme ve otomatikleştirme ihtiyacını karşılamak üzere geliştirilmiştir. Windows ve diğer uygulamalar. PowerShell, öğrenilen kavramları genişletir. Windows Komut İstemi ve Windows Yeni nesneler, cmdlet'ler ve güçlü bir işlem hattı içeren Script Host.
Betik yazmanın esnekliğini, komut satırının hızını ve grafiksel kullanıcı arayüzüne sahip yönetim araçlarının derinliğini bir araya getiriyor. Bu sayede yöneticiler sorunları verimli bir şekilde çözebilir ve saatlerce süren manuel çalışmayı ortadan kaldırabilirler. Bu eğitim, PowerShell'i sıfırdan öğrenmek için ihtiyacınız olan temel bilgileri adım adım açıklıyor.
PowerShell'i Neden Kullanmalıyız?
PowerShell kullanmanın en önemli nedenleri şunlardır:
- İşletim sistemi için iyi entegre edilmiş bir komut satırı deneyimi sunar.
- .NET framework'ündeki her türe tam erişim sağlar.
- Kurumsal çapta sistem yöneticileri tarafından güvenilen bir marka.
- Sunucu ve iş istasyonu bileşenlerini birkaç satır kodla yönetmenizi sağlar.
- Sistem yöneticilerine yönelik, sade bir fiil-isim sözdizimine sahip.
- Koşmaktan daha güvenli VBScript veya diğer eski betik dilleri.
PowerShell Geçmişi
PowerShell 1.0 ilk olarak 2006 yılında piyasaya sürüldü. PowerShell şu anda 7.2 ve üzeri sürümlerde. Yayınlanan sürümlerle birlikte yetenekleri ve barındırma ortamları önemli ölçüde gelişti.
PowerShell'in sürüm bazında geçmişi:
- PowerShell 1.0 — yerel yönetimi destekledi Windows Sunucu 2003.
- PowerShell 2.0 — entegre edilmiş Windows 7 ve Windows Server 2008 R2. Uzaktan erişim, işlemler, arka plan görevleri, olaylar ve hata ayıklama özellikleri eklendi.
- PowerShell 3.0 — ile birlikte gönderildi Windows 8 ve Windows Server 2012, bunun bir parçası olarak Windows Yönetim Çerçevesi. Zamanlanmış görevler, oturum bağlantısı ve otomatik modül yükleme eklendi.
- PowerShell 4.0 — ile birlikte gönderildi Windows 8.1 ve Windows Server 2012 R2. İstenen Durum Yapılandırması eklendi, hata ayıklama ve ağ tanılama özellikleri geliştirildi.
- PowerShell 5.0 — bir parçası Windows Yönetim Çerçevesi 5. Uzaktan hata ayıklama, sınıf tanımları ve .NET numaralandırmaları eklendi.
- PowerShell 7.2 — .NET 6.0 üzerine inşa edilmiştir. Yeni operatörler, dinamik hata görünümleri ve otomatik sürüm bildirimleri ekler.
PowerShell'in Özellikleri
- PowerShell Uzaktan Erişim: Uzak bir makinede komut dosyalarını ve cmdlet'leri çalıştırın.
- Arka Plan İşleri: Komut dosyalarını veya işlem hatlarını yerel makinede veya birçok uzak makinede eşzamansız olarak çalıştırın.
- İşlemler: Cmdlet'lerin ve geliştiricilerin, birlikte onaylanabilen veya geri alınabilen gruplandırılmış işlemler gerçekleştirmesine olanak tanır.
- Etkinlik: Yönetim ve sistem olaylarını dinleyin, iletin ve bunlara göre hareket edin.
- Ağ Dosya Aktarımı: Arka Plan Akıllı Aktarım Hizmeti (BITS) aracılığıyla makineler arasında öncelikli, eşzamansız ve kısıtlanmış dosya aktarımına yönelik yerel destek.
PowerShell Nasıl Başlatılır?
PowerShell, en yeni sürümlerin her birinde önceden yüklenmiş olarak gelir. WindowsAşağıdaki şekilde başlatın.
) 1 Adım PowerShell'i arayın WindowsArdından seçin ve tıklayın.
) 2 Adım PowerShell penceresi açılır.
Cmdlet ve Komut
A cmdlet'i (okunuşu “komut-let”), PowerShell ortamında kullanılan hafif bir komuttur. PowerShell, komut isteminde cmdlet'leri çağırır ve PowerShell API'lerini kullanarak kendi cmdlet'lerinizi oluşturabilirsiniz. Cmdlet'ler, geleneksel kabuk komutlarından şu şekillerde farklıdır:
- Cmdlet'ler şunlardır: . NET Framework Sınıf nesneleri; bağımsız yürütülebilir dosyalar olarak çalıştırılamazlar.
- Cmdlet'ler yalnızca bir düzine satır kodla yazılabilir.
- Ayrıştırma, çıktı biçimlendirme ve hata gösterimi, cmdlet'in kendisi tarafından değil, çalışma zamanı tarafından gerçekleştirilir.
- Cmdlet'ler nesnelerle çalışır, bu nedenle hem metin akışları hem de nesneler işlem hatlarından geçebilir.
- Cmdlet'ler kayıt tabanlıdır ve aynı anda tek bir nesneyi işler.
PowerShell işlevlerinin çoğu, her zaman fiil-isim adlandırma kalıbını (her zaman tekil) kullanan cmdlet'ler aracılığıyla sağlanır. Cmdlet'ler metin değil, nesne döndürür. senaryo — bir cmdlet'ten farklı olarak — bir metin dosyasında saklanan bir dizi komuttur. .ps1 eklenti.
PowerShell öğrenirken kullanacağınız yaygın fiiller şunlardır:
- Ön Onay — bir şeyi geri getirmek.
- Ana Sayfa — bir şey çalıştırmak.
- Dışarı — bir çıktı üretin.
- dur — çalışan bir şeyi durdurmak.
- set — bir şeyi tanımlayın.
- Yeni — bir şey yaratın.
Önemli PowerShell komutları
Yardım almak: PowerShell komutları ve konuları için yardım görüntüleyebilirsiniz.
Örnek: yardım görüntüleme Format-Table Komut.
Get-Help Format-Table
Komut Al: Çağrılabilecek her şey hakkında bilgi edinin.
Örnek: Makinede yüklü olan cmdlet'lerin ve fonksiyonların bir listesini oluşturun.
Get-Command
Hizmet Alma: Makinedeki tüm hizmetleri bulur.
Örnek: Adı "vm" ile başlayan tüm servisleri alın.
Get-Service "vm*"
Üye Al: Bir nesneyle neler yapılabileceğini gösterin.
Örnek: Get-Service komutuyla döndürülen sanal makine servislerinin üyelerini listelemek.
Get-Service "vm*" | Get-Member
Diğer faydalı cmdlet'ler:
Get-Module— Yüklü komut paketlerini göster.Get-Content— Bir dosyayı okuyun ve içeriğini işleyin.Get-*joker karakter — “Get-” ile başlayan tüm cmdlet'leri listeler.
Örnek: bir klasör oluşturun.
New-Item -Path 'X:\Guru99' -ItemType Directory
Çıktı:
PowerShell Veri Tipleri
PowerShell, standart .NET veri türlerini desteklediği için herhangi bir değeri bir değişkende sorunsuz bir şekilde saklayabilirsiniz.
Özel Değişkenler
PowerShell, bir dizi yerleşik özel değişken sunar. En kullanışlı olanları aşağıda listelenmiştir.
| Özel Değişken | Açıklama |
|---|---|
| $Hata | En son oluşan hataları temsil eden hata nesnelerinden oluşan bir dizi. |
| $Ana Bilgisayar | Mevcut barındırma uygulamasının adını görüntüler. |
| $Profil | Varsayılan kabuk için kullanıcı profilinin tam yolunu saklar. |
| $PID | İşlem tanımlayıcısını saklar. |
| $PSUICulture | Mevcut kullanıcı arayüzü kültürünün adını taşır. |
| $BOŞ | Boş veya geçersiz değer içerir. |
| $Yanlış | Mantıksal FALSE değerini içerir. |
| $Doğru | TRUE mantıksal değerini içerir. |
PowerShell Komut Dosyaları
PowerShell komut dosyaları şurada saklanır: .ps1 Dosyalar. Varsayılan olarak, bir komut dosyasını çift tıklayarak çalıştıramazsınız; bu güvenlik önlemi sistemi kazara zararlardan korur. Bir komut dosyasını çalıştırmak için, üzerine sağ tıklayın ve seçin. “PowerShell ile çalıştırın”.
Yürütme politikası, hangi komut dosyalarının çalıştırılmasına izin verildiğini kontrol eder. Geçerli politikayı şu şekilde görüntüleyebilirsiniz: Get-ExecutionPolicyOlası değerler şunlardır:
- Kısıtlı — Komut dosyalarına izin verilmiyor. Bu varsayılan ayardır.
- Tüm İmzalar — Yalnızca güvenilir bir geliştirici tarafından imzalanmış komut dosyaları çalıştırılır ve her biri onay gerektirir.
- Uzaktan İmzalı — Kendi yazdığınız komut dosyaları ve güvenilir kaynaklardan imzalı komut dosyaları çalıştırılır.
- kısıtlanmamış — Herhangi bir komut dosyası çalıştırılabilir (dikkatli kullanın).
Yürütme politikasını değiştirme adımları:
) 1 Adım PowerShell'e sağ tıklayıp "Yükseltilmiş" seçeneğini belirleyerek PowerShell komut istemini açın. Yönetici olarak çalıştır.
) 2 Adım Aşağıdaki komutları çalıştırın.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- Keşfet
YOnay isteminde. Get-ExecutionPolicy
İlk PowerShell Komut Dosyası
Not Defteri'ni açın ve şunu yazın:
Write-Host "Hello, Guru99!"
Dosyayı bir ile kaydedin .ps1 uzantı — örneğin, FirstScript.ps1.
PowerShell'de betiği şu şekilde çalıştırın:
& "X:\FirstScript.ps1"
PowerShell ISE nedir?
MKS Windows PowerShell Entegre Komut Dosyası Ortamı (ISE) ISE, PowerShell için varsayılan düzenleyicidir. ISE'de, grafiksel, pencere tabanlı bir ortamda komutları çalıştırabilir, testler yazabilir ve betiklerde hata ayıklayabilirsiniz. Çok satırlı düzenleme, sözdizimi renklendirme, sekme tamamlama, seçici yürütme ve daha fazlasını destekler.
PowerShell ISE ayrıca komutları doğrudan çalıştıran bir konsol bölmesi sunarken, yan bölmeler komut dosyalarınızın kaynağını ve ISE'ye bağlı tüm araçları görüntüler. Birden fazla komut dosyası penceresini aynı anda açabilirsiniz; bu, diğer komut dosyalarında veya modüllerde tanımlanan işlevlere bağlı komut dosyalarında hata ayıklama yaparken kullanışlıdır.
Önceki betiği ISE'de yeniden oluşturun:
- Kodu düzenleyiciye yapıştırın.
- Komut dosyasını kaydedin.
- Çalıştırmak için F5 tuşuna basın.
- Konsol bölmesindeki çıktıyı inceleyin.
Örnek 2: Aşağıdaki komut dosyası ücretsiz olarak görüntülenir. sanal bellek makinede.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell Concepts
Aşağıdaki kavramlar, günlük PowerShell çalışmalarının temelini oluşturmaktadır.
| Konsept | Açıklama |
|---|---|
| cmdlet'ler | .NET dillerinde (VB veya C# gibi) yazılmış yerleşik komutlar. Geliştiriciler, PowerShell eklentilerini yükleyerek veya yazarak bu kümesini genişletirler. |
| fonksiyonlar | IDE gibi bir şeye ihtiyaç duymadan, doğrudan PowerShell dilinde yazılmış komutlar. Visual Studio. |
| Scripts | Disk üzerindeki metin dosyaları .ps1 eklenti. |
| Başvurular | Mevcut Windows Kabuktan çağrılan programlar. |
| Farzedelim | Komuta komutuna çalıştırılmaması, ancak çalıştırılması durumunda ne olacağının açıklanması talimatını verir. |
| Onaylamak | Komutu çalıştırmadan önce onay istemesini sağlar. |
| gereksiz sözlerle dolu | Daha yüksek düzeyde operasyonel detay sağlar. |
| Debug | Komuta, hata ayıklama bilgileri yaymasını emreder. |
| HataAksiyonu | Hata durumunda cmdlet'in ne yapacağını tanımlar. İzin verilen değerler: continue, stop, silentlycontinue, inquire. |
| HataDeğişkeni | Hata bilgilerini tutan değişkenin adını belirtir. |
| OutVariable | Komuta komutuna çıktısını belirli bir değişkene kaydetmesini söyler. |
| DışarıBuffer | İşlem hattına gönderilmeden önce belirli sayıda nesneyi tutar. |
PowerShell Komut Dosyalarının Kullanımının Avantajları
- PowerShell betikleri güçlü ve özlüdür; sadece birkaç satırda çok şey başarabilirsiniz.
- Değişkenler şu şekilde tanımlanır:
$<variable>sözdizimi. - Değişkenler komut çıktısını, nesneleri ve temel veri tiplerini tutabilir.
- Değişken türünün açıkça belirtilmesine gerek yoktur.
PowerShell ve Komut İstemi Karşılaştırması
| PowerShell | komut İstemi |
|---|---|
| Derinden entegre WindowsEtkileşimli bir komut satırı ve tam teşekküllü bir betik dili sunar. | Varsayılan komut satırı arayüzü tarafından sağlanmaktadır. MicrosoftDiğer Win32 nesneleriyle iletişim kuran basit bir Win32 uygulaması. |
| Etkileşimli olarak veya otomasyon komut dosyaları aracılığıyla çağrılabilecek cmdlet'ler kullanır. | Hiçbir komut satırı aracı yok. |
| Çıktıyı nesne olarak ele alır, böylece işlem hattı aracılığıyla başka bir cmdlet'e aktarılabilir. | Çıktı, nesneler değil, düz bir metin akışıdır. |
| Özellikler, yetenekler ve iç mimari açısından gelişmiş. | Eski nesil toplu işlem görevleri için uygun, temel bir kabuk. |
PowerShell Uygulamaları
PowerShell, büyük kurumsal ağlarda iş yükünü önemli ölçüde azalttığı için BT yöneticileri için standart bir tercih haline geldi. Dört yüzden fazla sunucuyu yönettiğinizi ve her sunucuda çalışan belirli bir hizmete bağlı yeni bir güvenlik çözümünü devreye aldığınızı düşünün.
Her sunucuya manuel olarak giriş yapmak yavaş ve hataya açık bir işlemdir. Tek bir PowerShell betiği, dakikalar içinde her sunucuyu tarayabilir, hangi sunucuların hizmeti zaten çalıştırdığını raporlayabilir ve hatta geri kalanında da etkinleştirebilir. Betik, amacı bir kez yakalar ve güvenilir bir şekilde tüm sisteme uygular.
















