Set-JobTrigger

Zamanlanmış işin iş tetikleyicisini değiştirir.

Syntax

Set-JobTrigger
   [-InputObject] <ScheduledJobTrigger[]>
   [-DaysInterval <Int32>]
   [-WeeksInterval <Int32>]
   [-RandomDelay <TimeSpan>]
   [-At <DateTime>]
   [-User <String>]
   [-DaysOfWeek <DayOfWeek[]>]
   [-AtStartup]
   [-AtLogOn]
   [-Once]
   [-RepetitionInterval <TimeSpan>]
   [-RepetitionDuration <TimeSpan>]
   [-RepeatIndefinitely]
   [-Daily]
   [-Weekly]
   [-PassThru]
   [<CommonParameters>]

Description

Cmdlet, Set-JobTrigger zamanlanmış işlerin iş tetikleyicilerinin özelliklerini değiştirir. İşlerin başlangıç saatini veya sıklığını değiştirmek veya zaman tabanlı zamanlamalardan bir oturum açma veya başlatma tarafından tetiklenen zamanlamalara geçmek için kullanabilirsiniz.

İş tetikleyicisi, zamanlanmış bir işi başlatmak için yinelenen bir zamanlamayı veya koşulları tanımlar. İş tetikleyicileri diske kaydedilmese de, diske kaydedilen zamanlanmış işlerin iş tetikleyicilerini değiştirebilirsiniz.

Zamanlanmış işin iş tetikleyicisini değiştirmek için, zamanlanmış bir işin iş tetikleyicisini almak için cmdlet'ini kullanarak Get-JobTrigger başlayın. Ardından tetikleyiciyi öğesine yöneltin Set-JobTrigger veya bir değişkene kaydedin ve tetikleyiciyi tanımlamak için cmdlet'inSet-JobTrigger InputObject parametresini kullanın. İş tetikleyicisini değiştirmek için öğesinin kalan parametrelerini Set-JobTrigger kullanın.

günlük veya haftalık bir tetikleyiciden AtLogon tetikleyicisine iş tetikleyicisini değiştirme gibi bir iş tetikleyicisinin türünü değiştirdiğinizde, özgün tetikleyici özellikleri silinir. Ancak tetikleyicinin değerlerini değiştirirseniz ancak türünü değiştirirseniz (haftalık tetikleyicideki günleri değiştirme gibi) yalnızca belirttiğiniz özellikler değiştirilir. Özgün iş tetikleyicisinin diğer tüm özellikleri korunur.

Set-JobTrigger, Windows PowerShell'de yer alan PSScheduledJob modülündeki iş zamanlama cmdlet'lerinden oluşan bir koleksiyondan biridir.

Zamanlanmış İşler hakkında daha fazla bilgi için PSScheduledJob modülündeki Hakkında konularına bakın. PSScheduledJob modülünü içeri aktarın ve şunu yazın: Get-Help about_Scheduled* veya bkz. about_Scheduled_Jobs.

Bu cmdlet, Windows PowerShell 3.0'da sunulmuştur.

Örnekler

Örnek 1: İş tetikleyicisindeki günleri değiştirme

Bu örnekte, haftalık iş tetikleyicisindeki günlerin nasıl değiştir olduğu gösterilmektedir.

Get-JobTrigger -Name "DeployPackage"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Saturday}   True

Get-JobTrigger -Name "DeployPackage" | Set-JobTrigger -DaysOfWeek "Wednesday", "Sunday" -Passthru

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Weekly          9/29/2011 12:00:00 AM  {Wednesday, Sunday}     True

İlk komut, zamanlanan işin iş tetikleyicisini almak için cmdlet'ini DeployPackage kullanırGet-JobTrigger. Çıktı, tetikleyicinin işi çarşamba ve cumartesi günleri gece yarısı başlattığını gösterir.

İkinci komut, Get-JobTrigger zamanlanmış işin iş tetikleyicisini almak için cmdlet'ini DeployPackage kullanır. İşlem hattı işleci (|), tetikleyiciyi cmdlet'ine Set-JobTrigger gönderir ve bu da işi Çarşamba ve Pazar günleri başlatacak şekilde iş tetikleyicisini DeployPackage değiştirir. Komut, değişiklikten sonra tetikleyiciyi döndürmek için Passthru parametresini kullanır.

Bu komut gerekli değildir; yalnızca tetikleyici değişikliğinin etkisini göstermek için dahil edilir.

Örnek 2: İş tetikleyici türünü değiştirme

Bu örnekte, bir işi başlatan iş tetikleyicisinin türünü değiştirme işlemi gösterilmektedir. Bu örnekteki komutlar, bir AtStartup iş tetikleyicisini haftalık tetikleyiciyle değiştirir.

Get-JobTrigger -Name "Inventory"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          AtStartup                                                      True

Get-JobTrigger -Name "Inventory" -TriggerID 2 | Set-JobTrigger -Weekly -WeeksInterval 4 -DaysOfWeek Monday -At "12:00 AM"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           9/27/2011 11:00:00 PM                          True
2          Weekly          10/31/2011 12:00:00 AM {Monday}                True

İlk komut, zamanlanan işin iş tetikleyicisini almak için cmdlet'ini Inventory kullanırGet-JobTrigger. Çıktı, işin günde iki tetikleyicisi ve AtStartup tetikleyicisi olduğunu gösterir.

İkinci komut, Get-JobTrigger işin AtStartup iş tetikleyicisini almak için cmdlet'ini Inventory kullanır. Komut, iş tetikleyicisini tanımlamak için TriggerID parametresini kullanır. İşlem hattı işleci (|), iş tetikleyicisini cmdlet'ine Set-JobTrigger gönderir ve bu da bunu Pazartesi gece yarısı dört haftada bir çalıştırılan haftalık iş tetikleyicisi olarak değiştirir. Komut, değişiklikten sonra tetikleyiciyi döndürmek için Passthru parametresini kullanır.

Bu komut gerekli değildir; yalnızca tetikleyici değişikliğinin etkisini göstermek için dahil edilir.

Örnek 3: Uzak iş tetikleyicisinde kullanıcıyı değiştirme

Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ScheduledJob | Get-JobTrigger | Where-Object {$_.User} | Set-JobTrigger -User "Domain01/Admin02"}

Bu komut, Server01 bilgisayarındaki zamanlanmış işlerin tüm AtLogon işi tetikleyicilerindeki kullanıcıyı değiştirir.

komutu, Server01 bilgisayarında bir komut çalıştırmak için cmdlet'ini kullanır Invoke-Command .

Uzak komut, bilgisayardaki tüm zamanlanmış işleri alan bir Get-ScheduledJob komutla başlar. Zamanlanan işler, zamanlanmış işlerin iş tetikleyicilerini alan cmdlet'ine iletilir Get-JobTrigger . Her iş tetikleyicisi, zamanlanmış işi içeren bir JobDefinition özelliği içerir, bu nedenle tetikleyici, değiştirildiğinde bile zamanlanmış işle ilişkili kalır.

İş tetikleyicileri, User özelliğine Where-Object sahip iş tetikleyicilerini alan cmdlet'ine iletilir. Seçilen iş tetikleyicileri cmdlet'ine Set-JobTrigger geçirilir ve bu da kullanıcıyı olarak Domain01\Admin02değiştirir.

Örnek 4: Birçok iş tetikleyicisinin birini değiştirme

Get-JobTrigger -Name "SecurityCheck"

Id         Frequency       Time                   DaysOfWeek              Enabled
--         ---------       ----                   ----------              -------
1          Daily           4/24/2013 3:00:00 AM                           True
2          Weekly          4/24/2013 4:00:00 PM   {Sunday}                True
3          Once            4/24/2013 4:00:00 PM                           True

Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *

At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:00:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Get-JobTrigger -Name "SecurityCheck" -TriggerId 3 | Set-JobTrigger -RepetitionInterval (New-TimeSpan -Minutes 90)
Get-JobTrigger -Name "SecurityCheck" -TriggerID 3 | Format-List -Property *

At                 : 4/24/2012 4:00:00 PM
DaysOfWeek         :
Interval           : 1
Frequency          : Once
RandomDelay        : 00:00:00
RepetitionInterval : 01:30:00
RepetitionDuration : 1.00:00:00
User               :
Id                 : 3
Enabled            : True
JobDefinition      : Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Bu örnekteki komutlar, zamanlanmış işin Bir kez iş tetikleyicisinin SecurityCheck yineleme aralığını her 60 dakikadan 90 dakikaya değiştirir. SecurityCheck Zamanlanan işin üç iş tetikleyicisi vardır, bu nedenle komutlar değiştirilen iş tetikleyicisini tanımlamak için cmdlet'in Get-JobTriggerTriggerId parametresini kullanır.

İlk komut, Get-JobTrigger zamanlanmış işin tüm iş tetikleyicilerini almak için cmdlet'ini SecurityCheck kullanır. İş tetikleyicilerinin kimliklerini görüntüleyen çıktı, bir kez iş tetikleyicisinin 3kimliğine sahip olduğunu gösterir.

İkinci komut, zamanlanan işin Bir kez tetikleyicisini almak için cmdlet'in TriggerID parametresini Get-JobTriggerSecurityCheck kullanır. Komut tetikleyiciyi cmdlet'ine Format-List aktarır ve bu cmdlet, Bir kez iş tetikleyicisinin tüm özelliklerini görüntüler. Çıktı, tetikleyicinin işi bir gün boyunca saatte bir (RepetitionInterval 1 saat) başlattığını gösterir (RepetitionDuration 1 gündür).

Üçüncü komut, iş tetikleyicisinin yineleme aralığını bir saatten 90 dakikaya değiştirir. Komut herhangi bir çıkış döndürmez.

Dördüncü komut, değişikliğin etkisini görüntüler. Çıktı, tetikleyicinin işi bir gün boyunca her 90 dakikada bir (RepetitionInterval 1 saat, 30 dakikadır) başlattığını gösterir (RepetitionDuration 1 gündür).

Parametreler

-At

İşi belirtilen tarih ve saatte başlatır. Cmdlet'in döndürdüğü Get-Date gibi bir DateTime nesnesi veya , 12/31/2013 9:00 PMveya 3amgibi April 19, 2012 15:00bir saate dönüştürülebilecek bir dize girin.

DateTime nesnesinin saniye gibi bir öğesini belirtmezseniz, iş tetikleyicisinin bu öğesi değiştirilmez. Özgün iş tetikleyicisi bir DateTime nesnesi içermiyorsa ve bir öğeyi atlarsanız, iş tetikleyicisi geçerli tarih ve saatten ilgili öğeyle oluşturulur.

Once parametresini kullanırken At parametresinin değerini belirli bir tarih ve saate ayarlayın. DateTime nesnesindeki varsayılan tarih geçerli tarih olduğundan, açık bir tarih olmadan geçerli saatten önceki bir saat ayarlandığında geçmişteki bir saat için iş tetikleyicisi elde edilir.

DateTime nesneleri ve DateTime nesnelerine dönüştürülen dizeler, Denetim Masası'da Bölge ve Dil'de yerel bilgisayar için seçilen tarih ve saat biçimleriyle uyumlu olacak şekilde otomatik olarak ayarlanır.

Type:DateTime
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-AtLogOn

Belirtilen kullanıcılar bilgisayarda oturum açtığında zamanlanmış işi başlatır. Kullanıcı belirtmek için User parametresini kullanın.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-AtStartup

Windows başlatıldığında zamanlanmış işi başlatır.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Daily

Yinelenen günlük iş zamanlamasını belirtir. Zamanlama ayrıntılarını belirtmek için Günlük parametre kümesindeki diğer parametreleri kullanın.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-DaysInterval

Günlük zamanlamadaki oluşumlar arasındaki gün sayısını belirtir. Örneğin, değeri 3 zamanlanmış işi , ve 7 günlerinde 14başlatır. 1 varsayılan değerdir.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-DaysOfWeek

Haftalık zamanlanmış işin çalıştığı haftanın günlerini belirtir. Pazar'ı temsil eden , , tamsayılar 0-6gibi Mondaygün adlarını veya her günü temsil edecek bir yıldız işareti (*) girin. Thursday0 Bu parametre Haftalık parametre kümesinde gereklidir.

Gün adları, iş tetikleyicisindeki tamsayı değerlerine dönüştürülür. Bir komutta gün adlarını tırnak içine aldığınızda, her gün adını gibi "Monday", "Tuesday"ayrı tırnak içine alın. Birden çok gün adını tek tırnak işareti çifti içine alırsanız, karşılık gelen tamsayı değerleri toplanır. Örneğin, "Monday, Tuesday" (1 + 2) sonucu (3 olur Wednesday .

Type:DayOfWeek[]
Accepted values:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

İş tetikleyicilerini belirtir. ScheduledJobTrigger nesnelerini içeren bir değişken girin veya bir komut gibi ScheduledJobTrigger nesnelerini alan bir Get-JobTrigger komut veya ifade yazın. ScheduledJobTrigger nesnesini öğesine Set-JobTriggerde yöneltebilirsiniz.

Birden çok iş tetikleyicisi belirtirseniz, Set-JobTrigger tüm iş tetikleyicilerinde aynı değişiklikleri yapar.

Type:Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Once

Yinelenmeyen (bir kerelik) bir zamanlama belirtir.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Değişen iş tetikleyicilerini döndürür. Varsayılan olarak bu cmdlet herhangi bir çıktı üretmez.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RandomDelay

Zamanlanan başlangıç saatinde başlayan rastgele bir gecikmeyi etkinleştirir ve maksimum gecikme değerini ayarlar. Gecikmenin uzunluğu her başlangıç için rastgele olarak ayarlanır ve gecikme olmamasından bu parametrenin değeriyle belirtilen zamana kadar değişir. Varsayılan değer olan sıfır ()00:00:00 rastgele gecikmeyi devre dışı bırakır.

Cmdlet tarafından New-TimeSpan döndürülen gibi bir zaman aralığı nesnesi girin veya otomatik olarak zaman aralığı nesnesine dönüştürülen biçimde bir değer <hours>:<minutes>:<seconds> girin.

Type:TimeSpan
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RepeatIndefinitely

Windows PowerShell 4.0'dan başlayarak kullanılabilen bu parametre, zamanlanmış bir işi süresiz bir süre boyunca tekrar tekrar çalıştırmak üzere RepetitionDuration parametresi için bir TimeSpan.MaxValue değeri belirtme gereksinimini ortadan kaldırır.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionDuration

Belirtilen süre dolana kadar işi yineler. Yineleme sıklığı, RepetitionInterval parametresinin değeriyle belirlenir. Örneğin, RepetitionInterval değeri 5 dakika ve RepetitionDuration değeri 2 saat ise, iş iki saat boyunca beş dakikada bir tetikler.

Cmdlet'in döndürdüğü New-TimeSpan bir zaman aralığı nesnesi veya gibi bir zaman aralığı nesnesine dönüştürülebilen bir dize gibi 1:05:30bir zaman aralığı nesnesi girin.

Bir işi süresiz olarak çalıştırmak için bunun yerine RepeatIndefinitely parametresini ekleyin.

İş tetikleyicisi yineleme süresi dolmadan önce işi durdurmak için RepetitionDuration değerini sıfır (0 olarak ayarlayın.

Bir Kez iş tetikleyicisinin yineleme süresini veya yineleme aralığını değiştirmek için komutun hem RepetitionInterval hem de RepetitionDuration parametrelerini içermesi gerekir. Diğer iş tetikleyicisi türlerinin yineleme süresini veya yineleme aralıklarını değiştirmek için komutun Once, At, RepetitionInterval ve RepetitionDuration parametrelerini içermesi gerekir.

Type:TimeSpan
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RepetitionInterval

İşi belirtilen zaman aralığında tekrarlar. Örneğin, bu parametrenin değeri 2 saat ise, iş her iki saatte bir tetikler. Varsayılan değer olan 0, işi yinelemez.

Cmdlet'in döndürdüğü New-TimeSpan bir zaman aralığı nesnesi veya gibi bir zaman aralığı nesnesine dönüştürülebilen bir dize gibi 1:05:30bir zaman aralığı nesnesi girin.

Bir Kez iş tetikleyicisinin yineleme süresini veya yineleme aralığını değiştirmek için komutun hem RepetitionInterval hem de RepetitionDuration parametrelerini içermesi gerekir. Diğer iş tetikleyicisi türlerinin yineleme süresini veya yineleme aralıklarını değiştirmek için komutun Once, At, RepetitionInterval ve RepetitionDuration parametrelerini içermesi gerekir.

Type:TimeSpan
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-User

Zamanlanmış bir işin AtLogon başlangıcını tetikleyen kullanıcıları belirtir. Bir kullanıcının <UserName> adını girin veya <Domain>\<Username> biçimlendirin ya da tüm kullanıcıları temsil etmek için bir yıldız işareti (*) girin. Varsayılan değer tüm kullanıcılardır.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Weekly

Yinelenen haftalık iş zamanlamasını belirtir. Zamanlama ayrıntılarını belirtmek için Haftalık parametre kümesindeki diğer parametreleri kullanın.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-WeeksInterval

Haftalık bir iş zamanlaması üzerindeki oluşumlar arasındaki hafta sayısını belirtir. Örneğin, değeri 3 zamanlanmış işi haftalar 1, 4vb 7 . başlar. 1 varsayılan değerdir.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Girişler

Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

Bir iş tetikleyicisini bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

None

Varsayılan olarak, bu cmdlet çıkış döndürmez.

Microsoft.PowerShell.ScheduledJob.ScheduledJobTrigger

PassThru parametresini kullandığınızda, bu cmdlet değiştirdiği iş tetikleyicilerini döndürür.

Notlar

  • İş tetikleyicileri, bunları zamanlanmış işle ilişkilendiren bir JobDefinition özelliğine sahiptir. Zamanlanmış bir işin iş tetikleyicisini değiştirdiğinizde, iş değiştirilir. Değiştirilen tetikleyiciyi zamanlanmış işe uygulamak için bir Set-ScheduledJob komut kullanmanız gerekmez.