Set-ScheduledJob

Zamanlanmış işleri değiştirir.

Syntax

Set-ScheduledJob
   [-Name <String>]
   [-ScriptBlock <ScriptBlock>]
   [-Trigger <ScheduledJobTrigger[]>]
   [-InitializationScript <ScriptBlock>]
   [-RunAs32]
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-ScheduledJobOption <ScheduledJobOptions>]
   [-InputObject] <ScheduledJobDefinition>
   [-MaxResultCount <Int32>]
   [-PassThru]
   [-ArgumentList <Object[]>]
   [-RunNow]
   [-RunEvery <TimeSpan>]
   [<CommonParameters>]
Set-ScheduledJob
   [-Name <String>]
   [-FilePath <String>]
   [-Trigger <ScheduledJobTrigger[]>]
   [-InitializationScript <ScriptBlock>]
   [-RunAs32]
   [-Credential <PSCredential>]
   [-Authentication <AuthenticationMechanism>]
   [-ScheduledJobOption <ScheduledJobOptions>]
   [-InputObject] <ScheduledJobDefinition>
   [-MaxResultCount <Int32>]
   [-PassThru]
   [-ArgumentList <Object[]>]
   [-RunNow]
   [-RunEvery <TimeSpan>]
   [<CommonParameters>]
Set-ScheduledJob
   [-InputObject] <ScheduledJobDefinition>
   [-ClearExecutionHistory]
   [-PassThru]
   [<CommonParameters>]

Description

Set-ScheduledJob Cmdlet, işlerin çalıştırıldığı komutlar veya işi çalıştırmak için gereken kimlik bilgileri gibi zamanlanmış işlerin özelliklerini değiştirir. Zamanlanmış işin yürütme geçmişini temizlemek için de kullanabilirsiniz.

Bu cmdlet'i kullanmak için, zamanlanmış işi almak için cmdlet'ini kullanarak Get-ScheduledJob başlayın. Ardından, zamanlanmış işi bir değişkene yöneltin Set-ScheduledJob veya bir değişkene kaydedin ve işi tanımlamak için InputObject parametresini kullanın. İş özelliklerini değiştirmek veya yürütme geçmişini temizlemek için öğesinin kalan parametrelerini Set-ScheduledJob kullanın.

Zamanlanmış bir işin tetikleyicilerini ve seçeneklerini değiştirmek için kullanabilirsiniz Set-ScheduledJob , Add-JobTriggerancak , Set-JobTriggerve Set-ScheduledJobOption cmdlet'leri bu görevleri gerçekleştirmek için çok daha kolay yollar sağlar. Yeni bir zamanlanmış iş oluşturmak için cmdlet'ini Register-ScheduledJob kullanın.

tetikleyici parametresi, Set-ScheduledJob işi başlatan bir veya daha fazla iş tetikleyicisi ekler. Tetikleyici parametresi isteğe bağlıdır, böylece zamanlanmış işi oluştururken tetikleyici ekleyebilir, daha sonra iş tetikleyicileri ekleyebilir, işi hemen başlatmak için RunNow parametresini ekleyebilir, istediğiniz zaman işi hemen başlatmak için cmdlet'ini kullanabilir Start-Job veya başlatılmamış zamanlanmış işi diğer işler için şablon olarak kaydedebilirsiniz.

Set-ScheduledJob , Windows PowerShell'de bulunan PSScheduledJob modülündeki iş zamanlama cmdlet'leri koleksiyonundan biridir.

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

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

Örnekler

Örnek 1: bir işin çalıştırdığını betiği değiştirme

Bu örnek, zamanlanmış bir işte çalıştırılan betiğin nasıl değiştirildiğini gösterir.

Get-ScheduledJob -Name "Inventory"

Id         Name            Triggers        Command                                  Enabled
--         ----            --------        -------                                  -------
1          Inventory       {1}             C:\Scripts\Get-Inventory.ps1             True

Get-ScheduledJob -Name "Inventory" | Set-ScheduledJob -FilePath "C:\Scripts\Get-FullInventory.ps1" -Passthru

Id         Name            Triggers        Command                                  Enabled
--         ----            --------        -------                                  -------
1          Inventory       {1}             C:\Scripts\Get-FullInventory.ps1         True

