PowerShell Nedir?
Windows’un geleneksel Komut İstemi'nden daha fazlasını sunar. PowerShell, tam anlamıyla bir betik dilidir. Veritabanlarıyla çalışabilir, web sayfalarından veri çekebilir ve bilgisayarınızdaki uygulamaları otomatikleştirebilirsiniz. Hadi gelin, bu sihirli dünyaya dalalım.
Otomasyon Neden Önemli?
PowerShell ile Basit Bir Otomasyon Görevi
Aşağıdaki PowerShell kodu, belirttiğiniz klasördeki tüm dosyaları bir yedek klasörüne kopyalayacaktır.
$sourcePath = "C:\Kullanıcılar\KullanıcıAdı\Belgeler"
$backupPath = "D:\Yedekler\Belgeler"
# Yedekleme işlemi
Copy-Item -Path $sourcePath -Destination $backupPath -Recurse
Bu scripti her gün çalıştırarak, belgelerinizin düzenli bir şekilde yedeklenmesini sağlayabilirsiniz. Sadece bir kez çalıştırmanız yeterli. Sisteminiz her zaman güncel ve güvenli olur!
PowerShell ile Zamanlayıcı Kullanımı
1. PowerShell scriptinizi bir dosya olarak kaydedin. Örneğin, `yedekleme.ps1`.
2. Windows Görev Zamanlayıcı'ya gidin.
3. Yeni bir görev oluşturun ve zamanlamayı belirleyin.
4. Aşağıdaki gibi bir komut girin:
powershell.exe -ExecutionPolicy Bypass -File "C:\Scriptler\yedekleme.ps1"
Bu işlem her gece saatiniz 2 olduğunda, belirttiğiniz PowerShell scriptini çalıştıracak ve dosyalarınız güvenle yedeklenecektir.
PowerShell ile Dosya İsimlerini Düzenleme
$folderPath = "C:\Kullanıcılar\KullanıcıAdı\Belgeler\Resimler"
Get-ChildItem -Path $folderPath | ForEach-Object {
$newName = "Yeni_" + $_.Name
Rename-Item -Path $_.FullName -NewName $newName
}
Bu script, belirttiğiniz klasördeki tüm dosya isimlerini alır ve her dosyanın başına "Yeni_" ekler. Hangi dosyaların olduğunu görmek için önce `Get-ChildItem` komutunu çalıştırarak listeyi görebilirsiniz.
PowerShell ile E-Posta Gönderme
$filePath = "C:\Kullanıcılar\KullanıcıAdı\Belgeler\büyükdosya.txt"
$fileSize = (Get-Item $filePath).length / 1MB
if ($fileSize -gt 50) {
$smtpServer = "smtp.gmail.com"
$smtpFrom = "email@domain.com"
$smtpTo = "email@domain.com"
$messageSubject = "Dosya Boyutu Uyarısı"
$messageBody = "Dosya $filePath boyutu 50MB'ı geçti."
$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($smtpFrom, $smtpTo, $messageSubject, $messageBody)
}
Bu basit script, dosyanın boyutunu kontrol eder ve 50 MB'ı geçerse belirtilen e-posta adresine uyarı gönderir.
Sonuç
PowerShell ile otomasyon yapmayı öğrendikçe, daha karmaşık ve ileri düzey işlemler yapabilirsiniz. Unutmayın, PowerShell’in sunduğu olanaklar sadece hayal gücünüzle sınırlıdır!