Windows Task Scheduler Nedir?

Görev Zamanlayıcı, seçilen bir bilgisayarda rutin görevleri otomatik olarak gerçekleştirmenizi sağlar. Görev Zamanlayıcısı, tetikleyici ölçütlerini izleyerek ve ardından bu ölçütler karşılandığında görevleri yerine getirerek bunu yapar.
Yürütmek için Görev Zamanlayıcı'yı kullanabileceğiniz bazı görev örnekleri şunlardır. Bir uygulama başlatmak, bir e-posta mesajı gönderme veya bir mesaj kutusu görüntüleme gibi olabilir. Bu tetikleyicilere yanıt olarak yürütülecek bir görev planlayabilirsiniz:
- Belirli bir sistem olayı meydana geldiğinde.
- Belirli bir zamanda.
- Günlük programda belirli bir zamanda.
- Haftalık programda belirli bir zamanda.
- Aylık bir programda belirli bir zamanda.
- Belirli bir zamanda, aylık haftanın günü programında.
- Bilgisayar boş bir duruma girdiğinde.
- Görev kaydedildiğinde.
- Sistem önyüklendiğinde.
- Bir kullanıcı oturum açtığında.
- Terminal Sunucusu oturumu durumu değiştirdiğinde.
Windows zamanlanmış görev yapacaksanız, öncesinde bir kaç işlem yapmanız gerekmektedir. Şimdi bir kaç senaryo üzerinden devam edelim. Örneğin, bir hizmet veya süreç ile ilgili zamanlanmış görev ayarlayacaksanız aşağıdakileri işlemleri gerçekleştirmeniz gerekecektir.
- Hizmet veya Sürecin isminin öğrenilmesi.
- Bacth Script oluşturulması
- Task Scheduler işlemleri
Şimdi sırayla hepsini incelemeye çalışalım.
Windows Servis İşlemleri
İlk olarak hizmetin adını öğrenmeniz gerekmektedir. Bunun için, çalıştır kısmına services.msc yazıp Enter tuşuna basın.
Windows Servisleri Client ve Server için değişmemektedir.

Açılan pencerede işlem yapacağınız hizmete çift tıklayın.

Hizmet adı yazan kısımdaki hizmet ismini not alın.

Windows Services Başlatma/Durma/Yeniden Başlatma
Hizmet adını belirledikten sonra sıra geldi, hangi komutlar ile bu servis için ne işlemler yapacağımızı öğrenmeye.
Aşağıdaki komutları ve servis adını kullanarak. Servisleri başlatmayı, durdurmayı, duraklatmayı, devam ettirmeyi veya yeniden başlatmak gibi bir çok istediğiniz işlemi yapabilirsiniz.
ServiceName kısmına belirlediğiniz servisin adını yazmanız gerekmektedir.
Hizmet başlatmak için şunu yazın:
net start ServiceName
Bir hizmeti durdurmak için şunu yazın:
net stop ServiceName
Bir hizmeti duraklatmak için şunu yazın:
net pause ServiceName
Bir hizmete devam etmek için şunu yazın:
net continue ServiceName
Bir hizmeti yeniden başlatmak için şunu yazın:
net stop ServiceName && net start ServiceName
Kılavuzun başında bir servis adını ve servisler ile ilgili işlemleri nasıl yapacağımızı öğrendiğimize göre bir kaç örnek yapabiliriz. Bu örnekte belirlediğimiz bir hizmetin başlamasını istiyoruz. Bunun için bir not defteri dosyası açalım ve yapmak istediklerimizi buraya yazıp Bacth Script oluşturalım.
net start FOGService

Dosya kısmından farklı kaydet butonuna tıklayarak belirlediğim bir yola dosya adının sonu .bat olacak şekilde kayıt ediyorum.

Windows Proces İşlemleri
Servisler gibi windows süreçlerini'de ihtiyaca göre kapatmak veya yeniden çalıştırmak gibi ihtiyaçlarımız olabilmektedir. İşlem yapmak için bir sürecin adını nasıl öğreneceğimize bakalım. İlk olarak görev yöneticisini açalım ve çalışan süreci bulup mouse ile sağ tıklayarak Open file location seçeneğini seçelim.

Açılan pencerede sürecin çalıştığı yol ve ismi gözükecektir. Bunları bir not alıp şimdi Bacth Script haline getirelim.

Bu örnekte belirlediğimiz bir sürecin kapanıp tekrar başlamasını istiyoruz. Bunun için bir not defteri dosyası açalım ve yapmak istediklerimizi buraya yazıp Bacth Script oluşturalım.
@echo off
taskkill /F /IM "pdf3000.exe"
start C:\politeknik\PFD3000.exe
exit
Dosya kısmından farklı kaydet butonuna tıklayarak belirlediğim bir yola dosya adının sonu .bat olacak şekilde kayıt ediyorum.

