Neler yeni

Yazılım Forum

Tüm özelliklerimize erişmek için şimdi bize katılın. Kayıt olduktan ve giriş yaptıktan sonra konu oluşturabilecek, mevcut konulara yanıt gönderebilecek, itibar kazanabilecek, özel mesajlaşmaya erişebilecek ve çok daha fazlasını yapabileceksiniz! Bu hizmetlerimiz ise tamamen ücretsiz ve kurallara uyulduğu sürece sınırsızdır, o zaman ne bekliyorsunuz? Hadi, sizde aramıza katılın!

PowerShell Komutlarına Kapsamlı ve Hızlı Bir Başlangıç Rehberi

PowerShell Komutlarına Kapsamlı ve Hızlı Bir Başlangıç Rehberi

Microsoft PowerShell, sistem yöneticileri, geliştiriciler ve otomasyon meraklıları için vazgeçilmez bir araçtır. Geleneksel komut satırı arayüzlerinin ötesine geçerek, .NET Framework'ün gücünü ve nesne tabanlı yapıyı kullanarak Windows ve diğer platformlardaki görevleri otomatikleştirmenizi, sistemleri yönetmenizi ve verileri işlemenizi sağlar. Bu rehber, PowerShell'e hızlı bir giriş yapmanızı ve temel komutlarını öğrenmenizi amaçlamaktadır.

PowerShell Nedir ve Neden Önemlidir?

PowerShell, bir komut satırı kabuğu ve betik dilidir. Klasik komut isteminden (CMD) farklı olarak, PowerShell komutları çıktı olarak metin yerine .NET nesneleri döndürür. Bu, komut çıktılarının diğer komutlara kolayca aktarılmasını (pipe edilmesi) ve daha karmaşık işlemlerin çok daha verimli bir şekilde yapılmasını sağlar. Örneğin, bir hizmetin özelliklerini almak için `Get-Service` komutunu kullandığınızda, çıktı bir servis nesnesidir ve bu nesnenin özelliklerine doğrudan erişebilir, filtreleyebilir veya başka komutlara gönderebilirsiniz. Bu nesne tabanlı yaklaşım, PowerShell'i son derece güçlü ve esnek kılar.

Temel Komut Yapısı: Verb-Noun (Fiil-İsim)

PowerShell komutları, 'cmdlet' olarak adlandırılır ve standart bir Verb-Noun (Fiil-İsim) yapısına sahiptir. Bu tutarlı yapı, yeni komutları tahmin etmeyi ve öğrenmeyi kolaylaştırır. Örneğin:
* `Get-Process`: Çalışan işlemleri 'al' (Get). (Fiil: Get, İsim: Process)
* `Set-Service`: Bir hizmeti 'ayarla' (Set). (Fiil: Set, İsim: Service)
* `Stop-Computer`: Bir bilgisayarı 'durdur' (Stop). (Fiil: Stop, İsim: Computer)

Bu yapı, komutların ne iş yaptığını ve ne üzerinde çalıştığını açıkça belirtir. Tüm standart cmdlet'ler bu kurala uyar.

Yardım Almak: Get-Help

Herhangi bir cmdlet hakkında bilgi edinmek için `Get-Help` komutunu kullanabilirsiniz. Bu, PowerShell öğrenimindeki en önemli komutlardan biridir.

Kod:
Get-Help Get-Service

Bu komut, `Get-Service` cmdlet'inin nasıl kullanılacağı, hangi parametreleri aldığı ve örnekleri hakkında detaylı bilgi verir. Daha fazla detay için:

Kod:
Get-Help Get-Service -Full
Get-Help Get-Service -Examples

Ortak Parametreler

Çoğu cmdlet, işlevselliklerini artıran bir dizi ortak parametreyi destekler. Bunlar arasında `Confirm`, `WhatIf`, `Verbose`, `Debug`, `ErrorAction` ve `OutVariable` bulunur. Örneğin, bir komutun ne yapacağını gerçekten çalıştırmadan önce görmek için `WhatIf` parametresini kullanabilirsiniz:

Kod:
Stop-Service -Name Spooler -WhatIf

Bu komut, 'Spooler' hizmetini durdurur gibi yapar ama aslında durdurmaz, sadece ne olacağını size bildirir.

Sık Kullanılan Temel Komutlar ve Örnekler

Şimdi, günlük PowerShell kullanımında karşılaşacağınız bazı temel komutlara göz atalım.

1. Get-Command

Sisteminizdeki tüm veya belirli komutları listeler.

Kod:
Get-Command
Get-Command -Verb Get
Get-Command -Noun Service
Get-Command *Process*

2. Get-Service ve Set-Service

