about_Scheduled_Jobs
Kısa açıklama
Zamanlanmış işleri açıklar ve Zamanlanmış işlerin PowerShell'de ve Görev Zamanlayıcı'da nasıl kullanılacağını ve yönetileceğini açıklar.
Uzun açıklama
PowerShell zamanlanmış işleri, PowerShell arka plan işlerinin ve Görev Zamanlayıcı görevlerinin kullanışlı bir hibritidir.
PowerShell arka plan işleri gibi zamanlanmış işler de arka planda zaman uyumsuz olarak çalışır. Çalıştırılan zamanlanmış işlerin örnekleri, , Get-Job
, Stop-Job
ve Receive-Job
gibi Start-Job
iş cmdlet'leri kullanılarak yönetilebilir.
Görev Zamanlayıcı görevleri gibi zamanlanmış işler de diske kaydedilir. Görevleri Görev Zamanlayıcı'da görüntüleyebilir ve yönetebilir, gerektiğinde etkinleştirebilir ve devre dışı bırakabilir, bunları çalıştırabilir veya şablon olarak kullanabilir, işleri başlatmak için tek seferlik veya yinelenen zamanlamalar oluşturabilir veya işlerin hangi koşullarda başlayacağını ayarlayabilirsiniz.
Buna ek olarak, zamanlanmış iş örneklerinin sonuçları diske kolayca erişilebilir bir biçimde kaydedilir ve çalışan bir iş çıkışı günlüğü sağlanır. Zamanlanmış işler, bunları yönetmek için özelleştirilmiş bir cmdlet kümesiyle birlikte gelir. Cmdlet'ler zamanlanmış işleri, iş tetikleyicilerini ve iş seçeneklerini oluşturmanızı, düzenlemenizi, yönetmenizi, devre dışı bırakmanızı ve yeniden etkinleştirmenizi sağlar.
Bu kapsamlı ve esnek araç kümesi, zamanlanmış işleri birçok profesyonel PowerShell BT çözümü için temel bir bileşen haline getirir.
Zamanlanan iş cmdlet'leri, PowerShell ile yüklenen PSScheduledJob modülüne dahil edilir. Bu modül PowerShell 3.0'da tanıtıldı ve PowerShell 3.0 ve sonraki PowerShell sürümlerinde çalışır. PSScheduledJob modülünde yer alan cmdlet'ler hakkında daha fazla bilgi için bkz. PSScheduledJob.
PowerShell arka plan işleri hakkında daha fazla bilgi için bkz. about_Jobs.
Görev Zamanlayıcı hakkında daha fazla bilgi için bkz. Görev Zamanlayıcı.
Not
Görev Zamanlayıcı'da PowerShell zamanlanmış işlerini görüntüleyebilir ve yönetebilirsiniz. PowerShell işleri ve zamanlanmış iş cmdlet'leri yalnızca PowerShell'de oluşturulan zamanlanmış işlerde çalışır.
Hızlı başlangıç
Bu örnek, her gün saat 03:00'te başlayan ve cmdlet'ini Get-Process
çalıştıran zamanlanmış bir iş oluşturur. Bilgisayar pille çalışıyor olsa bile iş başlar.
$trigger = New-JobTrigger -Daily -At 3AM
$options = New-ScheduledJobOption -StartIfOnBattery
Register-ScheduledJob -Name ProcessJob -ScriptBlock {Get-Process} `
-Trigger $trigger -ScheduledJobOption $options
Get-ScheduledJob
Cmdlet, yerel bilgisayardaki zamanlanmış işleri alır.
Get-ScheduledJob
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
7 ProcessJob {1} Get-Process True
Get-JobTrigger
ProcessJob'ın iş tetikleyicilerini alır. Tetikleyiciler zamanlanmış bir işe kaydedildiğinden, giriş parametreleri tetikleyiciyi değil zamanlanmış işi belirtir.
Get-JobTrigger -Name ProcessJob
Id Frequency Time DaysOfWeek Enabled
-- --------- ---- ---------- -------
1 Daily 11/5/2011 3:00:00 AM True
Bu örnekte, ProcessJob'ınSet-ScheduledJob
StopIfGoingOnBatteries özelliğini False olarak değiştirmek için cmdlet'in ContinueIfGoingOnBattery parametresi kullanılır.
Get-ScheduledJob -Name ProcessJob | Set-ScheduledJobOption `
-ContinueIfGoingOnBattery -Passthru
StartIfOnBatteries : True
StopIfGoingOnBatteries : False
WakeToRun : True
StartIfNotIdle : True
StopIfGoingOffIdle : False
RestartOnIdleResume : False
IdleDuration : 00:10:00
IdleTimeout : 01:00:00
ShowInTaskScheduler : True
RunElevated : False
RunWithoutNetwork : True
DoNotAllowDemandStart : False
MultipleInstancePolicy : IgnoreNew
JobDefinition : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
Cmdlet, Get-ScheduledJob
ProcessJob zamanlanmış işini alır.
Get-ScheduledJob ProcessJob
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
7 ProcessJob {1} Get-Process True
Cmdlet, Get-Job
ProcessJob zamanlanmış işinin şimdiye kadar çalıştırılan tüm örneklerini alır. Get-Job
Cmdlet zamanlanmış işleri yalnızca PSScheduledJob modülü geçerli oturuma aktarıldığında alır.
İpucu
Zamanlanmış işleri yönetmek için zamanlanmış iş cmdlet'lerini kullandığınıza, ancak zamanlanmış işlerin örneklerini yönetmek için iş cmdlet'lerini kullandığınıza dikkat edin.
Get-Job -Name ProcessJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------ ----- ----------- -------- -------
45 ProcessJob PSScheduledJob Completed True localhost Get-Process
46 ProcessJob PSScheduledJob Completed True localhost Get-Process
47 ProcessJob PSScheduledJob Completed True localhost Get-Process
48 ProcessJob PSScheduledJob Completed True localhost Get-Process
49 ProcessJob PSScheduledJob Completed True localhost Get-Process
50 ProcessJob PSScheduledJob Completed True localhost Get-Process
51 ProcessJob PSScheduledJob Completed True localhost Get-Process
Cmdlet, Receive-Job
ProcessJob zamanlanmış işinin en son örneğinin sonuçlarını alır (Kimlik = 51).
Receive-Job -ID 51
Komut Keep parametresini içermese Receive-Job
de, siz silene veya maksimum sonuç sayısı aşılana kadar işin sonuçları diske kaydedilir.
İş sonuçları artık bu oturumda kullanılamaz, ancak yeni bir oturum başlatırsanız veya yeni bir PowerShell penceresi açarsanız, işin sonuçları yeniden kullanılabilir.
Aşağıdaki komut, ProcessJob zamanlanmış işini başlatmak için cmdlet'in Start-Job
DefinitionName parametresini kullanır.
cmdlet'i kullanılarak Start-Job
başlatılan işler, zamanlanmış işin örnekleri değil standart PowerShell arka plan işleridir. Tüm arka plan işleri gibi bu işler de hemen başlar, iş seçeneklerine tabi olmaz veya iş tetikleyicilerinden etkilenmez ve çıkışları zamanlanmış iş dizininin çıkış dizinine kaydedilmez.
Start-Job -DefinitionName ProcessJob
cmdlet'i Unregister-ScheduledJob
ProcessJob zamanlanmış işini ve iş örneklerinin tüm kaydedilmiş sonuçlarını siler.
Unregister-ScheduledJob ProcessJob
Zamanlanmış işler kavramları
Zamanlanmış bir iş komutları veya betiği çalıştırır. Zamanlanmış bir iş, işi başlatan iş tetikleyicilerini ve işi çalıştırma koşullarını ayarlayan iş seçeneklerini içerebilir.
İş tetikleyicisi zamanlanmış işi otomatik olarak başlatır. İş tetikleyicisi bir kerelik veya yinelenen bir zamanlama içerebilir ya da kullanıcının oturum açması veya Windows'un başlatılması gibi bir olay belirtebilir. Zamanlanmış bir işin bir veya daha fazla iş tetikleyicisi olabilir ve iş tetikleyicileri oluşturabilir, ekleyebilir, etkinleştirebilir, devre dışı bırakabilir ve alabilirsiniz.
İş tetikleyicileri isteğe bağlıdır. zamanlanmış işleri hemen başlatmak için komutunu kullanabilir Start-Job cmdlet
veya komutunuz Register-ScheduledJob
için RunNow parametresini ekleyebilirsiniz.
İş seçenekleri, zamanlanmış bir işi çalıştırma koşullarını ayarlar. Zamanlanan her işin bir iş seçenekleri nesnesi vardır. İş seçenekleri nesneleri oluşturup düzenleyebilir ve bunları bir veya daha fazla zamanlanmış işe ekleyebilirsiniz.
Zamanlanmış bir iş her başlatıldığında bir iş örneği oluşturulur. İş örneğini görüntülemek ve yönetmek için PowerShell iş cmdlet'lerini kullanın.
Zamanlanmış işler diske kaydedilir ve yerine cmdlet fiilini Register
New
kullanır. XML dosyaları dizinindeki $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
yerel bilgisayarda bulunur.
PowerShell, zamanlanan her iş için bir dizin oluşturur ve iş komutlarını, iş tetikleyicilerini, iş seçeneklerini ve iş sonuçlarını zamanlanmış iş dizinine kaydeder. İş tetikleyicileri ve iş seçenekleri diske bağımsız olarak kaydedilmez. İlişkilendirildikleri her zamanlanmış işin zamanlanmış iş XML'sine kaydedilirler.
Zamanlanmış işler, iş tetikleyicileri ve iş seçenekleri PowerShell'de nesne olarak görünür. Nesneler birbirine bağlanarak komutlarda ve betiklerde bulunmasını ve kullanılmasını kolaylaştırır.
Zamanlanmış işler ScheduledJobDefinition nesneleri olarak görünür. ScheduledJobDefinition nesnesi, zamanlanmış işin iş tetikleyicilerini içeren bir JobTriggers özelliğine ve iş seçeneklerini içeren bir Options özelliğine sahiptir. sırasıyla iş tetikleyicilerini ve iş seçeneklerini temsil eden ScheduledJobTriggers ve ScheduledJobOptions nesneleri, ilişkili oldukları zamanlanmış işi içeren bir JobDefinition özelliğine sahiptir. Bu özyinelemeli bağlantı, zamanlanmış bir işin tetikleyicilerini ve seçeneklerini bulmayı ve herhangi bir iş tetikleyicisinin veya iş seçeneğinin ilişkilendirildiği zamanlanmış işi bulmayı, betiği oluşturmayı ve görüntülemeyi kolaylaştırır.