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 karmasıdır.

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-Jobve Receive-Jobgibi Start-Jobiş 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.

Ayrıca, zamanlanmış iş örneklerinin sonuçları diske kolayca erişilebilir bir biçimde kaydedilir ve çalışan bir iş çıkışı günlüğü sağlar. 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çlar, 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 kullanıma sunulmuştur 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

cmdlet'i Get-ScheduledJob yerel bilgisayardaki zamanlanmış işleri alır.

Get-ScheduledJob
Id         Name            Triggers        Command            Enabled
--         ----            --------        -------            -------
7          ProcessJob      {1}             Get-Process        True

Get-JobTriggerProcessJob'un 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'un StopIfGoingOnBatteries özelliğini False olarak değiştirmek için cmdlet'in ContinueIfGoingOnBattery parametresi kullanılır.Set-ScheduledJob

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'i Get-ScheduledJob ProcessJob zamanlanmış işini alır.

Get-ScheduledJob ProcessJob
Id         Name            Triggers        Command        Enabled
--         ----            --------        -------        -------
7          ProcessJob      {1}             Get-Process    True

cmdlet'i, 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 çıktıları zamanlanan iş dizininin çıkış dizinine kaydedilmez.

Start-Job -DefinitionName ProcessJob

Cmdlet, 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. bir iş tetikleyicisi bir kerelik veya yinelenen bir zamanlama içerebilir ya da bir kullanıcı oturum açtığında veya Windows başlatıldığında olduğu 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 cmdletveya 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.

Zamanlanan işler diske kaydedilir ve yerine Newcmdlet fiilini Registerkullanır. XML dosyaları dizinindeki $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobsyerel 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 nesneler olarak görünür. Nesneler birbirine bağlanarak komutlarda ve betiklerde bulunmasını ve kullanılmasını kolaylaştırır.

Zamanlanan 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. İş tetikleyicilerini ve iş seçeneklerini temsil eden ScheduledJobTriggers ve ScheduledJobOptions nesnelerinin her biri, 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.

Ayrıca bkz.