about_Scheduled_Jobs_Advanced
Kısa açıklama
Zamanlanmış işleri destekleyen dosya yapısı da dahil olmak üzere gelişmiş zamanlanmış iş konularını açıklar.
Uzun açıklama
PSScheduledJob modülünde yer alan cmdlet'ler hakkında daha fazla bilgi için bkz. PSScheduledJob.
Zamanlanmış iş dizinleri ve dosyaları
PowerShell zamanlanmış işleri hem PowerShell işleri hem de Görev Zamanlayıcı görevleridir. Zamanlanan her iş Görev Zamanlayıcı'ya kaydedilir ve Microsoft .NET Framework Serileştirme XML biçiminde diske kaydedilir.
Zamanlanmış bir iş oluşturduğunuzda PowerShell, yerel bilgisayardaki dizinde $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
zamanlanmış iş için bir dizin oluşturur. Dizin adı, iş adıyla aynıdır.
Aşağıda örnek bir ScheduledJobs dizini verilmiştir .
Get-ChildItem $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs
Directory: C:\Users\User01\AppData\Local
\Microsoft\Windows\PowerShell\ScheduledJobs
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 9/29/2011 10:03 AM ArchiveProjects
d---- 9/30/2011 1:18 PM Inventory
d---- 10/20/2011 9:15 AM Backup-Scripts
d---- 11/7/2011 10:40 AM ProcessJob
d---- 11/2/2011 10:25 AM SecureJob
d---- 9/27/2011 1:29 PM Test-HelpFiles
d---- 9/26/2011 4:22 PM DeployPackage
Zamanlanan her işin kendi dizini vardır. Dizin, zamanlanmış iş XML dosyasını ve output alt dizinini içerir.
$Path = "$HOME\AppData\Local\Microsoft\Windows\PowerShell"
$Path += "\ScheduledJobs\ProcessJob"
Get-ChildItem $Path
Directory: C:\Users\User01\AppData\Local\Microsoft\Windows\PowerShell
\ScheduledJobs\ProcessJob
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 11/1/2011 3:00 PM Output
-a--- 11/1/2011 3:43 PM 7281 ScheduledJobDefinition.xml
Zamanlanmış bir işin Output dizini yürütme geçmişini içerir. bir iş tetikleyicisi zamanlanmış bir işi her başlattığında PowerShell çıkış dizininde zaman damgası adlı bir dizin oluşturur. Zaman damgası dizini, bir Results.xml dosyasında işin sonuçlarını ve Status.xml dosyasındaki iş durumunu içerir.
Aşağıdaki komut, ProcessJob zamanlanmış işinin yürütme geçmişi dizinlerini gösterir.
$Path = "$HOME\AppData\Local\Microsoft"
$Path += "\Windows\PowerShell\ScheduledJobs\ProcessJob\Output"
Get-ChildItem $Path
Directory: C:\Users\User01\AppData\Local\Microsoft
\Windows\PowerShell\ScheduledJobs\ProcessJob\Output
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 11/2/2011 3:00 AM 20111102-030002-260
d---- 11/3/2011 3:00 AM 20111103-030002-277
d---- 11/4/2011 3:00 AM 20111104-030002-209
d---- 11/5/2011 3:00 AM 20111105-030002-251
d---- 11/6/2011 3:00 AM 20111106-030002-174
d---- 11/7/2011 12:00 AM 20111107-000001-914
d---- 11/7/2011 3:00 AM 20111107-030002-376
$Path = "$HOME\AppData\Local\Microsoft\Windows\PowerShell\"
$Path += "ScheduledJobs\ProcessJob\Output\20111102-030002-260"
Get-ChildItem $Path
Directory: C:\Users\User01\AppData\Local\Microsoft\Windows\PowerShell
\ScheduledJobs\ProcessJob\Output\20111102-030002-260
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 11/2/2011 3:00 AM 581106 Results.xml
-a--- 11/2/2011 3:00 AM 9451 Status.xml
ScheduledJobDefinition.xml, Results.xml ve Status.xml dosyalarını açıp inceleyebilir veya dosyaları ayrıştırmak için cmdlet'ini kullanabilirsinizSelect-XML
.
Uyarı
XML dosyalarını düzenlemeyin. Herhangi bir XML dosyası geçersiz XML içeriyorsa, PowerShell zamanlanmış işi ve iş sonuçları dahil yürütme geçmişini siler.
Zamanlanmış işi hemen başlatma
Zamanlanmış bir işi iki yoldan biriyle hemen başlatabilirsiniz:
Start-Job
Zamanlanmış herhangi bir işi başlatmak için cmdlet'ini çalıştırın.- komutu çalıştırılır çalıştırılır çalıştırlanmaz işi başlatmak için komutunuza
Register-ScheduledJob
RunNow parametresini ekleyin.
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 değildir veya iş tetikleyicilerinden etkilenmez. İş çıktısı, zamanlanan iş dizininin Çıkış dizinine kaydedilmez.
Aşağıdaki komut, ProcessJob zamanlanmış işini başlatmak için cmdlet'in Start-Job
DefinitionName parametresini kullanır.
Start-Job -DefinitionName ProcessJob
İşi yönetmek ve iş sonuçlarını almak için iş cmdlet'lerini kullanın. İş cmdlet'leri hakkında daha fazla bilgi için bkz . about_Jobs.
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.
Zamanlanmış işi yeniden adlandırma
Zamanlanmış işi yeniden adlandırmak için cmdlet'in Name parametresini Set-ScheduledJob
kullanın. Zamanlanmış bir işi yeniden adlandırdığınızda PowerShell, zamanlanmış işin adını ve zamanlanmış iş dizinini değiştirir. Ancak, zaten çalıştırılan zamanlanmış işin örneklerinin adlarını değiştirmez.
Başlangıç ve bitiş saatlerini alma
İş örneklerinin başlayıp sonlandırıldığı tarihleri ve saatleri almak için, zamanlanmış işler için döndüren ScheduledJob nesnesinin PSBeginTime ve PSEndTime özelliklerini kullanın.Get-Job
Aşağıdaki örnek, bir tablodaki her iş örneğinin Format-Table
PSBeginTime ve PSEndTime özelliklerini görüntülemek için cmdlet'in Property parametresini kullanır. Label adlı hesaplanan özellik, her iş örneğinin geçen süresini görüntüler.
Get-job -Name UpdateHelpJob |
Format-Table -Property ID, PSBeginTime, PSEndTime,
@{Label="Elapsed Time";Expression={$.PsEndTime - $.PSBeginTime}}
Id PSBeginTime PSEndTime Elapsed Time
-- ----------- --------- ------------
2 11/3/2011 3:00:01 AM 11/3/2011 3:00:39 AM 00:00:38.0053854
3 11/4/2011 3:00:02 AM 11/4/2011 3:01:01 AM 00:00:59.1188475
4 11/5/2011 3:00:02 AM 11/5/2011 3:00:50 AM 00:00:48.3692034
5 11/6/2011 3:00:01 AM 11/6/2011 3:00:54 AM 00:00:52.8013036
6 11/7/2011 3:00:01 AM 11/7/2011 3:00:38 AM 00:00:37.1930350
7 11/8/2011 3:00:01 AM 11/8/2011 3:00:57 AM 00:00:56.2570556
8 11/9/2011 3:00:03 AM 11/9/2011 3:00:55 AM 00:00:51.8142222
9 11/10/2011 3:00:02 AM 11/10/2011 3:00:42 AM 00:00:40.7195954
Yürütme geçmişini yönetme
Zamanlanan her iş için kaydedilen iş örneği sonuçlarının sayısını belirleyebilir ve zamanlanmış herhangi bir işin yürütme geçmişini ve kaydedilmiş iş sonuçlarını silebilirsiniz.
Zamanlanmış işin ExecutionHistoryLength özelliği, zamanlanan iş için kaç iş örneği sonucunun kaydedileceğini belirler. Kaydedilen sonuçların sayısı ExecutionHistoryLength özelliğinin değerini aştığında PowerShell, en yeni örneğin sonuçlarına yer açmak için en eski örneğin sonuçlarını siler.
Varsayılan olarak, PowerShell her zamanlanmış işin 32 örneğinin yürütme geçmişini ve sonuçlarını kaydeder. Bu değeri değiştirmek için veya cmdlet'lerinin Register-ScheduledJob
MaxResultCount parametrelerini kullanın.Set-ScheduledJob
Zamanlanmış bir işin yürütme geçmişini ve tüm sonuçlarını silmek için cmdlet'in ClearExecutionHistory parametresini Set-ScheduledJob
kullanın. Bu yürütme geçmişinin silinmesi, PowerShell'in zamanlanmış işin yeni örneklerinin sonuçlarını kaydetmesini engellemez.
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
. Komut, zamanlanan işin yalnızca en yeni 12 iş örneği sonucunu kaydetmek için 12 değerine sahip MaxResultCount parametresini kullanır.
$JobParms = @{
Name = "ProcessJob"
ScriptBlock = {Get-Process}
MaxResultCount = "12"
}
Register-ScheduledJob @JobParms
Aşağıdaki komut, kaydedilen örnek sonuçlarının sayısını 15'e artırmak için cmdlet'in MaxResultCount parametresini Set-ScheduledJob
kullanır.
Get-ScheduledJob ProcessJob | Set-ScheduledJob -MaxResultCount 15
Aşağıdaki komut, ProcessJob zamanlanmış işinin yürütme geçmişini ve geçerli kaydedilmiş sonuçlarını siler.
Get-ScheduledJob ProcessJob | Set-ScheduledJob -ClearExecutionHistory
Aşağıdaki komut, bilgisayardaki tüm zamanlanmış işlerin name ve ExecutionHistoryLength özelliklerinin değerlerini alır ve bunları bir tabloda görüntüler.
Get-ScheduledJob |
Format-Table -Property Name, ExecutionHistoryLength -AutoSize
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