İlk komut, Stok zamanlanmış işini almak için cmdlet'ini kullanır Get-ScheduledJob . Çıktı, işin Get-Inventory.ps1 betiğini çalıştırdığını gösterir.

İkinci komut, Stok zamanlanmış işini almak için cmdlet'ini kullanır Get-ScheduledJob . İşlem hattı işleci (|), zamanlanmış işi cmdlet'ine Set-ScheduledJob gönderir. cmdlet'iSet-ScheduledJob, yeni bir betik Get-FullInventory.ps1belirtmek için Script parametresini kullanır. Komut, değişiklikten sonra zamanlanmış işi döndürmek için Passthru parametresini kullanır.

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

Örnek 2: Zamanlanmış işin yürütme geçmişini silme

Bu örnek, zamanlanmış bir işin geçerli yürütme geçmişini ve kaydedilen iş sonuçlarını siler.

Get-ScheduledJob BackupArchive | Set-ScheduledJob -ClearExecutionHistory

Komut, BackupArchive zamanlanmış işini almak için cmdlet'ini kullanır Get-ScheduledJob . İşlem hattı işleci (|), işi değiştirmek için Set-ScheduledJob cmdlet'e gönderir. cmdlet'iSet-ScheduledJob, yürütme geçmişini ve kaydedilen sonuçları silmek için ClearExecutionHistory parametresini kullanır.

Zamanlanmış işlerin yürütme geçmişi ve kaydedilen iş sonuçları hakkında daha fazla bilgi için bkz . about_Scheduled_Jobs.

Örnek 3: Uzak bilgisayarda zamanlanmış işleri değiştirme

Bu komut, uzak bilgisayarlardaki tüm zamanlanmış işlerde başlatma betiğini değiştirir.

Invoke-Command -Computer "Server01, Server02" -ScriptBlock {Get-ScheduledJob |
    Set-ScheduledJob -InitializationScript \\SrvA\Scripts\SetForRun.ps1}

komutu, Cmdlet'ini Invoke-Command kullanarak Server01 ve Server02 bilgisayarlarında bir komut çalıştırır.

Uzak komut, bilgisayardaki tüm zamanlanmış işleri alan bir Get-ScheduledJob komutla başlar. Zamanlanan işler cmdlet'ine Set-ScheduledJob geçirilir ve bu da başlatma betiğini olarak SetForRun.ps1değiştirir.

Parametreler

-ArgumentList

FilePath parametresi tarafından belirtilen betiğin parametrelerinin veya ScriptBlock parametresi tarafından belirtilen komutun değerlerini belirtir.

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

Kullanıcının kimlik bilgilerini doğrulamak için kullanılan mekanizmayı belirtir. Bu parametrenin kabul edilebilir değerleri şunlardır:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Varsayılan değer şudur: Default. Bu parametrenin değerleri hakkında daha fazla bilgi için bkz . PowerShell SDK'sında AuthenticationMechanism Numaralandırması .

Dikkat

Kullanıcının kimlik bilgilerinin kimlik doğrulaması için uzak bir bilgisayara geçirildiği Kimlik Bilgisi Güvenlik Destek Sağlayıcısı (CredSSP) kimlik doğrulaması, uzak ağ paylaşımına erişme gibi birden fazla kaynakta kimlik doğrulaması gerektiren komutlar için tasarlanmıştır. Bu mekanizma, uzak işlemin güvenlik riskini artırır. Uzak bilgisayarın güvenliği aşılırsa, bu bilgisayara geçirilen kimlik bilgileri ağ oturumunu denetlemek için kullanılabilir.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ClearExecutionHistory

Geçerli yürütme geçmişini ve zamanlanan işin kaydedilen sonuçlarını siler.

İş yürütme geçmişi ve iş sonuçları, işin oluşturulduğu bilgisayardaki dizinde $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs zamanlanmış iş ile birlikte kaydedilir. Yürütme geçmişini görmek için cmdlet'ini Get-Job kullanın. İş sonuçlarını almak için cmdlet'ini Receive-Job kullanın.

Bu parametre, Görev Zamanlayıcı'nın Windows olay günlüklerine yazdığı olayları etkilemez ve Windows PowerShell'in iş sonuçlarını kaydetmesini durdurmaz. Kaydedilen iş sonuçlarının sayısını yönetmek için MaxResultCount parametresini kullanın.

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

-Credential

Zamanlanmış işi çalıştırma izni olan bir kullanıcı hesabı belirtir. Varsayılan, mevcut kullanıcıdır.

User01 veya Domain01\User01 gibi bir kullanıcı adı yazın veya cmdlet'indeki Get-Credential gibi bir PSCredential nesnesi girin. Yalnızca bir kullanıcı adı girerseniz parola girmeniz istenir.

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

-FilePath

Zamanlanan işin çalıştırıldığı bir betik belirtir. Yerel bilgisayardaki bir .ps1 dosyasının yolunu girin. Betik parametreleri için varsayılan değerleri belirtmek için ArgumentList parametresini kullanın. Zamanlanan her işin bir ScriptBlock veya FilePath değeri olmalıdır.

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

-InitializationScript

Windows PowerShell betiğinin (.ps1 ) tam yolunu belirtir. Başlatma betiği, ScriptBlock parametresi veya FilePath parametresi tarafından belirtilen betik tarafından belirtilen komutlar öncesinde arka plan işi için oluşturulan oturumda çalışır. Dosyaları, işlevleri veya diğer adları ekleme, dizin oluşturma veya önkoşulları denetleme gibi oturumu yapılandırmak için başlatma betiğini kullanabilirsiniz.

Birincil iş komutlarını çalıştıran bir betik belirtmek için FilePath parametresini kullanın.

Başlatma betiği sonlandırılmayan bir hata da dahil olmak üzere bir hata oluşturursa, zamanlanan işin geçerli örneği çalışmaz ve durumu Başarısız olur.

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

-InputObject

Değiştirilecek zamanlanmış işi belirtir. ScheduledJobDefinition nesnelerini içeren bir değişken girin veya komut gibi ScheduledJobDefinition nesnelerini alan bir Get-ScheduledJob komut veya ifade yazın. ScheduledJobDefinition nesnesini öğesine Set-ScheduledJobde yöneltebilirsiniz.

Birden çok zamanlanmış iş belirtirseniz, Set-ScheduledJob tüm işlerde aynı değişiklikleri yapar.

Type:Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-MaxResultCount

Zamanlanan iş için kaç iş sonucu girişinin tutuldu olduğunu belirtir. Varsayılan değer 32'dir.

Windows PowerShell, diskte zamanlanmış işin tetiklenen her örneğinin yürütme geçmişini ve sonuçlarını kaydeder. Bu parametrenin değeri, bu zamanlanmış iş için kaydedilen iş örneği sonuçlarının sayısını belirler. İş örneği sonuçlarının sayısı bu değeri aştığında, Windows PowerShell en yeni iş örneğinin sonuçlarına yer açmak için en eski iş örneğinin sonuçlarını siler.

İş yürütme geçmişi ve iş sonuçları $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs\<JobName>\Output\<Timestamp> dizinini seçin. Yürütme geçmişini görmek için cmdlet'ini Get-Job kullanın. İş sonuçlarını almak için cmdlet'ini Receive-Job kullanın.

MaxResultCount parametresi, zamanlanan işin ExecutionHistoryLength özelliğinin değerini ayarlar.

Geçerli yürütme geçmişini ve iş sonuçlarını silmek için ClearExecutionHistory parametresini kullanın.

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

-Name

Zamanlanan iş ve zamanlanmış işin örnekleri için yeni bir ad belirtir. Ad yerel bilgisayarda benzersiz olmalıdır.

Değiştirilecek zamanlanmış işi tanımlamak için InputObject parametresini kullanın veya zamanlanmış işi öğesinden Get-ScheduledJob adresine yöneltinSet-ScheduledJob.

Bu parametre disk üzerindeki iş örneklerinin adlarını değiştirmez. Yalnızca bu komut tamamlandıktan sonra başlatılan iş örneklerini etkiler.

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

-PassThru

Üzerinde çalıştığınız öğeyi temsil eden bir nesne döndürür. Varsayılan olarak, bu cmdlet herhangi bir çıkış oluşturmaz.

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

-RunAs32

Zamanlanmış işi 32 bitlik bir işlemde çalıştırır.

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

-RunEvery

İşin ne sıklıkta çalıştırılacağını belirtmek için kullanılır. Örneğin, bir işi 15 dakikada bir çalıştırmak için bu seçeneği kullanın.

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

