Arka Plan İşleri

Cmdlet'ler eylemlerini şirket içinde veya powershellbackground işi Windows olarak gerçekleştirebilir. Bir cmdlet arka plan işi olarak çalıştığında, iş, cmdlet'in kullandığı işlem hattı iş parçacığından ayrı olarak kendi iş parçacığında zaman uyumsuz olarak yapılır. Kullanıcı açısından bakıldığında, bir cmdlet arka plan işi olarak çalıştığında, işin tamamlanması uzun sürse ve iş çalışırken kullanıcı kesintiye uğramadan devam etse bile komut istemi hemen döndürülür.

Arka Plan İşleri, Alt İşler ve İş Deposu

Arka plan işlerini destekleyen cmdlet'ler tarafından döndürülen iş nesnesi işi tanımlar. (Start-Job cmdlet'i de bir iş nesnesi döndürür.) İşin adı, işi belirtmek için kullanılan bir tanımlayıcı, durum bilgileri ve alt işler bu tanıma dahil edilir. İş, işin hiçbirini gerçekleştirmez. Asıl işi alt iş gerçekleştirdiğinden her arka plan işinin en az bir alt işi vardır. Çalışma arka plan işi olarak gerçekleştirilecek şekilde bir cmdlet çalıştırdığınızda, cmdlet işi ve alt işleri iş deposuolarak adlandırılan ortak bir depoya eklemelidir.

Arka plan işlerinin komut satırında nasıl işlenmeleri hakkında daha fazla bilgi için aşağıdakilere bakın:

Arka Plan İşi Olarak Çalışan Bir Cmdlet Yazma

Arka plan işi olarak çalıştırılabilir bir cmdlet yazmak için aşağıdaki görevleri tamamlamanız gerekir:

  • Kullanıcının cmdlet'in arka plan işi olarak çalıştırılıp çalıştırılmayacağına karar verebilmesi için bir AsJob[switch] parametre tanımlayın.

  • System.Management.Automation.Job sınıfından türetilen bir nesne oluşturun. Bu nesne özel bir iş nesnesi veya System.Management.Automation.PSEventJob nesnesi gibi Windows PowerShell tarafından sağlanan bir iş nesnesi olabilir.

  • Kayıt işleme yönteminde, cmdlet'in arka plan işi olarak çalışıp çalışmayacağını algılayan bir if deyimi ekleyin.

  • Özel iş nesneleri için iş sınıfını uygulayın.

  • Cmdlet'in arka plan işi olarak çalıştırılıp çalıştırılmadığına bağlı olarak uygun nesneleri döndürür.

Kod örneği için bkz. İşleri Destekleme.

Arka plan işlerini yönetmek için Windows PowerShell tarafından aşağıdaki API'ler sağlanır.

System.Management.Automation.Job Özel iş nesneleri türetilir. Bu soyut bir sınıftır.

System.Management.Automation.JobRepository Geçerli etkin arka plan işleri hakkında bilgi sağlar ve yönetir.

System.Management.Automation.JobState Arka plan işinin durumunu tanımlar. Durumlara Başlatıldı, Çalışıyor ve Durduruldu dahildir.

System.Management.Automation.JobStateInfo Bir arka plan işinin durumu ve son durum değişikliğinin bir hatadan kaynaklanıp kaynaklandığı, işin geçerli durumuna girme nedeni hakkında bilgi sağlar.

System.Management.Automation.JobStateEventArgs Arka plan işi durumu değiştiğinde tetiklenen bir olay için bağımsız değişkenleri sağlar.

PowerShell İş Cmdlet'lerini Windows

Arka plan işlerini yönetmek için Windows PowerShell tarafından aşağıdaki cmdlet'ler sağlanır.

Get-Job

Geçerli oturumda çalışan Windows PowerShell arka plan işlerini alır.

Receive-Job

Geçerli oturumdaki Windows PowerShell arka plan işlerinin sonuçlarını alır.

Remove-Job

Windows PowerShell arka plan işini siler.

Start-Job

Windows PowerShell arka plan işi başlatır.

Stop-Job

Windows PowerShell arka plan işini durdurur.

Wait-Job

Oturumda çalışan Windows PowerShell arka plan işlerinin biri veya tümü tamamlanana kadar komut istemini gizler.

Ayrıca Bkz.

Windows PowerShell Cmdlet'ini yazma