# Windows Görev Zamanlayıcı ile program ve betik çalıştırma (açılışta, saatlik)

https://kervanhosting.com/bilgi-bankasi/makale/windows-sunucuda-gorev-zamanlayici-ile-program-ve-betik-calistirma

Bir programınızın (bir bot, bir veri toplama betiği, bir yedekleme komutu) sunucu yeniden başladığında kendiliğinden çalışmasını ya da belirli saatlerde tekrarlanmasını istiyorsunuz. Windows'ta bunun yolu **Görev Zamanlayıcı**'dır (Task Scheduler). Linux'taki cron'un karşılığıdır ve en önemli özelliği kimse oturum açmadan da çalışabilmesidir.

## Arayüzle görev oluşturma

1. Başlat menüsünde **Görev Zamanlayıcı**'yı açın. Sağdan **Görev Oluştur**'u seçin (Temel Görev Oluştur değil; ikincisinde önemli seçenekler yoktur).
2. **Genel** sekmesinde bir ad verin. İki seçenek çok önemlidir:
  - **Kullanıcı oturum açmış olsa da olmasa da çalıştır:** RDP oturumunuzu kapatsanız bile görev çalışmaya devam eder. Bunu seçince görev için parolanızı girmeniz istenir.
  - **En yüksek ayrıcalıklarla çalıştır:** Yönetici yetkisi gereken işler için.
3. **Tetikleyiciler** sekmesinde **Yeni**: "Başlangıçta" (sunucu açılınca) ya da "Zamanlamaya göre" (günlük, saatlik). Tekrarlama için "Görevi şu aralıkta tekrarla" kutusunu işaretleyin.
4. **Eylemler** sekmesinde **Yeni > Program başlat**. Program/komut alanına çalıştırılacak dosyanın **tam yolunu** yazın (`C:\botlar\baslat.bat`). "Başlangıç yeri" alanına programın klasörünü yazın; birçok program göreli dosya yollarını buradan çözer.
5. **Koşullar** sekmesinde "Görevi yalnızca bilgisayar AC gücü varsa başlat" gibi kutuların işaretli olmadığından emin olun (sunucuda ilgisiz ama bazen varsayılan işaretli gelir).
6. **Ayarlar** sekmesinde "Görev başarısız olursa yeniden başlat" ile deneme sayısı ve aralığı verebilirsiniz.

## Komutla

Aynı işi yönetici Komut İstemi'nde tek satırla yapabilirsiniz:

```
schtasks /Create /TN "Bot Baslat" /TR "C:\botlar\baslat.bat" /SC ONSTART /RU SYSTEM /RL HIGHEST /F
```

`/SC ONSTART` sunucu açılışında, `/RU SYSTEM` sistem hesabıyla (parola gerekmez) çalıştırır. Her gün 04:30 için: `/SC DAILY /ST 04:30`, her 15 dakikada bir için: `/SC MINUTE /MO 15`. Görevi elle çalıştırmak ve durumu görmek için:

```
schtasks /Run /TN "Bot Baslat"
schtasks /Query /TN "Bot Baslat" /V /FO LIST
```

## Sık sorunlar

- **Görev "çalışıyor" ama hiçbir şey olmuyor:** Göreli yol kullanıyorsunuzdur. Dosya yollarını tam yazın ve "Başlangıç yeri" alanını doldurun.
- **"Son çalıştırma sonucu: 0x1":** Program kendisi hata verdi. Çıktıyı bir dosyaya yönlendirip bakın: `baslat.bat >> C:\botlar\gunluk.txt 2>&1`.
- **Ekran gerektiren program (pencereli):** "Kullanıcı oturum açmış olsa da olmasa da çalıştır" seçilince pencere görünmez. Pencereli uygulamalar için "Yalnızca kullanıcı oturum açtığında çalıştır" seçmek ve sunucuyu otomatik oturum açacak biçimde ayarlamak gerekir: [MetaTrader örneği](https://kervanhosting.com/bilgi-bankasi/makale/metatrader-mt4-mt5-windows-sunucuda-7-24-calistirma).
- **Parola değişti, görev çalışmıyor:** Görevin kayıtlı kullanıcı parolası eskidir; görevi açıp parolayı yeniden girin ya da `SYSTEM` hesabını kullanın.

Programın çökünce kendiliğinden yeniden başlaması için "Görev başarısız olursa yeniden başlat" ayarını kullanın. Uygulamayı gerçek bir servis olarak çalıştırmak daha sağlam bir çözümdür: [7/24 çalıştırma](https://kervanhosting.com/bilgi-bankasi/makale/windows-sunucuda-program-kurma-ve-7-24-calistirma). Windows sunucu paketleri: [Windows VDS](https://kervanhosting.com/windows-vds).

## Sık sorulanlar

### Görev Zamanlayıcı ile cron arasındaki fark ne?

İşlev aynıdır; Windows'ta arayüzle tanımlanır ve oturumla ilişkisi vardır. Linux'taki karşılığı için [cron makalesine](https://kervanhosting.com/bilgi-bankasi/makale/zamanlanmis-gorev-cron-nasil-eklenir) bakın.

### SYSTEM hesabıyla çalıştırmak güvenli mi?

SYSTEM çok yetkili bir hesaptır. Betiğinizin güvenilir olduğundan emin olun; genel kural: işi görecek en düşük yetkili hesabı seçin.

### Görev çalışmadan kaç dakika gecikmeyi tolere eder?

Gecikmeye bağlı bir ayar vardır: Ayarlar sekmesinde "Zamanlanmış başlangıç kaçırılırsa görevi en kısa sürede çalıştır" kutusunu işaretleyebilirsiniz.

**İlgili makaleler**

- [Windows sunucuda program kurma ve 7/24 çalıştırma](https://kervanhosting.com/bilgi-bankasi/makale/windows-sunucuda-program-kurma-ve-7-24-calistirma)
- [Zamanlanmış görev (cron) nasıl eklenir?](https://kervanhosting.com/bilgi-bankasi/makale/zamanlanmis-gorev-cron-nasil-eklenir)
- [MetaTrader (MT4, MT5) Windows sunucuda 7/24 nasıl çalıştırılır?](https://kervanhosting.com/bilgi-bankasi/makale/metatrader-mt4-mt5-windows-sunucuda-7-24-calistirma)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
