about_Scheduled_Jobs_Basics
Kısa açıklama
Zamanlanmış işlerin nasıl oluşturulacağını ve yönetileceğini açıklar.
Uzun açıklama
Bu belgede, zamanlanmış işleri oluşturma ve yönetmeyle ilgili temel görevlerin nasıl gerçekleştirilmesi gösterilmektedir. Daha gelişmiş görevler hakkında daha fazla bilgi için bkz . about_Scheduled_Jobs_Advanced.
PSScheduledJob modülünde yer alan cmdlet'ler hakkında daha fazla bilgi için bkz. PSScheduledJob.
Zamanlanmış iş oluşturma
Zamanlanmış iş oluşturmak için cmdlet'ini Register-ScheduledJob
kullanın. Cmdlet bir ad ve işin çalıştırıldığı komutlar veya betik gerektirir. RunNow parametresini ekleyerek işi hemen çalıştırabilir veya bir iş tetikleyicisi oluşturabilir ve işi oluştururken iş seçeneklerini ayarlayabilir veya var olan bir işi düzenleyebilirsiniz.
Betik çalıştıran bir iş oluşturmak için FilePath parametresini kullanarak betik dosyasının yolunu belirtin. Komutları çalıştıran bir iş oluşturmak için ScriptBlock parametresini kullanın.
cmdlet'i Register-ScheduledJob
bir Get-Process
komut çalıştıran ProcessJob'ı oluşturur. Bu zamanlanmış işin varsayılan iş seçenekleri vardır ve iş tetikleyicisi yoktur.
Register-ScheduledJob -Name ProcessJob -ScriptBlock { Get-Process }
Id Name Triggers Command Enabled
-- ---- -------- ------- -------
8 ProcessJob {} Get-Process True
İş tetikleyicisi oluşturma
İş tetikleyicileri zamanlanmış işi otomatik olarak başlatır. İş tetikleyicisi, bir kullanıcı oturum açtığında veya Windows başlatıldığında olduğu gibi bir kerelik veya yinelenen zamanlama ya da olay olabilir. Her işin sıfır, bir veya birden çok iş tetikleyicisi olabilir.
İş tetikleyicisi oluşturmak için cmdlet'ini New-JobTrigger
kullanın. Aşağıdaki komut, her Pazartesi ve Perşembe saat 05:00'te bir iş başlatan bir iş tetikleyicisi oluşturur.
komutu, iş tetikleyicisini değişkene $T
kaydeder.
$T = New-JobTrigger -Weekly -DaysOfWeek "Monday", "Thursday" -At "5:00 AM"
İş tetikleyicileri isteğe bağlıdır. Komutunuz Register-ScheduledJob
için RunNow parametresini ekleyerek veya cmdlet'leri kullanarak Start-Job
zamanlanmış bir işi istediğiniz zaman başlatabilirsiniz.
İş tetikleyicisi ekleme
Zamanlanmış bir işe iş tetikleyicisi eklediğinizde, iş tetikleyicisi zamanlanan işin zamanlanmış iş XML dosyasına eklenir ve zamanlanan işin bir parçası olur.
Zamanlanmış işi oluştururken zamanlanmış bir işe iş tetikleyicisi ekleyebilir veya var olan bir işi düzenleyebilirsiniz. Zamanlanmış bir işin iş tetikleyicisini istediğiniz zaman değiştirebilirsiniz.
PowerShell, Görev Zamanlayıcı'nın kullandığı aynı iş tetikleyicilerinden bazılarını kullanır. İş tetikleyicileri hakkında ayrıntılı bilgi için New-JobTrigger cmdlet'inin yardım konusuna bakın.
Aşağıdaki örnek, cmdlet'e geçirilen parametre değerleri olan değerleri oluşturmak $JobParms
için Register-ScheduledJob
splatting kullanır. Daha fazla bilgi için bkz . about_Splatting.md.
Register-ScheduledJob
Zamanlanmış iş oluşturmak için kullanılanlar@JobParms
. Değişkende iş tetikleyicisini belirtmek için Trigger parametresini $T
kullanır.
$JobParms = @{
Name = "ProcessJob"
ScriptBlock = {Get-Command}
Trigger = $T
}
Register-ScheduledJob @JobParms
Ayrıca, istediğiniz zaman mevcut bir zamanlanmış işe iş tetikleyicisi de ekleyebilirsiniz. cmdlet değişkenindeki Add-JobTrigger
iş tetikleyicisini $T
ProcessJob zamanlanmış işine ekler.
Add-JobTrigger -Name ProcessJob -Trigger $T
Sonuç olarak, iş tetikleyicisi ProcessJob'ı her Pazartesi ve Perşembe saat 05:00'te otomatik olarak başlatır.
İş tetikleyicisi alma
Zamanlanmış bir işin iş tetikleyicisini almak için cmdlet'ini Get-JobTrigger
kullanın. İş tetikleyicisini değil zamanlanmış işi belirtmek için Ad, Kimlik ve InputObject parametrelerini kullanın.
Get-JobTrigger
ProcessJob'un iş tetikleyicisini alır.
Get-JobTrigger -Name ProcessJob
Id Frequency Time DaysOfWeek Enabled
-- --------- ---- ---------- -------
1 Weekly 11/7/2011 5:00:00 AM {Monday, Thursday} True
İş seçenekleri oluşturma
İş seçenekleri, işi başlatmak ve çalıştırmak için koşullar oluşturur. Siz değiştirmediğiniz sürece her işin varsayılan iş seçenekleri vardır. İş seçenekleri bir işin zamanlanan zamanda çalışmasını engelleyebileceğinden, iş seçeneklerini anlamak ve bunları dikkatle kullanmak önemlidir.
PowerShell, Görev Zamanlayıcı'nın kullandığı iş seçeneklerini kullanır. İş seçenekleri hakkında ayrıntılı bilgi için New-ScheduledJobOption yardım konusuna bakın.
İş seçenekleri zamanlanmış iş XML dosyasında depolanır. Zamanlanmış bir iş oluştururken iş seçeneklerini ayarlayabilir veya istediğiniz zaman değiştirebilirsiniz.
Cmdlet, New-ScheduledJobOption
WakeToRun zamanlanmış iş seçeneğinin True olarak ayarlandığı zamanlanmış bir iş seçeneği oluşturur. Bilgisayar zamanlanan başlangıç zamanında Uyku veya Hazırda Beklet durumunda olsa bile WakeToRun seçeneği zamanlanmış işi çalıştırır. komutu, iş seçeneklerini değişkene $O
kaydeder.
$O = New-ScheduledJobOption -WakeToRun
İş seçeneklerini alma
Zamanlanmış işin iş seçeneklerini almak için cmdlet'ini Get-ScheduledJobOption
kullanın. İş seçeneklerini değil zamanlanmış işi belirtmek için Name, ID ve InputObject parametrelerini kullanın.
Get-ScheduledJobOption
ProcessJob'un iş seçeneklerini alır.
Get-ScheduledJobOption -Name ProcessJob
StartIfOnBatteries : False
StopIfGoingOnBatteries : True
WakeToRun : False
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
İş seçeneklerini değiştirme
Zamanlanmış bir iş oluştururken veya var olan bir işi düzenlerken zamanlanmış işin iş seçeneklerini değiştirebilirsiniz.
Splatted $JobParms
, işlem işini oluşturmak için Add-JobTrigger
cmdlet'ine geçirilir. Değişkendeki iş seçeneklerini belirtmek için ScheduledJobOption parametresini $O
kullanır.
$JobParms = @{
Name = "ProcessJob"
ScriptBlock = {Get-Process}
ScheduledJobOption = $O
}
Add-JobTrigger @JobParms
ayrıca, iş seçeneklerini istediğiniz zaman mevcut bir zamanlanmış işle değiştirebilirsiniz.
Aşağıdaki komut, ProcessJob scheduledJob öğesinin WakeToRun seçeneğinin değerini True olarak değiştirmek için cmdlet'ini kullanırSet-ScheduledJobOption
.
Set
CMdlet gibi PSScheduledJob modülündeki Set-ScheduledJobOption
cmdlet'lerde Ad veya Kimlik parametreleri yoktur. InputObject parametresini kullanarak zamanlanmış iş seçeneklerini belirtebilir veya cmdlet'inden Get-ScheduledJobOption
zamanlanmış bir işi öğesine yöneltebilirsinizSet-ScheduledJobOption
.
Bu örnek, ProcessJob'ı almak için cmdlet'ini kullanır Get-ScheduledJob
. processjob içindeki Get-ScheduledJobOption
iş seçeneklerini almak için cmdlet'ini, Set-ScheduledJobOption
ProcessJob içindeki WakeToRun iş seçeneğini True olarak değiştirmek için cmdlet'ini kullanır.
Get-ScheduledJob -Name ProcessJob | Get-ScheduledJobOption |
Set-ScheduledJobOption -WakeToRun
Zamanlanmış iş örneklerini alma
Zamanlanmış bir iş başlatıldığında PowerShell, standart bir PowerShell arka plan işine benzer bir iş örneği oluşturur. gibi iş cmdlet'lerini Get-Job
Stop-Job
Receive-Job
kullanarak iş örneklerini yönetebilirsiniz.
Not
zamanlanmış işlerin örneklerinde iş cmdlet'lerini kullanmak için PSScheduledJob modülü oturuma aktarılmalıdır. PSScheduledJob modülünü içeri aktarmak için, gibi Get-ScheduledJob
herhangi bir zamanlanmış iş cmdlet'ini yazın Import-Module PSScheduledJob
veya kullanın.
PowerShell zamanlanmış işlerinin tüm örneklerini ve tüm etkin standart işleri almak için cmdlet'ini Get-Job
kullanın. cmdlet'i Import-Module
PSScheduledJob modülünü içeri aktarır ve Get-Job
işleri yerel bilgisayarda alır.
Import-Module PSScheduledJob
Get-Job
Get-Job
yerel bilgisayardaki ProcessJob örneklerini alır.
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
Varsayılan görüntü, genellikle aynı zamanlanmış işin örneklerini ayırt eden başlangıç saatini göstermez.
Cmdlet, Get-Job
nesneleri işlem hattına gönderir. cmdlet'i Format-Table
zamanlanmış işin Name, ID ve BeginTime özelliklerini görüntüler.
Get-Job ProcessJob | Format-Table -Property Name, ID, BeginTime
Name Id BeginTime
---- -- ---------
ProcessJob 43 11/2/2011 3:00:02 AM
ProcessJob 44 11/3/2011 3:00:02 AM
ProcessJob 45 11/4/2011 3:00:02 AM
ProcessJob 46 11/5/2011 3:00:02 AM
ProcessJob 47 11/6/2011 3:00:02 AM
ProcessJob 48 11/7/2011 12:00:01 AM
ProcessJob 49 11/7/2011 3:00:02 AM
ProcessJob 50 11/8/2011 3:00:02 AM
Zamanlanmış iş sonuçlarını alma
Zamanlanmış bir işin örneğinin sonuçlarını almak için cmdlet'ini Receive-Job
kullanın.
Not
zamanlanmış işlerin örneklerinde İş cmdlet'lerini kullanmak için PSScheduledJob modülü oturuma aktarılmalıdır. PSScheduledJob modülünü içeri aktarmak için, gibi Get-ScheduledJob
herhangi bir zamanlanmış iş cmdlet'ini yazın Import-Module PSScheduledJob
veya kullanın.
Bu örnek, ProcessJob zamanlanmış işinin (KIMLIK = 51) en yeni örneğinin sonuçlarını alır.
Import-Module PSScheduledJob
Receive-Job -ID 51 -Keep
Zamanlanmış işlerin sonuçları diske kaydedilir, bu nedenle Keep parametresi Receive-Job
gerekli değildir. Ancak Keep parametresi olmadan, zamanlanmış bir işin sonuçlarını her PowerShell oturumunda yalnızca bir kez alabilirsiniz. Yeni bir PowerShell oturumu başlatmak için yeni bir PowerShell penceresi yazın PowerShell
veya açın.
Ayrıca bkz.
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin