Merhaba THS alilesi PowerShell, Windows işletim sistemlerinde sistem yönetimini kolaylaştırmak ve otomatikleştirmek için geliştirilmiş güçlü bir komut satırı aracıdır. Bu makalede THS ailesinde bir çok Windows işletim sistemini kullandığını göz önüde bulundurarak bu mükemmel script yazma aracının faydalarından ve işlerinizi nasıl kolaylaştırabileceğinden bahsetmek istedik.
Geleneksel komut istemcilerinden farklı olarak, PowerShell bir kabuk (shell) ve aynı zamanda tam teşekküllü bir programlama dili olarak çalışır. Sistem yöneticileri ve BT profesyonelleri için rutin işleri otomatikleştirmek, büyük ölçekli yapılandırmaları yönetmek ve sistem performansını izlemek için vazgeçilmez bir araçtır.
Bu makalede PowerShell’in sistem yönetimindeki rolünü, temel ve ileri düzey komutları, otomasyon stratejilerini ve pek çok kişinin bilmediği püf noktalarıyla ele alacağız. İlk önce bilgisayarınızdaki arama çobuğuna powershell yazarak uygula penceresini çağırabilirsiniz.
PowerShell’de tüm işlemler cmdlet adı verilen küçük komutlar aracılığıyla yapılır. Cmdlet’ler tek bir iş yapacak şekilde tasarlanmıştır ve genellikle Fiil-Ad formatındadır (örn. Get-Process, Set-Date).
Ne işe yarıyor?
Cmdlet’ler sistem bilgisi çekme, ayar değiştirme veya görev otomasyonu için kullanılır. Örneğin, Get-Process ile çalışan tüm süreçleri listeleyebilirsiniz.
Örnek:
Get-Process
Bu komut bilgisayarınızda çalışan tüm işlemleri listeler.
Ne işe yarıyor?
Nesneler sayesinde veri işleme, filtreleme ve başka cmdlet’lerle zincirleme işlemler kolaylaşır.
Örnek:
Get-Process | Where-Object {$_.CPU -gt 100}
Bu komut CPU kullanımı 100’den fazla olan süreçleri filtreler.
Ne işe yarıyor?
Her oturum açıldığında belirli ayarları veya fonksiyonları otomatik olarak yükleyebilirsiniz.
Püf Noktası:
Profilinize sık kullanılan alias’ları ekleyerek zaman kazanabilirsiniz:
Set-Alias ll Get-ChildItem
Artık ll yazarak dosya ve klasörleri listeleyebilirsiniz.
Örnekler ve Kullanımı:
Get-ComputerInfo | Select-Object CsName, OsName, OsVersion, CsProcessors, CsTotalPhysicalMemory
Get-Service
Stop-Service -Name "Spooler"
Start-Service -Name "Spooler"
Ne işe yarıyor?
Sistem durumunu izlemenizi, sorunları tespit etmenizi ve gerekli ayarlamaları yapmanızı sağlar.
Örnekler:
Get-PSDrive -PSProvider FileSystem
Get-ChildItem -Path C:\ -Recurse | Where-Object {$_.Length -gt 1GB}
Ne işe yarıyor?
Depolama sorunlarını önceden tespit etmek ve gereksiz dosyaları temizlemek için kullanılır.
Püf Noktası:
Örnek:
Get-ADUser -Filter * | Select-Object Name, Enabled, LastLogonDate
Ne işe yarıyor?
Tüm kullanıcıların durumunu hızlıca görebilir, aktif olmayan hesapları tespit edebilirsiniz.
Püf Noktası:
Örnek:
$action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-File C:\Scripts\Backup.ps1'
$trigger = New-ScheduledTaskTrigger -Daily -At 3am
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "DailyBackup"
Ne işe yarıyor?
Belirli zamanlarda yedekleme veya bakım script’lerini otomatik çalıştırabilirsiniz.
Örnek:
Get-EventLog -LogName System -Newest 50
Ne işe yarıyor?
Sistem hatalarını ve uyarılarını hızlıca tespit ederek, sorun giderme süresini kısaltır.
Püf Noktası:
Get-EventLog -LogName System -Newest 100 | Where-Object {$_.EntryType -eq "Error"}
Örnek:
Import-Module ActiveDirectory
Ne işe yarıyor?
AD yönetimi ve diğer modüllerin fonksiyonlarını script içerisinde kullanmanızı sağlar.
Örnek:
Get-Service | Export-Csv -Path "C:\Reports\Services.csv" -NoTypeInformation
Ne işe yarıyor?
BT yöneticileri için otomatik ve düzenli rapor üretir, yönetim kararlarını hızlandırır.
try {
Stop-Service -Name "NonExistentService"
} catch {
Write-Host "Servis bulunamadı."
}
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-Process}
Bilgisayarınızda en fazla CPU kullanan 5 uygulamayı hızlıca görmenizi sağlar.
Günlük fayda: Hangi uygulamanın bilgisayarı yavaşlattığını hemen tespit edebilirsiniz.
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
Sistem hatalarını hızlıca gösterir, en son 10 hatayı listeler.
Günlük fayda: Bilgisayarınızda oluşan kritik hataları kısa sürede görebilir, sorunu tanımlayabilirsiniz.
Bilgisayarın adı, işletim sistemi, sürümü ve mimarisi hakkında hızlı bilgi verir.
Günlük fayda: Bilgisayarınızın teknik detaylarını anında öğrenebilirsiniz, örn. teknik destek veya yazılım kurulumu için gerekli bilgiler.
Son 30 gündür değişmemiş tüm dosyaları listeler.
Günlük fayda: Eski ve kullanılmayan dosyaları temizleyip depolama alanı açabilirsiniz.
Bilgisayarınızdaki sürücüleri ve boş alan durumlarını gösterir.
Günlük fayda: Disk alanı kontrolünü hızlıca yapabilirsiniz.
Belirli bir klasördeki dosyaların toplam boyutunu hesaplar.
Günlük fayda: Hangi klasörün çok yer kapladığını görebilirsiniz.
Get-ChildItem C:\Users\%USERNAME%\Documents -Recurse | Measure-Object -Property Length -Sum
Bilgisayarınızın internete veya belirli bir siteye bağlanıp bağlanamadığını test eder.
Günlük fayda: İnternet sorunlarını hızlıca kontrol edebilirsiniz.
Bilgisayarınızın IP adresi, ağ geçidi ve DNS bilgilerini gösterir.
Günlük fayda: Ağ sorunlarını tanımlamak veya IP bilgisi almak için kullanışlıdır.
Bir web sitesinin IP adresini hızlıca öğrenirsiniz.
Günlük fayda: DNS sorunlarını tespit etmenizi sağlar.
Başlat menüsündeki tüm uygulamaları listeler.
Günlük fayda: Kurulu uygulamaları hızlıca görebilir, özellikle hangi uygulamanın kurulu olduğunu unutmuşsanız faydalıdır.
PowerShell’de daha önce çalıştırdığınız komutları listeler.
Günlük fayda: Sık kullanılan komutları tekrar hatırlayıp hızla çalıştırabilirsiniz.
Geri dönüşüm kutusunu temizler.
Günlük fayda: Tek bir komutla tüm silinen dosyaları kalıcı olarak kaldırabilirsiniz.
Clear-RecycleBin -Force
Copy-Item -Path C:\Users\%USERNAME%\Documents -Destination D:\Backup -Recurse
Ne işe yarıyor?
Belgelerinizi hızlıca yedekler.
Günlük fayda: Manuel kopyalama ile uğraşmadan yedekleme yapılır.
Get-WindowsUpdateLog
Ne işe yarıyor?
Windows güncellemeleriyle ilgili logları görüntüler.
Günlük fayda: Güncelleme hatalarını ve geçmişini hızlıca görebilirsiniz.
Add-Content -Path C:\Users\%USERNAME%\Documents\Notes.txt -Value "Bugün yapılacaklar listesi"
Ne işe yarıyor?
Hızlıca metin dosyasına not ekler.
Günlük fayda: Not defteri açmadan kısa komutla günlük not tutabilirsiniz.
Geleneksel komut istemcilerinden farklı olarak, PowerShell bir kabuk (shell) ve aynı zamanda tam teşekküllü bir programlama dili olarak çalışır. Sistem yöneticileri ve BT profesyonelleri için rutin işleri otomatikleştirmek, büyük ölçekli yapılandırmaları yönetmek ve sistem performansını izlemek için vazgeçilmez bir araçtır.
Bu makalede PowerShell’in sistem yönetimindeki rolünü, temel ve ileri düzey komutları, otomasyon stratejilerini ve pek çok kişinin bilmediği püf noktalarıyla ele alacağız. İlk önce bilgisayarınızdaki arama çobuğuna powershell yazarak uygula penceresini çağırabilirsiniz.
1. PowerShell’in Temel Kavramları
A. Cmdlet Nedir?
PowerShell’de tüm işlemler cmdlet adı verilen küçük komutlar aracılığıyla yapılır. Cmdlet’ler tek bir iş yapacak şekilde tasarlanmıştır ve genellikle Fiil-Ad formatındadır (örn. Get-Process, Set-Date).
Ne işe yarıyor?
Cmdlet’ler sistem bilgisi çekme, ayar değiştirme veya görev otomasyonu için kullanılır. Örneğin, Get-Process ile çalışan tüm süreçleri listeleyebilirsiniz.
Örnek:
Get-Process
Bu komut bilgisayarınızda çalışan tüm işlemleri listeler.
B. Nesne Tabanlı Yaklaşım
PowerShell, diğer komut satırı araçlarının aksine metin değil, nesne ile çalışır. Cmdlet’ler çıktıyı nesne olarak döndürür ve bu nesneler üzerinde kolayca işlem yapılabilir.Ne işe yarıyor?
Nesneler sayesinde veri işleme, filtreleme ve başka cmdlet’lerle zincirleme işlemler kolaylaşır.
Örnek:
Get-Process | Where-Object {$_.CPU -gt 100}
Bu komut CPU kullanımı 100’den fazla olan süreçleri filtreler.
C. PowerShell Profilleri
PowerShell profil dosyaları ($PROFILE) sayesinde kullanıcıya özel başlangıç ayarları ve sık kullanılan komutları tanımlayabilirsiniz.Ne işe yarıyor?
Her oturum açıldığında belirli ayarları veya fonksiyonları otomatik olarak yükleyebilirsiniz.
Püf Noktası:
Profilinize sık kullanılan alias’ları ekleyerek zaman kazanabilirsiniz:
Set-Alias ll Get-ChildItem
Artık ll yazarak dosya ve klasörleri listeleyebilirsiniz.
2. Sistem Yönetimi için Temel PowerShell Komutları
A. Sistem Bilgisi Alma
Sistem bilgisi yönetimi için PowerShell, Get-ComputerInfo, Get-EventLog, Get-Service gibi cmdlet’leri sağlar.Örnekler ve Kullanımı:
- CPU ve RAM bilgisi:
Get-ComputerInfo | Select-Object CsName, OsName, OsVersion, CsProcessors, CsTotalPhysicalMemory
- Yüklü servisleri listeleme:
Get-Service
- Belirli bir servisi durdurma veya başlatma:
Stop-Service -Name "Spooler"
Start-Service -Name "Spooler"
Ne işe yarıyor?
Sistem durumunu izlemenizi, sorunları tespit etmenizi ve gerekli ayarlamaları yapmanızı sağlar.
B. Disk ve Dosya Yönetimi
PowerShell ile dosya ve klasör yönetimi, disk kullanımını kontrol etme ve temizleme işlemleri otomatik hale getirilebilir.Örnekler:
- Disk alanını görüntüleme:
Get-PSDrive -PSProvider FileSystem
- Büyük dosyaları bulma:
Get-ChildItem -Path C:\ -Recurse | Where-Object {$_.Length -gt 1GB}
Ne işe yarıyor?
Depolama sorunlarını önceden tespit etmek ve gereksiz dosyaları temizlemek için kullanılır.
Püf Noktası:
- -Recurse parametresi tüm alt klasörlerde arama yapar.
- Measure-Object ile toplam boyut hesaplanabilir.
C. Kullanıcı ve Grup Yönetimi
Active Directory ortamında kullanıcı ve grup yönetimi, PowerShell ile hızlı ve güvenli bir şekilde yapılabilir.Örnek:
Get-ADUser -Filter * | Select-Object Name, Enabled, LastLogonDate
Ne işe yarıyor?
Tüm kullanıcıların durumunu hızlıca görebilir, aktif olmayan hesapları tespit edebilirsiniz.
Püf Noktası:
- New-ADUser ve Set-ADUser cmdlet’leri ile kullanıcı ekleme veya ayar değiştirme işlemleri script ile otomatik yapılabilir.
D. Otomatik Görev Planlama
PowerShell ile görevleri planlamak, tekrar eden işlemleri otomatik hale getirmek mümkündür.Örnek:
$action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-File C:\Scripts\Backup.ps1'
$trigger = New-ScheduledTaskTrigger -Daily -At 3am
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "DailyBackup"
Ne işe yarıyor?
Belirli zamanlarda yedekleme veya bakım script’lerini otomatik çalıştırabilirsiniz.
E. Log ve Event Yönetimi
Sistem olaylarını izlemek ve analiz etmek PowerShell ile kolaydır.Örnek:
Get-EventLog -LogName System -Newest 50
Ne işe yarıyor?
Sistem hatalarını ve uyarılarını hızlıca tespit ederek, sorun giderme süresini kısaltır.
Püf Noktası:
- Where-Object ile sadece kritik olayları filtreleyebilirsiniz.
Get-EventLog -LogName System -Newest 100 | Where-Object {$_.EntryType -eq "Error"}
3. İleri Düzey Otomasyon ve Script Yazımı
A. Script Modülleri Kullanımı
PowerShell modülleri, fonksiyonları ve cmdlet’leri paketler hâlinde sunar. Bu sayede aynı script’i farklı makinelerde tekrar kullanabilirsiniz.Örnek:
Import-Module ActiveDirectory
Ne işe yarıyor?
AD yönetimi ve diğer modüllerin fonksiyonlarını script içerisinde kullanmanızı sağlar.
B. Otomatik Raporlama
Sistem durumu, kullanıcı etkinlikleri veya disk kullanımı gibi verileri otomatik raporlamak mümkündür. CSV, HTML veya JSON formatında çıktı alabilirsiniz.Örnek:
Get-Service | Export-Csv -Path "C:\Reports\Services.csv" -NoTypeInformation
Ne işe yarıyor?
BT yöneticileri için otomatik ve düzenli rapor üretir, yönetim kararlarını hızlandırır.
C. Püf Noktalar ve İleri Düzey Öneriler
- Nesne zincirleme (Pipeline): Cmdlet’leri | ile bağlayarak karmaşık işlemleri tek satırda çözebilirsiniz.
- Alias kullanımı: Uzun komutları kısaltmak için alias tanımlayın.
- Scheduled Tasks ile otomasyon: Rutin bakım ve yedekleme işlemlerini planlayın.
- Error Handling: Try-Catch blokları ile script hatalarını yakalayın ve loglayın.
try {
Stop-Service -Name "NonExistentService"
} catch {
Write-Host "Servis bulunamadı."
}
- PowerShell Remoting: Birden fazla bilgisayarda aynı script’i çalıştırabilirsiniz.
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-Process}
1. Sistem Bilgisi ve Performans İzleme
A. Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
Ne işe yarıyor?Bilgisayarınızda en fazla CPU kullanan 5 uygulamayı hızlıca görmenizi sağlar.
Günlük fayda: Hangi uygulamanın bilgisayarı yavaşlattığını hemen tespit edebilirsiniz.
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
B. Get-EventLog -LogName System -EntryType Error -Newest 10
Ne işe yarıyor?Sistem hatalarını hızlıca gösterir, en son 10 hatayı listeler.
Günlük fayda: Bilgisayarınızda oluşan kritik hataları kısa sürede görebilir, sorunu tanımlayabilirsiniz.
C. Get-ComputerInfo | Select CsName, OsName, OsVersion, OsArchitecture
Ne işe yarıyor?Bilgisayarın adı, işletim sistemi, sürümü ve mimarisi hakkında hızlı bilgi verir.
Günlük fayda: Bilgisayarınızın teknik detaylarını anında öğrenebilirsiniz, örn. teknik destek veya yazılım kurulumu için gerekli bilgiler.
2. Dosya ve Disk Yönetimi
A. Get-ChildItem -Path C:\Users\%USERNAME%\Documents -Recurse | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)}
Ne işe yarıyor?Son 30 gündür değişmemiş tüm dosyaları listeler.
Günlük fayda: Eski ve kullanılmayan dosyaları temizleyip depolama alanı açabilirsiniz.
B. Get-PSDrive -PSProvider FileSystem
Ne işe yarıyor?Bilgisayarınızdaki sürücüleri ve boş alan durumlarını gösterir.
Günlük fayda: Disk alanı kontrolünü hızlıca yapabilirsiniz.
C. Measure-Object
Ne işe yarıyor?Belirli bir klasördeki dosyaların toplam boyutunu hesaplar.
Günlük fayda: Hangi klasörün çok yer kapladığını görebilirsiniz.
Get-ChildItem C:\Users\%USERNAME%\Documents -Recurse | Measure-Object -Property Length -Sum
3. Ağ ve İnternet İşlemleri
A. Test-Connection google.com
Ne işe yarıyor?Bilgisayarınızın internete veya belirli bir siteye bağlanıp bağlanamadığını test eder.
Günlük fayda: İnternet sorunlarını hızlıca kontrol edebilirsiniz.
B. Get-NetIPConfiguration
Ne işe yarıyor?Bilgisayarınızın IP adresi, ağ geçidi ve DNS bilgilerini gösterir.
Günlük fayda: Ağ sorunlarını tanımlamak veya IP bilgisi almak için kullanışlıdır.
C. Resolve-DnsName google.com
Ne işe yarıyor?Bir web sitesinin IP adresini hızlıca öğrenirsiniz.
Günlük fayda: DNS sorunlarını tespit etmenizi sağlar.
4. Windows Ayarları ve Kısa Yollar
A. Get-StartApps
Ne işe yarıyor?Başlat menüsündeki tüm uygulamaları listeler.
Günlük fayda: Kurulu uygulamaları hızlıca görebilir, özellikle hangi uygulamanın kurulu olduğunu unutmuşsanız faydalıdır.
B. Get-History
Ne işe yarıyor?PowerShell’de daha önce çalıştırdığınız komutları listeler.
Günlük fayda: Sık kullanılan komutları tekrar hatırlayıp hızla çalıştırabilirsiniz.
C. Clear-RecycleBin
Ne işe yarıyor?Geri dönüşüm kutusunu temizler.
Günlük fayda: Tek bir komutla tüm silinen dosyaları kalıcı olarak kaldırabilirsiniz.
Clear-RecycleBin -Force
5. Otomasyon ve Hızlı Script Örnekleri
A. Klasör Yedekleme
Copy-Item -Path C:\Users\%USERNAME%\Documents -Destination D:\Backup -Recurse
Ne işe yarıyor?
Belgelerinizi hızlıca yedekler.
Günlük fayda: Manuel kopyalama ile uğraşmadan yedekleme yapılır.
B. Otomatik Güncellemeleri Kontrol Etme
Get-WindowsUpdateLog
Ne işe yarıyor?
Windows güncellemeleriyle ilgili logları görüntüler.
Günlük fayda: Güncelleme hatalarını ve geçmişini hızlıca görebilirsiniz.
C. Hızlı Not Alma
Add-Content -Path C:\Users\%USERNAME%\Documents\Notes.txt -Value "Bugün yapılacaklar listesi"
Ne işe yarıyor?
Hızlıca metin dosyasına not ekler.
Günlük fayda: Not defteri açmadan kısa komutla günlük not tutabilirsiniz.
4. Sonuç
PowerShell, Windows sistem yönetiminde yalnızca bir komut satırı aracı değil, aynı zamanda güçlü bir otomasyon ve script yazım platformudur. Sistem yöneticileri, PowerShell’i etkili kullanarak:- Sistem durumunu hızlı analiz edebilir,
- Rutin bakım ve yedeklemeleri otomatikleştirebilir,
- Kullanıcı ve grup yönetimini kolaylaştırabilir,
- Gelişmiş raporlama ve sorun çözme süreçlerini hızlandırabilir.



