2026-08-15

Mevcut bir zamanlanmış görevin tekrarlama sıklığını değiştirmek

Bir zamanlanmış görevim var. Her 5 dakikada bir çalışıyor. Powershell kullanarak bunun süresini değiştirmek istiyorum. İsmini kullanarak görev nesnesini bir değişkene atıyorum.

$gorev = Get-ScheduledTask -TaskName "Temizlik"

Bu görevin birden fazla tetiklemesi olabilir. Mevcut durumu görelim:

$gorev.Triggers

Triggers dizisinin içindeki 1 numaralı tetiklemenin tekrarlama sıklığını görelim:

$gorev.Triggers[1].Repetition.Interval
PT5M

Bu dönen değer ISO 8601 standardına göre bir süre ifadesi:

P: Periyot
T: Time (zaman)
M: Zaman ifadesi olduğu için 1 dakika (Minute)

P1M olsaydı 1 ay (Month) olacaktı. P1M2DT3M gibi bir ifade de 1 ay 2 gün 3 saat yapar. Windows görev zamanlayıcısı bu ifadelerin tümünü desteklemiyor. Basit ifadeler kullanmak lazım.

Bu 5 dakikayı 1 dakika olarak değiştirmek istiyorum. Önce $gorev nesnesini değiştirelim.

$gorev.Triggers[1].Repetition.Interval = "PT1M"

2 tetikleyiciden biri periyodik tekrarlayan, diğeri oturum açma/event tabanlı ise bunu aşağıdaki gibi ayırt edebilirim:

$gorev.Triggers | % {
   if ($_.CimClass.CimClassName -eq 'MSFT_TaskTimeTrigger') {
        $_.Triggers.Repetition.Interval = "PT1M"
     }
}

Bu nesne henüz sadece RAM'de. Bunu bir de görev zamanlayıcı nesnesi olarak yazalım.

Set-TaskScheduler -InputObject $gorev

Sonrasında bir de kontrol edelim, uygulanmış mı:

(Get-TaskScheduler -TaskName "Temizlik").Triggers[1].Repetition.Interval
PT1M 

Olduğunu görmek güzel.

Hiç yorum yok: