# PowerShell

Adres: https://softwaredictionary.org/tr/terimler/powershell
Kategori: Programlama Dilleri
Son güncelleme: 2026-10-03
Okunuşu: pavır şel

Kısaca: PowerShell, Microsoft'un yönetimi otomatikleştirmeye yönelik komut satırı kabuğu ve betik dilidir; komutlar arasında düz metin yerine nesneler aktarır.

## PowerShell nedir?

Windows PowerShell 1.0, eski Windows komut isteminin modern bir alternatifi olarak 2006'da yayımlandı. Microsoft 2016'da onu açık kaynaklı ve platformlar arası yaptı; bugünkü çizgi olan PowerShell 7 Windows, macOS ve Linux'ta çalışır ve `pwsh` komutuyla başlatılır.

Cmdlet adı verilen komutları, tahmin etmeyi kolaylaştıran bir Fiil-İsim (Verb-Noun) kalıbını izler: `Get-Process`, `Stop-Service`, `New-Item`. Unix kabuklarından büyük farkı nesne pipeline'ıdır. `Get-Process | Where-Object CPU -gt 100 | Sort-Object CPU` bir komuttan diğerine özellikleri olan .NET nesneleri aktarır; bu yüzden metni `awk` gibi araçlarla ayrıştırmaya gerek kalmaz.

PowerShell, Windows sunucularını, Active Directory'yi, Microsoft 365'i, Exchange'i ve Azure'u otomatikleştirmenin standart yoludur ve birçok sistem yöneticisi onu her gün kullanır. Betikler `.ps1` dosyaları olarak kaydedilir, modüller PowerShell Gallery üzerinden paylaşılır ve herhangi bir .NET kütüphanesini doğrudan çağırabilir.

Sık yapılan bir yanlış, PowerShell'in yalnızca Windows için olduğunu düşünmektir. PowerShell 7 Linux ve macOS'ta da çalışır, ama Windows'a özel bazı modüller çalışmaz. Windows'taki varsayılan yürütme ilkesi (execution policy) imzasız betikleri engelleyebilir; bu yeni başlayanları şaşırtır, ama bu bir güvenlik ayarıdır, betiklerin bozuk olduğunu göstermez.

## Önemli noktalar

- PowerShell, ilk olarak 2006'da yayımlanan Microsoft'un kabuğu ve betik dilidir.
- PowerShell 7 açık kaynaktır ve Windows, macOS ve Linux'ta çalışır.
- Cmdlet'ler Get-Process gibi Fiil-İsim adları kullanır.
- Pipeline, komutlar arasında metin değil .NET nesneleri aktarır.
- Windows, Microsoft 365 ve Azure'u otomatikleştirmenin standart aracıdır.

## Örnek: Pipeline'da nesnelerle çalışmak

```powershell
# The five processes using the most memory, as objects with properties
Get-Process |
  Sort-Object WorkingSet64 -Descending |
  Select-Object -First 5 Name, Id, @{ Name = 'MemoryMB'; Expression = { [math]::Round($_.WorkingSet64 / 1MB) } }

# Find large log files and export the list to CSV
Get-ChildItem -Path C:\Logs -Filter *.log -Recurse |
  Where-Object Length -gt 50MB |
  Export-Csv -Path big-logs.csv -NoTypeInformation
```

## Sık sorulan sorular

**PowerShell ile Bash arasındaki fark nedir?**

Bash komutlar arasında düz metin aktarır, PowerShell ise yapılandırılmış nesneler. Bash Linux ve macOS'ta standarttır; PowerShell Windows'ta standarttır ve başka sistemlerde de çalışır.

**Windows PowerShell ile PowerShell 7 arasındaki fark nedir?**

Windows PowerShell 5.1 Windows ile gelir ve .NET Framework üzerine kuruludur. PowerShell 7 ise modern .NET üzerine kurulu, daha yeni, açık kaynaklı ve platformlar arası sürümdür; yeni özellikler ona eklenir.

**Cmdlet nedir?**

Get-ChildItem ya da Set-Location gibi Fiil-İsim biçiminde adlandırılmış yerleşik bir PowerShell komutudur. Cmdlet'ler parametre alır ve bir sonraki komutun kullanabileceği nesneler üretir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