-RunNow

Cmdlet çalıştırılır çalıştırılmaz Set-ScheduledJob hemen bir iş başlatır. Bu parametre, kayıt sonrasında bir Windows PowerShell betiğini çalıştırmak için Görev Zamanlayıcı'yı tetikleme gereksinimini ortadan kaldırır ve kullanıcıların başlangıç tarihi ve saatini belirten bir tetikleyici oluşturmasını gerektirmez.

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

-ScheduledJobOption

Zamanlanan iş için seçenekleri ayarlar. Cmdlet'ini kullanarak New-ScheduledJobOption oluşturduğunuz veya karma tablo değeri gibi bir ScheduledJobOptions nesnesi girin.

Zamanlanmış işi kaydederken zamanlanmış işin seçeneklerini ayarlayabilir veya seçenekleri ayarlamak veya değiştirmek için veya Set-ScheduledJob cmdlet'lerini kullanabilirsinizSet-ScheduledJobOption.

Zamanlanmış bir işin çalıştırılıp çalıştırılmayacağını ve ne zaman çalıştırıldığını seçeneklerin ve bunların varsayılan değerlerinin çoğu belirler. İş zamanlamadan önce bu seçenekleri gözden geçirmeyi unutmayın. Varsayılan değerler de dahil olmak üzere zamanlanmış iş seçeneklerinin açıklaması için bkz New-ScheduledJobOption. .

Karma tablo göndermek için aşağıdaki anahtarları kullanın. Aşağıdaki karma tabloda anahtarlar varsayılan değerleriyle gösterilir.

@{# Power SettingsStartIfOnBattery=$False;StopIfGoingOnBattery=$True; WakeToRun=$False; # Idle SettingsStartIfNotIdle=$False; IdleDuration="00:10:00"; IdleTimeout="01:00:00"; StopIfGoingOffIdle=$True; RestartOnIdleResume=$False;# Security settingsShowInTaskScheduler=$TrueRunElevated=$False;# MiscRunWithoutNetwork=$False;DoNotAllowDemandStart=$False;MultipleInstancePolicy=IgnoreNew# Can be IgnoreNew, Parallel, Queue, StopExisting}

Type:Microsoft.PowerShell.ScheduledJob.ScheduledJobOptions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptBlock

Zamanlanan işin çalıştırıldığı komutları belirtir. Betik bloğu oluşturmak için komutları küme ayraçları ({}) içine alın. Komut parametreleri için varsayılan değerleri belirtmek için ArgumentList parametresini kullanın.

Her Register-ScheduledJob komut ScriptBlock veya FilePath parametrelerini kullanmalıdır.

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

-Trigger

Zamanlanan işin tetikleyicilerini belirtir. Cmdlet'in döndürdüğü nesneler gibi bir veya daha fazla ScheduledJobTrigger nesnesi New-JobTrigger veya iş tetikleyici anahtarları ve değerleri karma tablosu girin.

İş tetikleyicisi, zamanlanmış işi otomatik olarak bir kerelik veya yinelenen bir zamanlanmış iş veya bir olay gerçekleştiğinde başlatır.

İş tetikleyicileri isteğe bağlıdır. Zamanlanmış işi oluştururken tetikleyici ekleyebilir, Add-JobTrigger tetikleyicileri daha sonra eklemek için veya Set-ScheduledJob cmdlet'lerini kullanabilir veya zamanlanmış işi hemen başlatmak için cmdlet'ini kullanabilirsiniz Start-Job . Ayrıca, iş tetikleyicisi olmayan zamanlanmış bir iş oluşturabilir ve bakımını yapabilirsiniz.

Karma tablo göndermek için aşağıdaki anahtarları kullanın.

@{Frequency="Once" (or Daily, Weekly, AtStartup, AtLogon);At="3am" (veya geçerli bir zaman dizesi); DaysOfWeek="Monday", "Wednesday" (veya gün adlarının herhangi bir bileşimi); Interval=2 (veya geçerli bir sıklık aralığı); RandomDelay="30minutes" (veya geçerli bir zaman aralığı dizesi); User="Domain1\User01" (veya geçerli bir kullanıcı; yalnızca AtLogon frekans değeriyle kullanılır)

}

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

Girişler

Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

Zamanlanmış bir işi bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

None

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

Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition

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