about_Scheduled_Jobs
Kısa açıklama
Zamanlanmış işleri açıklar ve PowerShell'de ve powershell'de zamanlanmış işlerin nasıl Görev Zamanlayıcı.
Uzun açıklama
PowerShell zamanlanmış işleri, PowerShell arka plan işlerinin ve görevlerin Görev Zamanlayıcı bir karmadır.
PowerShell arka plan işleri gibi zamanlanmış işler de arka planda zaman uyumsuz olarak çalışır. Çalıştıran zamanlanmış işlerin örnekleri, ve gibi iş cmdlet'leri Start-Job Get-Job kullanılarak Stop-Job Receive-Job yönetilebilir.
Diğer Görev Zamanlayıcı gibi zamanlanmış işler de diske kaydedilir. Görev Zamanlayıcı'de işleri görüntüp yönetebilir, gerektiğinde etkinleştirebilecek ve devre dışı bırakabilirsiniz, bunları çalıştırabilirsiniz veya şablon olarak kullanabilir, işleri başlatmak için tek kullanımlık veya yinelenen zamanlamalar oluşturabilir ya da işlerin başlangıç koşulları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ğlar. Zamanlanan işler, bunları yönetmek için özelleştirilmiş bir cmdlet kümesiyle birlikte gelir. Cmdlet'ler zamanlanmış işler, iş tetikleyicileri ve iş seçenekleri 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 IT çözümünde temel bir bileşen hale getirir.
Zamanlanmış iş cmdlet'leri, PowerShell ile birlikte yüklenmiş 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.
Daha fazla bilgi için Görev Zamanlayıcı bkz. Görev Zamanlayıcı.
Not
PowerShell zamanlanmış işlerini iş yerlerinde görüntü Görev Zamanlayıcı. 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'da başlayan ve cmdlet'ini çalıştıran zamanlanmış Get-Process bir iş oluşturur. Bilgisayar piller üzerinde ç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-ScheduledJobcmdlet'i yerel bilgisayarda zamanlanmış işleri alır.
Get-ScheduledJob
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
7 ProcessJob {1} Get-Process True
Get-JobTriggerProcessJob'ın iş tetikleyicilerini alır. Tetikleyiciler zamanlanmış bir işe kaydedildikleri için 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 örnek, ProcessJob'un StopIfGoingOnBatteries özelliğini False olarak değiştirmek için Set-ScheduledJob cmdlet'in ContinueIfGoingOnBattery parametresini kullanı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
Get-ScheduledJobcmdlet'i ProcessJob zamanlanmış işini alır.
Get-ScheduledJob ProcessJob
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
7 ProcessJob {1} Get-Process True
Get-Jobcmdlet'i, şimdiye kadar çalıştırıldı olan ProcessJob zamanlanmış işinin tüm örneklerini alır. Get-JobCmdlet zamanlanmış işleri yalnızca PSScheduledJob modülü geçerli oturuma aktarıldı olduğunda alır.
İpucu
Zamanlanmış işleri yönetmek için zamanlanmış iş cmdlet'lerini kullanmaya dikkat edin, ancak zamanlanmış işlerin örneklerini yönetmek için iş cmdlet'lerini kullanın.
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
Receive-JobCmdlet, ProcessJob zamanlanmış işinin en son örneğinin sonuçlarını alır (KIMLIK = 51).
Receive-Job -ID 51
Komut Keep parametresini içermese de, siz silene veya maksimum sonuç sayısı aşılana kadar işin Receive-Job sonuçları diske kaydedilir.
İş sonuçları artık bu oturumda kullanılamaz, ancak yeni bir oturum açarsanı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 Start-Job cmdlet'in DefinitionName parametresini kullanır.
cmdlet'i kullanılarak başlayan işler, zamanlanan işin örnekleri değil Start-Job 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 bunların çıktıları zamanlanmış iş dizininin çıkış dizinine kayıtlı değildir.
Start-Job -DefinitionName ProcessJob
Unregister-ScheduledJobcmdlet'i ProcessJob zamanlanmış işini ve iş örneklerinin kaydedilen tüm 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ı ayarleyen iş seçeneklerini içerebilir.
İş tetikleyicisi zamanlanmış işi otomatik olarak başlatır. bir iş tetikleyicisi tek kullanımlık veya yinelenen bir zamanlama içerebilir ya da bir kullanıcı oturum açtığında veya oturum açtığında Windows belirtebilirsiniz. Zamanlanmış bir işin bir veya daha fazla iş tetikleyicisi olabilir ve iş tetikleyicileri oluşturabilir, ekleyebilir, etkinleştir, devre dışı bırak ve al.
İş tetikleyicileri isteğe bağlıdır. Zamanlanmış işleri komutunu kullanarak veya Start-Job cmdlet komutunuz için RunNow parametresini ekleyerek hemen Register-ScheduledJob başlatabilirsiniz.
İş seçenekleri, zamanlanmış bir işi çalıştırma koşullarını ayarlayın. Zamanlanan her işin bir iş seçenekleri nesnesi vardır. İş seçenekleri nesneleri oluşturabilir ve düzenleyebilir ve bunları bir veya daha fazla zamanlanmış işe eklersiniz.
Zamanlanan 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.
Zamanlanan işler diske kaydedilir ve yerine cmdlet Register fiilini New kullanır. XML dosyaları dizininde yerel bilgisayarda $home\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs 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 kaydedilemiyor. İlişkili olduğu her zamanlanmış işin zamanlanmış iş XML'sinde kaydedilirler.
Zamanlanmış işler, iş tetikleyicileri ve iş seçenekleri PowerShell'de nesne olarak görüntülenir. Nesneler birbirine bağlıdır ve bu sayede komutları ve betikleri kolayca keşfedebilir ve kullanabilirler.
Zamanlanan işler ScheduledJobDefinition nesneleri olarak görünür. ScheduledJobDefinition nesnesi, zamanlanan işin iş tetikleyicilerini ve iş seçeneklerini içeren Options özelliğini içeren jobTriggers özelliğine sahiptir. Sırasıyla iş tetikleyicilerini ve iş seçeneklerini temsil eden ScheduledJobTriggers ve ScheduledJobOptions nesneleri, ilişkili olduğu zamanlanmış işi içeren bir JobDefinition özelliğine sahiptir. Bu otomatik bağlantı, zamanlanmış bir işin tetikleyicilerini ve seçeneklerini bulmayı ve herhangi bir iş tetikleyicisi ya da iş seçeneğinin ilişkili olduğu zamanlanmış işi bulmayı, betikle görüntülemeyi kolaylaştırır.
Ayrıca bkz.
about_Scheduled_Jobs_Troubleshooting
PSScheduledJob modülü cmdlet'leri