Windows Görev Zamanlayıcı ile Otomatik Görev Nasıl Oluşturulur?
İçindekiler
- Windows Görev Zamanlayıcı Nedir?
- Görev Zamanlayıcı Nasıl Açılır?
- Temel Görev ile Görev Oluştur Arasındaki Fark Nedir?
- Görev Oluştururken Hangi Sekmeler Ayarlanır?
- Genel Sekmesi
- Tetikleyiciler Sekmesi
- Eylemler Sekmesi
- Koşullar ve Ayarlar Sekmeleri
- schtasks Komutu ile Görev Nasıl Oluşturulur?
- PowerShell ile Görev Nasıl Oluşturulur?
- Örnek: Robocopy ile Otomatik Gece Yedeklemesi
- Görev Neden Çalışmıyor? Sık Karşılaşılan Sorunlar
- Sahadan Gözlem: Ağ Yolu Tuzağı
- Görev Zamanlayıcı Kullanırken İyi Uygulamalar
Windows Görev Zamanlayıcı ile otomatik görev oluşturmak için Win + R tuşlarına basıp taskschd.msc yazın, sağ paneldeki Görev Oluştur seçeneğini tıklayın, ardından tetikleyici olarak zamanı veya olayı, eylem olarak da çalıştırılacak programı belirleyin. Aynı işlem komut satırında schtasks komutuyla tek satırda da yapılabilir. Görev kaydedildikten sonra Windows, belirlediğiniz koşul oluştuğunda programı sizin yerinize çalıştırır.
Bu yazıda Görev Zamanlayıcı arayüzünü, tetikleyici ve koşul ayarlarını, schtasks ve PowerShell komutlarını, gece yedeklemesi gibi gerçek örnekleri ve görev çalışmıyor sorununun en yaygın sebeplerini ele alacağız.
Windows Görev Zamanlayıcı Nedir?
Görev Zamanlayıcı (Task Scheduler), Windows ile birlikte gelen ve programları, betikleri veya komutları belirli koşullara bağlı olarak otomatik çalıştıran bir sistem bileşenidir. Windows Update, disk birleştirme ve bazı güvenlik taramaları da arka planda bu bileşen üzerinden çalışır.
Linux dünyasındaki cron aracının Windows karşılığı olarak düşünülebilir. Ancak Görev Zamanlayıcı yalnızca zamana değil; oturum açma, bilgisayarın boşta kalması, belirli bir olay günlüğü kaydı gibi pek çok farklı tetikleyiciye de tepki verebilir.
Görev Zamanlayıcı Nasıl Açılır?
- Çalıştır penceresi: Win + R tuşlarına basıp
taskschd.mscyazın. - Başlat menüsü: Arama kutusuna Görev Zamanlayıcı yazın.
- Bilgisayar Yönetimi: Win + X menüsünden Bilgisayar Yönetimi altında Görev Zamanlayıcı bölümünü açın.
Sol panelde Görev Zamanlayıcı Kitaplığı bulunur. Kendi görevlerinizi burada ayrı bir klasör açarak tutmak, sistem görevleriyle karışmasını önler ve bakımı kolaylaştırır.
Temel Görev ile Görev Oluştur Arasındaki Fark Nedir?
Sağ panelde iki seçenek bulunur. Temel Görev Oluştur sihirbaz şeklinde ilerler ve basit zamanlamalar için yeterlidir. Görev Oluştur ise tüm ayarlara erişim sağlar.
Sunucu veya iş bilgisayarı üzerinde çalışacak görevlerde her zaman Görev Oluştur seçeneğini kullanmak daha doğrudur. Çünkü görevin oturum açılmadan çalışması, yönetici yetkisi ve hata durumunda yeniden deneme gibi kritik ayarlar yalnızca bu ekranda bulunur.
Görev Oluştururken Hangi Sekmeler Ayarlanır?
Genel Sekmesi
Görevin adı ve açıklaması burada yazılır. En önemli ayar, görevin hangi kullanıcı ile çalışacağıdır.
- Yalnızca kullanıcı oturum açtığında çalıştır: Görev yalnızca siz oturumdayken çalışır, pencere görünür.
- Kullanıcı oturum açmış olsun veya olmasın çalıştır: Görev arka planda çalışır, parola kaydedilir. Sunucu görevleri için doğru seçenektir.
- En yüksek ayrıcalıklarla çalıştır: Yönetici yetkisi gereken işlemler için işaretlenmelidir.
Tetikleyiciler Sekmesi
| Tetikleyici | Ne Zaman Çalışır? | Örnek Kullanım |
|---|---|---|
| Zamanlamaya göre | Bir kez, günlük, haftalık veya aylık | Gece yedeklemesi |
| Oturum açıldığında | Kullanıcı Windows oturumu açtığında | Ağ sürücüsü bağlama |
| Başlangıçta | Bilgisayar açıldığında, oturumdan önce | Servis benzeri uygulamalar |
| Boştayken | Bilgisayar belirli süre boşta kaldığında | Temizlik ve bakım işleri |
| Bir olayda | Olay günlüğüne belirli kayıt düştüğünde | Hata oluşunca bildirim |
Zamanlama tetikleyicisinde Görevi yinele seçeneği ile görev örneğin her 15 dakikada bir tekrarlanabilir. Bu özellik, gün içinde sık çalışması gereken senkronizasyon işleri için kullanışlıdır.
Eylemler Sekmesi
Eylem olarak neredeyse her zaman Program başlat seçilir. Üç alan bulunur:
- Program veya betik: Çalışacak dosyanın tam yolu.
- Bağımsız değişken ekle: Programa verilecek parametreler.
- Başlangıç yeri: Programın çalışma klasörü. Bu alan boş bırakılırsa pek çok betik göreli yollarla dosya bulamaz.
Koşullar ve Ayarlar Sekmeleri
Koşullar sekmesinde varsayılan olarak Bilgisayar AC güçteyse başlat seçeneği işaretlidir. Dizüstü bilgisayarlarda pil ile çalışırken görevin başlamamasının sebebi çoğu zaman budur. Ayarlar sekmesinde ise zamanlanmış başlangıç kaçırılırsa görevi en kısa sürede çalıştır ve görev başarısız olursa yeniden başlat seçenekleri mutlaka değerlendirilmelidir.
schtasks Komutu ile Görev Nasıl Oluşturulur?
Aynı görevi birden fazla bilgisayara kurmanız gerekiyorsa arayüz yerine komut satırı çok daha hızlıdır. Yönetici olarak açılmış bir komut isteminde şu komutlar kullanılır:
:: Her gece 02:00 da yedek betiğini SYSTEM hesabıyla çalıştır
schtasks /Create /TN "Zek\GeceYedegi" /TR "C:\Scripts\yedek.bat" /SC DAILY /ST 02:00 /RU SYSTEM /RL HIGHEST
:: Her 30 dakikada bir çalışan görev
schtasks /Create /TN "Zek\Senkron" /TR "C:\Scripts\senkron.bat" /SC MINUTE /MO 30
:: Hafta içi her gün 18:30 da bilgisayarı kapat
schtasks /Create /TN "Zek\MesaiSonuKapat" /TR "shutdown /s /t 300" /SC WEEKLY /D MON,TUE,WED,THU,FRI /ST 18:30
:: Görevleri listele
schtasks /Query /TN "Zek\GeceYedegi" /V /FO LIST
:: Görevi hemen çalıştır
schtasks /Run /TN "Zek\GeceYedegi"
:: Görevi devre dışı bırak
schtasks /Change /TN "Zek\GeceYedegi" /DISABLE
:: Görevi sil
schtasks /Delete /TN "Zek\GeceYedegi" /F
Görev adındaki ters eğik çizgi, görevi Görev Zamanlayıcı Kitaplığı altında Zek adlı bir klasöre yerleştirir. Kendi görevlerinizi bu şekilde gruplamak, onları sistem görevleri arasında aramak zorunda kalmamanızı sağlar.
PowerShell ile Görev Nasıl Oluşturulur?
PowerShell, daha ayrıntılı ayarlar gerektiğinde schtasks komutundan daha esnektir:
$eylem = New-ScheduledTaskAction -Execute "C:\Scripts\yedek.bat" -WorkingDirectory "C:\Scripts"
$tetik = New-ScheduledTaskTrigger -Daily -At 2am
$ayarlar = New-ScheduledTaskSettingsSet -StartWhenAvailable -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 10)
Register-ScheduledTask -TaskName "GeceYedegi" -TaskPath "\Zek\" `
-Action $eylem -Trigger $tetik -Settings $ayarlar `
-User "SYSTEM" -RunLevel Highest
Bu örnekte başlangıç klasörü tanımlanmış, kaçırılan görevin en kısa sürede çalışması ve hata durumunda on dakika arayla üç kez yeniden denenmesi ayarlanmıştır.
Örnek: Robocopy ile Otomatik Gece Yedeklemesi
Görev Zamanlayıcının en yaygın kullanımı dosya yedeklemesidir. Aşağıdaki betik bir klasörü ağdaki bir paylaşıma yansıtır ve sonucu günlük dosyasına yazar:
@echo off
set KAYNAK=D:\Veriler
set HEDEF=\\YEDEKSUNUCU\Yedek\Veriler
set LOG=C:\Scripts\log\yedek_%date:~-4%%date:~3,2%%date:~0,2%.txt
robocopy "%KAYNAK%" "%HEDEF%" /MIR /R:2 /W:5 /NP /LOG:"%LOG%"
if %ERRORLEVEL% GEQ 8 (
echo Yedekleme hatali bitti >> C:\Scripts\log\hatalar.txt
)
Robocopy çıkış kodlarında 8 ve üzeri değerler hata anlamına gelir. 0 ile 7 arasındaki değerler ise kopyalama durumunu bildiren başarılı sonuçlardır. Bu yüzden Görev Zamanlayıcı ekranında son çalıştırma sonucu 0x1 veya 0x3 görünmesi robocopy için sorun değildir.
Dikkat: /MIR parametresi hedefi kaynağın birebir aynısı yapar. Kaynakta silinen dosya hedefte de silinir. Geçmiş sürüm tutmak istiyorsanız farklı tarihli klasörlere yedek almayı tercih edin.
Görev Neden Çalışmıyor? Sık Karşılaşılan Sorunlar
| Belirti | Olası Sebep | Çözüm |
|---|---|---|
| Elle çalışıyor, zamanlanınca çalışmıyor | Başlangıç yeri boş, göreli yollar bulunamıyor | Başlangıç yeri alanını doldurun veya tam yol kullanın |
| Ağ klasörüne yazamıyor | Eşlenmiş sürücü harfi arka planda yok | Z: yerine UNC yolu kullanın |
| Dizüstünde başlamıyor | AC güç koşulu işaretli | Koşullar sekmesinden kaldırın |
| Son sonuç 0x1 | Betik hata ile bitti | Betiği günlük dosyasına yazdırıp inceleyin |
| Parola değişince durdu | Görev eski parolayla kayıtlı | Görevi yeni parolayla güncelleyin veya SYSTEM kullanın |
| Çalıştı ama iz yok | Geçmiş kaydı kapalı | Sağ panelden Tüm Görev Geçmişini Etkinleştir |
Sahadan Gözlem: Ağ Yolu Tuzağı
Fabrika sunucusunda gece yedeklemesini ilk kurduğumuzda betik elle çalıştırıldığında sorunsuz çalışıyor, zamanlanmış görev olarak ise her gece hata veriyordu. Sebep, betikte kullanılan eşlenmiş ağ sürücüsü harfiydi. Eşlenmiş sürücüler kullanıcı oturumuna aittir. Görev arka planda veya SYSTEM hesabıyla çalıştığında o harf mevcut değildir.
Sürücü harfi yerine \\sunucu\paylasim biçiminde UNC yolu kullanıldığında ve hedef paylaşıma bilgisayar hesabı için yazma izni verildiğinde sorun tamamen çözüldü. İkinci ders ise görev geçmişini baştan açmak oldu. Geçmiş kapalıyken görevin çalışıp çalışmadığını anlamak neredeyse imkansızdır.
Görev Zamanlayıcı Kullanırken İyi Uygulamalar
- Kendi görevlerinizi ayrı bir klasörde toplayın.
- Görev açıklamasına ne yaptığını ve kimin kurduğunu yazın.
- Betiklerde her zaman tam dosya yolu kullanın.
- Her görevin çıktısını tarihli bir günlük dosyasına yazdırın.
- Kaçırılan görevi en kısa sürede çalıştır seçeneğini açın.
- Kritik görevlerde hata durumunda yeniden deneme ayarlayın.
- Görevleri dışa aktararak XML yedeğini saklayın.

0 Yorum