PowerShell nedir?
PowerShell, Microsoft'un geliştirdiği güçlü bir komut satırı aracıdır. Ancak yalnızca bir komut satırı aracı olmanın ötesine geçer. Güçlü scripting (betik yazma) özellikleri sayesinde, sistem yöneticilerinden yazılım geliştiricilerine kadar herkesin hayatını kolaylaştıran bir araç haline gelmiştir. PowerShell ile bilgisayarınızda çeşitli görevleri otomatikleştirebilir, zaman kazandırabilir ve hata risklerini minimize edebilirsiniz.
PowerShell Scripting ile Otomasyonun Faydaları
Peki, PowerShell scripting ile otomasyon kullanmak ne gibi faydalar sağlar? İşte bazıları:
1. Zaman Tasarrufu: Tekrarlayan işleri otomatikleştirerek saatlerce süren görevleri birkaç saniyeye indirirsiniz.
2. Hata Azaltma: İnsan hatasını en aza indirirsiniz çünkü işlemler manuel olarak yapılmaz.
3. Verimlilik Artışı: İşlerinizi hızlandırarak daha fazla iş bitirirsiniz.
4. Güçlü ve Esnek: PowerShell, istediğiniz her türlü işlemi gerçekleştirebilecek kadar güçlüdür ve tam anlamıyla özelleştirilebilir.
Haydi, bu teoriyi bir kenara bırakıp hemen bir örnekle uygulamaya geçelim. Farz edelim ki bilgisayarınızdaki dosyaları düzenli olarak yedeklemeniz gerekiyor ve bu işlemi her gün tekrarlıyorsunuz. Bu işlemi otomatik hale getirebiliriz.
Aşağıdaki PowerShell script'i, belirlediğiniz bir klasördeki dosyaları belirlediğiniz başka bir klasöre kopyalayacaktır. Bu sayede her gün manuel olarak yedekleme yapmanıza gerek kalmaz.
# Kaynak ve hedef dizinlerini tanımlayalım
$sourceFolder = "C:\Kullanıcılar\KullanıcıAdı\Belgeler"
$destinationFolder = "D:\Yedekleme"
# Dosyaları kopyalayalım
Copy-Item -Path $sourceFolder\* -Destination $destinationFolder -Recurse -Force
# İşlem tamamlandı mesajı
Write-Host "Dosyalar başarıyla yedeklendi!" -ForegroundColor Green
Bu script’i çalıştırdığınızda, belirlediğiniz kaynak klasördeki tüm dosyalar hedef klasöre yedeklenecek. Hem de otomatik olarak!
PowerShell ile Zamanlayıcı Oluşturmak
Şimdi gelelim otomasyon işini daha da ileriye taşımaya. Yedekleme işleminizin her gün belirli bir saatte otomatik olarak gerçekleşmesini isteyebilirsiniz. Bunun için PowerShell'de bir zamanlayıcı (Scheduler) kullanabilirsiniz.
# Görev zamanlayıcısı oluşturuyoruz
$taskAction = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument "C:\YedeklemeScript.ps1"
$taskTrigger = New-ScheduledTaskTrigger -Daily -At "8:00AM"
$taskSettings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
# Görevi zamanlayıcıya ekliyoruz
Register-ScheduledTask -Action $taskAction -Trigger $taskTrigger -Settings $taskSettings -TaskName "YedeklemeGörevi" -Description "Her gün saat 8:00'de dosyalar yedeklenecek."
Bu script'i bir PowerShell dosyasına kaydedip çalıştırarak, her gün saat 8:00'de dosya yedekleme işleminizi otomatikleştirebilirsiniz.
PowerShell ile Dosya Temizleme Otomasyonu
Bir başka faydalı otomasyon örneği, bilgisayarınızda gereksiz dosyaları temizlemektir. Bilgisayarınızda depolama alanı sıkıştığında, eski dosyalar ve geçici dosyalar birikir. PowerShell ile bu dosyaları temizleyebilirsiniz. İşte bu işlemi gerçekleştiren bir script:
# Eski dosyaları temizle
$folderPath = "C:\Kullanıcılar\KullanıcıAdı\GeçiciDosyalar"
$daysOld = 30
$cutoffDate = (Get-Date).AddDays(-$daysOld)
# 30 günden eski dosyaları sil
Get-ChildItem -Path $folderPath | Where-Object { $_.LastWriteTime -lt $cutoffDate } | Remove-Item -Force
# Temizlik tamamlandı mesajı
Write-Host "Eski dosyalar temizlendi!" -ForegroundColor Red
Bu script, belirli bir klasördeki 30 günden eski dosyaları temizler. Bu tür bir otomasyon sayesinde bilgisayarınızda gereksiz dosyalardan kurtulabilirsiniz.