Task Scheduler Kullanımı
Bu kısım bacth script hazırladığınızı varsayar.
Yukarıda bir hizmet/süreç ismine bakmayı, açma, kapatma vb. işlemleri ve son olarak bir bacth script hazırlamayı öğrendiğimize göre artık task scheduler kullanımına geçebiliriz.
Çalıştır kısmına taskschd.msc yazıp Enter tuşuna basıp zamanlanmış görevleri açalım.

Açılan pencerede bir görev oluşturabilir veya yeni bir klasör içine bir görev oluşturabilirsiniz. Mevcut olan klasör üzerinde Görev Oluştur Seçeneği ile devam ediyorum.

Genel (General) penceresinde İsim ve Açıklama kısmına diğer insanlarında anlaması için gerekli açıklamaları yapmanız önemlidir. Diğer önemli kısım ise alt kısımda bulunan En yüksek ayrıcalıklarla çalıştır seçeneğidir. Yapılan işlem ayrıcalık isteyen bir işlem ise ve bu seçeneği işaretlemez iseniz çalışmayacaktır. Son olarak görevi oturum açtığınız kullanıcı ile çalıştırabilirken, isterseniz Kullanıcı/Grup Değiştir kısmından farklı bir hesap ile çalıştırabilirsiniz.

Tetikleyiciler (Triggers) kısmına gelip yeni seçeneğini seçiyorum.

Seçenekler o kadar çok ki kısaca biraz bahsedelim. Yeni bir görev oluşturma seçenekleri şunları içerir.
- Zamanlamayla: Düzenli bir zaman aralığında
- Oturum açıldığında: Bilgisayarınıza her giriş yaptığınızda
- Başlatırken: Bilgisayar açıldığında
- Boştayken: Bilgisayar boşta kaldığında
- Bir olayda: Herhangi bir Windows olayı oluşur
- Görev oluşturulurken/değiştirilirken: Bir görev oluşturduğunuzda veya değiştirdiğinizde
- Kullanıcı oturumu bağlantıda: Bir hesap oturumuna giriş yapma
- Kullanıcı oturuma bağlantısı kesildiğinde: Bir hesap oturumundan çıkış
- İş istasyonu kilitlendiğinde: Sisteminiz kilitlendiğinde
- İş istasyonu kilidi açıldığında: Bilgisayarınızın kilidini açtığınızda

Buradaki en yaygın seçenek zamanlamayla olandır. Bizde zamanlayıcı üzerinden devam edelim. Günlük, haftalık veya aylık olarak çalışmak için görevinizi tetikleyebilirsiniz. Bir görevi geciktirmek, tetikledikten sonra düzenli olarak tekrarlamak, çalışması çok uzun sürerse görevi durdurmak da mümkündür, veya görevi belirli bir gün ve saatten sonra tetiklenmesini iptal edebilirsiniz.
Aşağıdaki görevde her gün, saat 20:00 de görev tetiklenecektir. (Her 2 veya 3 Günde gibi birde ayarlayabilirsiniz.)
İsterseniz birde fazla tetikleyici ayarlayabilirsiniz.

Tamam seçeneğine tıklayarak tetikleyici koşullarını ekliyorum.

Eylemler (Actions) kısmına geldiğimiz zaman, yeni seçeneğine tıklayalım.

Açılan pencerede, eylem kısmında e-posta gönderebilir veya ileti görüntüleyebilirsiniz. Biz bir program başlatacağımız için bu seçenek ile devam ediyoruz. Şimdi gözat kısmından yazdığınız scriptinizi seçerek ekleyin. Eğer script ile çalışmasını istediğiniz parametreler var ise bağımsız değişken veya başlangıç kısmına ekleyebilirsiniz.

Tamam seçeneğine tıklayarak scripti ve eylemi ekliyorum.

Basit bir görev oluşturuyorsanız, koşullar kısmındaki ayarları değiştirmeniz gerekmez. Ancak, yine de güç ayarlarının durumunuza göre yapılandırmak isterseniz değişiklik yapabilirsiniz. Ben varsayılan olarak bırakıyorum.

Ayarlar (Settings) kısmından ise görevin davranışlarına göre ek ayarlar belirtebilirsiniz. Bu kısımda herhangi bir ayar yapmadan tamam seçeneğine tıklıyorum. Ancak aşağıdaki seçenekleri kontrol etmeniz iyi bir fikir olabilir.
- Zamanlanan bir başlatma kaçırıldıktan sonra görevi mümkün olan en kısa sürede çalıştırın.
- Görev başarısız olursa, şu sıklıkta yeniden başlat.

Artık görevin geldiğini ve hazır olduğunu görebilirsiniz. Zamanı geldiğinde görevi çalıştıracaktır.

Son olarak Windows Server sürümlerinde geçmişe dönük görevlerin loglarını görebilirsiniz.