Windows hizmetlerini yönetmek için kullanılır. Çalışan hizmetleri listeleme, durdurma, başlatma gibi işlemler yapabilirsiniz.

Kod:
Get-Service
Get-Service -Name WSearch
Get-Service | Where-Object Status -eq 'Running'
Stop-Service -Name 'Spooler' -Confirm
Start-Service -Name 'Spooler'

3. Get-Process ve Stop-Process

Çalışan işlemleri görüntüleme ve sonlandırma.

Kod:
Get-Process
Get-Process -Name chrome
Get-Process | Where-Object {$_.CPU -gt 100} | Sort-Object CPU -Descending
Stop-Process -Name 'notepad'

4. Get-Item ve Get-ChildItem

Dosya sistemi üzerinde gezinmek ve öğeleri listelemek için kullanılır (`ls`, `dir` komutlarına benzer). `Get-Item` belirli bir öğeyi (dosya veya klasör) alırken, `Get-ChildItem` bir klasörün içindeki öğeleri listeler.

Kod:
Get-Item C:\Windows\System32\calc.exe
Get-ChildItem C:\Users\YourUser\Documents
Get-ChildItem -Path C:\Temp -Recurse -File -Include *.log

5. Select-Object, Where-Object, Sort-Object

Bu cmdlet'ler, komut çıktısını işlemek, filtrelemek ve sıralamak için vazgeçilmezdir.

* Select-Object: Nesnelerden belirli özelliklerini seçer.
Kod:
Get-Process | Select-Object Name, Id, CPU

* Where-Object: Belirli kriterlere uyan nesneleri filtreler.
Kod:
Get-Service | Where-Object Status -eq 'Stopped'
Get-Process | Where-Object {$_.WorkingSet -gt 1GB}

* Sort-Object: Nesneleri bir veya birden fazla özelliğe göre sıralar.
Kod:
Get-Process | Sort-Object WorkingSet -Descending
Get-EventLog -LogName System -Newest 100 | Sort-Object TimeGenerated

Piping (Boru Hattı): Komutları Zincirleme

PowerShell'in gücünün büyük bir kısmı piping yeteneğinden gelir. Bir komutun çıktısını (`|` sembolü ile) diğer bir komutun girdisi olarak kullanabilirsiniz. Bu sayede karmaşık görevleri basit, zincirleme komutlarla gerçekleştirebilirsiniz.

Örnek:
Kod:
Get-Service | Where-Object Status -eq 'Running' | Select-Object Name, DisplayName

Bu komut, çalışan tüm hizmetleri alır, ardından sadece 'Running' durumundaki hizmetleri filtreler ve son olarak bu hizmetlerin sadece 'Name' ve 'DisplayName' özelliklerini gösterir.

Başka bir örnek, belirli bir kullanıcının tüm süreçlerini durdurmak olabilir:
Kod:
Get-Process -IncludeUsername | Where-Object UserName -eq 'YourUser' | Stop-Process -WhatIf

Değişkenler ve Temel Scripting

PowerShell'de değişkenler `$ön_ek` ile tanımlanır. Bunlar, bilgiyi depolamak ve betiklerinizde yeniden kullanmak için kullanışlıdır.

Kod:
$hizmetler = Get-Service
$hizmetler | Where-Object Status -eq 'Running'

$path = 'C:\Temp'
Get-ChildItem $path -File

Basit bir betik örneği:
Kod:
Write-Host 'Merhaba, PowerShell!'
$currentDate = Get-Date
Write-Host 'Şu anki tarih ve saat: ' $currentDate

Döngüler ve Koşullu İfadeler

For, ForEach, While döngüleri ve If/Else koşullu ifadeler, daha karmaşık betikler yazmanıza olanak tanır.

Kod:
foreach ($service in (Get-Service | Where-Object Status -eq 'Stopped')) {
    Write-Host "Stopped Service: $($service.Name)"
}

$number = 10
if ($number -gt 5) {
    Write-Host 'Sayı 5ten büyük.'
} else {
    Write-Host 'Sayı 5 veya 5ten küçük.'
}

"Otomasyon, günümüzün hızla değişen IT ortamında verimliliğin anahtarıdır ve PowerShell bu kapıyı açan en güçlü araçlardan biridir."

Modüller ve Genişletilebilirlik

PowerShell'in gücünü artıran önemli bir özellik de modül desteğidir. Modüller, cmdlet'ler, fonksiyonlar, değişkenler ve diğer öğelerden oluşan paketlerdir. Örneğin, Windows Server yönetimi için `ActiveDirectory` veya `Hyper-V` modülleri gibi birçok modül mevcuttur. Modülleri `Import-Module` ile yükleyebilir, `Get-Module` ile mevcut modülleri görebilirsiniz.

Kod:
Get-Module -ListAvailable
Import-Module ActiveDirectory

PowerShell Entegrasyon Ortamları

PowerShell betikleri yazmak ve çalıştırmak için genellikle iki ana ortam kullanılır:


  • [li]PowerShell ISE (Integrated Scripting Environment): Özellikle Windows için tasarlanmış, temel bir IDE. Betik yazma, çalıştırma ve hata ayıklama özellikleri sunar.[/li]
    [li]Visual Studio Code (VS Code) + PowerShell Eklentisi: Platformlar arası destek sunan, çok daha modern ve güçlü bir kod düzenleyici. Zengin hata ayıklama, IntelliSense ve sürüm kontrol entegrasyonu gibi gelişmiş özelliklere sahiptir. Profesyonel PowerShell geliştirme için önerilen ortamdır.[/li]

PowerShell İpuçları ve En İyi Uygulamalar


  • [li]Belgeleme: Betiklerinizi ve fonksiyonlarınızı her zaman yorumlarla ve yardım bloklarıyla belgeleyin. `Get-Help` ile çalışabilen, okunaklı belgeler oluşturun.[/li]
    [li]Hata Yönetimi: Betiklerinizde `try-catch-finally` bloklarını kullanarak hataları düzgün bir şekilde yönetin. `ErrorAction` ortak parametresini kullanmayı unutmayın.[/li]
    [li]Güvenlik: Betik yürütme ilkesini (Execution Policy) dikkatlice yapılandırın (`Set-ExecutionPolicy`). Uzaktan betik çalıştırırken dikkatli olun ve güvenilir kaynaklardan gelen betikleri kullanın.[/li]
    [li]Modülerlik: Karmaşık betikleri küçük, yeniden kullanılabilir fonksiyonlara veya modüllere ayırın. Bu, bakımı kolaylaştırır ve kodun anlaşılırlığını artırır.[/li]
    [li]Kaynak Kontrolü: Betiklerinizi Git gibi bir sürüm kontrol sisteminde yönetin. Bu, değişiklikleri izlemenize, geri almanıza ve ekip içinde işbirliği yapmanıza olanak tanır.[/li]

Daha Fazla Bilgi ve Kaynaklar

PowerShell dünyası oldukça geniştir ve bu rehber sadece buzdağının görünen kısmıdır. Öğrenmeye devam etmek için resmi Microsoft belgelerini ve topluluk kaynaklarını takip etmenizi şiddetle tavsiye ederiz.

Microsoft Learn - PowerShell Belgeleri

Sonuç

PowerShell, modern IT dünyasında otomasyon ve yönetim için güçlü, esnek ve öğrenmeye değer bir dildir. Temel komutları ve nesne tabanlı yapıyı anladığınızda, sistem yönetimi görevlerinizi büyük ölçüde basitleştirebilir ve verimliliğinizi artırabilirsiniz. Pratik yaparak ve farklı senaryolar üzerinde çalışarak becerilerinizi geliştirmeye devam edin. Unutmayın, pratik yapmak, PowerShell ustalığının anahtarıdır!

Bu rehberin PowerShell'e hızlı ve sağlam bir başlangıç yapmanıza yardımcı olmasını umuyoruz.
 
shape1
shape2
shape3
shape4
shape5
shape6
Üst

Bu web sitenin performansı Hazal Host tarafından sağlanmaktadır.

YazilimForum.com.tr internet sitesi, 5651 sayılı Kanun’un 2. maddesinin 1. fıkrasının (m) bendi ve aynı Kanun’un 5. maddesi kapsamında Yer Sağlayıcı konumundadır. Sitede yer alan içerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır.

YazilimForum.com.tr, kullanıcılar tarafından paylaşılan içeriklerin doğruluğunu, güncelliğini veya hukuka uygunluğunu garanti etmez ve içeriklerin kontrolü veya araştırılması ile yükümlü değildir. Kullanıcılar, paylaştıkları içeriklerden tamamen kendileri sorumludur.

Hukuka aykırı içerikleri fark ettiğinizde lütfen bize bildirin: lydexcoding@gmail.com

Sitemiz, kullanıcıların paylaştığı içerik ve bilgileri 6698 sayılı KVKK kapsamında işlemektedir. Kullanıcılar, kişisel verileriyle ilgili haklarını KVKK Politikası sayfasından inceleyebilir.

Sitede yer alan reklamlar veya üçüncü taraf bağlantılar için YazilimForum.com.tr herhangi bir sorumluluk kabul etmez.

Sitemizi kullanarak Forum Kuralları’nı kabul etmiş sayılırsınız.

DMCA.com Protection Status Copyrighted.com Registered & Protected