Receive-Job
Geçerli oturumdaki PowerShell arka plan işlerinin sonuçlarını alır.
Sözdizimi
Location EnterprisePublishing
Receive-Job
[-Job] <Job[]>
[[-Location] <string[]>]
[-Keep]
[-NoRecurse]
[-Force]
[-Wait]
[-AutoRemoveJob]
[-WriteEvents]
[-WriteJobInResults]
[<CommonParameters>]
ComputerName
Receive-Job
[-Job] <Job[]>
[[-ComputerName] <string[]>]
[-Keep]
[-NoRecurse]
[-Force]
[-Wait]
[-AutoRemoveJob]
[-WriteEvents]
[-WriteJobInResults]
[<CommonParameters>]
Session
Receive-Job
[-Job] <Job[]>
[[-Session] <PSSession[]>]
[-Keep]
[-NoRecurse]
[-Force]
[-Wait]
[-AutoRemoveJob]
[-WriteEvents]
[-WriteJobInResults]
[<CommonParameters>]
NameParameterSet
Receive-Job
[-Name] <string[]>
[-Keep]
[-NoRecurse]
[-Force]
[-Wait]
[-AutoRemoveJob]
[-WriteEvents]
[-WriteJobInResults]
[<CommonParameters>]
InstanceIdParameterSet
Receive-Job
[-InstanceId] <guid[]>
[-Keep]
[-NoRecurse]
[-Force]
[-Wait]
[-AutoRemoveJob]
[-WriteEvents]
[-WriteJobInResults]
[<CommonParameters>]
SessionIdParameterSet
Receive-Job
[-Id] <int[]>
[-Keep]
[-NoRecurse]
[-Force]
[-Wait]
[-AutoRemoveJob]
[-WriteEvents]
[-WriteJobInResults]
[<CommonParameters>]
Description
Receive-Job cmdlet'i, Start-Job cmdlet'i veya herhangi bir cmdlet'in AsJob parametresi kullanılarak başlatılanlar gibi PowerShell arka plan işlerinin sonuçlarını alır. Tüm işlerin sonuçlarını alabilir veya işleri adlarına, kimliklerine, örnek kimliğine, bilgisayar adına, konumuna veya oturumuna göre veya bir iş nesnesi göndererek tanımlayabilirsiniz.
Bir PowerShell arka plan işi başlattığınızda iş başlar, ancak sonuçlar hemen görünmez. Bunun yerine, komut arka plan işini temsil eden bir nesne döndürür. İş nesnesi iş hakkında yararlı bilgiler içerir, ancak sonuçları içermez. Bu yöntem, iş çalışırken oturumda çalışmaya devam etmenizi sağlar. PowerShell'deki arka plan işleri hakkında daha fazla bilgi için bkz. about_Jobs.
Receive-Job cmdlet'i, Receive-Job komutu gönderildiğinde oluşturulan sonuçları alır. Sonuçlar henüz tamamlanmamışsa, kalan sonuçları almak için ek Receive-Job komutları çalıştırabilirsiniz.
Varsayılan olarak, iş sonuçları aldığınızda sistemden silinir, ancak sonuçları yeniden alabilmek için kaydetmek için Tut parametresini kullanabilirsiniz. İş sonuçlarını silmek için Receive-Job Tut parametresi olmadan komutunu yeniden çalıştırın, oturumu kapatın veya işi oturumdan silmek için Remove-Job cmdlet'ini kullanın.
Windows PowerShell 3.0'dan başlayarak Receive-Job iş akışı işleri ve zamanlanmış işlerin örnekleri gibi özel iş türlerinin sonuçlarını da alır.
Receive-Job sonuçları özel bir iş türüne almasını sağlamak için, Receive-Job cmdlet'ini kullanarak veya modülde bir cmdlet alarak Import-Module komutu çalıştırmadan önce özel iş türünü destekleyen modülü oturuma aktarın. Belirli bir özel iş türü hakkında bilgi için özel iş türü özelliğinin belgelerine bakın.
Örnekler
Örnek 1: Belirli bir işin sonuçlarını alma
$job = Start-Job -ScriptBlock {Get-Process}
Start-Sleep -Seconds 1
Receive-Job -Job $job
Bu komutlar, belirli bir işin sonuçlarını almak için Receive-Job parametresini kullanır.
İlk komut, Start-Job ile bir iş başlatır ve iş nesnesini $job değişkeninde depolar.
İkinci komut, işin sonuçlarını almak için Receive-Job cmdlet'ini kullanır.
İşi belirtmek için İşi parametresini kullanır.
Örnek 2: Keep parametresini kullanma
$job = Start-Job -ScriptBlock {Get-Service dhcp, fakeservice}
Start-Sleep -Seconds 1
$job | Receive-Job -Keep
Cannot find any service with service name 'fakeservice'.
+ CategoryInfo : ObjectNotFound: (fakeservice:String) [Get-Service], ServiceCommandException
+ FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
+ PSComputerName : localhost
Status Name DisplayName
------ ---- -----------
Running dhcp DHCP Client
$job | Receive-Job -Keep
Cannot find any service with service name 'fakeservice'.
+ CategoryInfo : ObjectNotFound: (fakeservice:String) [Get-Service], ServiceCommandException
+ FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
+ PSComputerName : localhost
Status Name DisplayName
------ ---- -----------
Running dhcp DHCP Client
Bu örnek bir işi $job değişkeninde depolar ve işi Receive-Job cmdlet'ine aktarır.
-Keep parametresi, toplanan tüm akış verilerinin ilk görünümden sonra yeniden alınmasına izin vermek için de kullanılır.
Örnek 3: Birkaç arka plan işinin sonuçlarını alma
bir işi başlatmak için Invoke-Command parametresini kullandığınızda, iş uzak bilgisayarlarda çalıştırılıyor olsa bile yerel bilgisayarda iş nesnesi oluşturulur. Sonuç olarak, işi yönetmek için yerel komutları kullanırsınız.
Ayrıca, AsJobkullandığınızda PowerShell, başlatılan her iş için bir alt iş içeren bir iş nesnesi döndürür. Bu durumda, iş nesnesi her uzak bilgisayardaki her iş için bir tane olan üç alt iş içerir.
# Use the Invoke-Command cmdlet with the -AsJob parameter to start a background job that
# runs a Get-Service command on three remote computers. Store the resulting job object in
# the $j variable
$j = Invoke-Command -ComputerName Server01, Server02, Server03 -ScriptBlock {Get-Service} -AsJob
# Display the value of the **ChildJobs** property of the job object in $j. The display
# shows that the command created three child jobs, one for the job on each remote
# computer. You could also use the -IncludeChildJobs parameter of the Get-Job cmdlet.
$j.ChildJobs
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
2 Job2 Completed True Server01 Get-Service
3 Job3 Completed True Server02 Get-Service
4 Job4 Completed True Server03 Get-Service
# Use the Receive-Job cmdlet to get the results of just the Job3 child job that ran on the
# Server02 computer. Use the *Keep* parameter to allow you to view the aggregated stream
# data more than once.
Receive-Job -Name Job3 -Keep
Status Name DisplayName PSComputerName
------ ----------- ----------- --------------
Running AeLookupSvc Application Experience Server02
Stopped ALG Application Layer Gateway Service Server02
Running Appinfo Application Information Server02
Running AppMgmt Application Management Server02
Örnek 4: Birden çok uzak bilgisayarda arka plan işlerinin sonuçlarını alma
# Use the New-PSSession cmdlet to create three user-managed PSSessions on three servers,
# and save the sessions in the $s variable.
$s = New-PSSession -ComputerName Server01, Server02, Server03
# Use Invoke-Command run a Start-Job command in each of the PSSessions in the $s variable.
# The code creates a new job with a custom name to each server. The job outputs the
# datetime from each server. Save the job objects in the $j variable.
$invokeCommandSplat = @{
Session = $s
ScriptBlock = {
Start-Job -Name $('MyJob-' +$Env:COMPUTERNAME) -ScriptBlock {
(Get-Date).ToString()
}
}
}
$j = Invoke-Command @invokeCommandSplat
# To confirm that these job objects are from the remote machines, run Get-Job to show no
# local jobs running.
Get-Job`
# Display the three job objects in $j. Note that the Localhost location is not the local
# computer, but instead localhost as it relates to the job on each Server.
$j
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 MyJob-Server01 Completed True Localhost (Get-Date).ToString()
2 MyJob-Server02 Completed True Localhost (Get-Date).ToString()
3 MyJob-Server03 Completed True Localhost (Get-Date).ToString()
# Use Invoke-Command to run a Receive-Job command in each of the sessions in the $s
# variable and save the results in the $results variable. The Receive-Job command must be
# run in each session because the jobs were run locally on each server.
$results = Invoke-Command -Session $s -ScriptBlock {
Receive-Job -Name $('MyJob-' +$Env:COMPUTERNAME)
}
3/22/2021 7:41:47 PM
3/22/2021 7:41:47 PM
3/22/2021 9:41:47 PM
Bu örnekte, arka plan işlerinin sonuçlarının üç uzak bilgisayarda nasıl çalıştırılacakları gösterilmektedir. Önceki örnekten farklı olarak, Invoke-Command komutunu çalıştırmak için Start-Job kullanmak aslında üç bilgisayarın her birinde üç bağımsız iş başlattı. Sonuç olarak, komut üç farklı bilgisayarda yerel olarak çalıştırılacak üç işi temsil eden üç iş nesnesi döndürdü.
Örnek 5: Alt işlere erişme
-Keep parametresi, bir işin toplanmış akışlarının durumunu koruyarak yeniden görüntülenebilmesini sağlar. Bu parametre olmadan, iş alındığında toplanan tüm akış verileri silinir.
Daha fazla bilgi için bkz. about_Job_Details
Uyarı
Toplanan akışlar tüm alt işlerin akışlarını içerir. Yine de iş nesnesi ve alt iş nesneleri aracılığıyla tek tek veri akışlarına ulaşabilirsiniz.
Start-Job -Name TestJob -ScriptBlock {dir C:\, Z:\}
# Without the Keep parameter, aggregated child job data is displayed once.
# Then destroyed.
Receive-Job -Name TestJob
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d-r--- 1/24/2019 7:11 AM Program Files
d-r--- 2/13/2019 8:32 AM Program Files (x86)
d-r--- 10/3/2018 11:47 AM Users
d----- 2/7/2019 1:52 AM Windows
Cannot find drive. A drive with the name 'Z' does not exist.
+ CategoryInfo : ObjectNotFound: (Z:String) [Get-ChildItem], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
+ PSComputerName : localhost
# It would seem that the child job data is gone.
Receive-Job -Name TestJob
# Using the object model, you can still retrieve child job data and streams.
$job = Get-Job -Name TestJob
$job.ChildJobs[0].Error
Cannot find drive. A drive with the name 'Z' does not exist.
+ CategoryInfo : ObjectNotFound: (Z:String) [Get-ChildItem], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
+ PSComputerName : localhost
Parametreler
-AutoRemoveJob
Bu cmdlet'in iş sonuçlarını döndürdükten sonra işi sildiğini gösterir. İşin daha fazla sonucu varsa, iş yine de silinir, ancak Receive-Job bir ileti görüntüler.
Bu parametre yalnızca özel iş türlerinde çalışır. İşi kaydeden iş türlerinin örnekleri veya zamanlanmış işlerin örnekleri gibi oturumun dışındaki tür için tasarlanmıştır.
Bu parametre Wait parametresi olmadan kullanılamaz.
Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-ComputerName
Bilgisayar adlarının bir dizisini belirtir.
Bu parametre, yerel bilgisayarda depolanan iş sonuçları arasından seçim yapın. Uzak bilgisayarlarda çalıştırılacak işler için veri almaz. Uzak bilgisayarlarda depolanan iş sonuçlarını almak için Invoke-Command komutunu uzaktan çalıştırmak için Receive-Job cmdlet'ini kullanın.
Parametre özellikleri
| Tür: | String[] |
| Default value: | All computers available |
| Joker karakterleri destekler: | True |
| DontShow: | False |
| Diğer adlar: | Cn |
Parametre kümeleri
ComputerName
| Position: | 1 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Force
İşler Receive-Job parametresi, işler aşağıdaki durumlardan birinde olduğunda beklemeyi döndürür veya sonlandırır:
- Tamamlandı
- Başarısız oldu
- Durduruldu
- Askıya alındı
- Bağlantısı kesilmiş.
Force parametresi yalnızca komutta Wait parametresi de kullanıldığında geçerlidir.
Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Id
Bir kimlik dizisi belirtir. Bu cmdlet, belirtilen kimliklere sahip işlerin sonuçlarını alır.
Kimlik, geçerli oturumdaki işi benzersiz olarak tanımlayan bir tamsayıdır. örnek kimliğinden daha kolay anımsanıp yazılır, ancak yalnızca geçerli oturumda benzersizdir. Virgülle ayrılmış bir veya daha fazla kimlik yazabilirsiniz. İşin kimliğini bulmak için Get-Jobkullanın.
Parametre özellikleri
| Tür: | Int32[] |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
SessionIdParameterSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-InstanceId
Örnek kimlikleri dizisini belirtir. Bu cmdlet, belirtilen örnek kimliklerine sahip işlerin sonuçlarını alır.
Örnek kimliği, bilgisayardaki işi benzersiz olarak tanımlayan bir GUID'dir. bir işin örnek kimliğini bulmak için Get-Job cmdlet'ini kullanın.
Parametre özellikleri
| Tür: | Guid[] |
| Default value: | All instances |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
InstanceIdParameterSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Job
Sonuçların alınmakta olduğu işi belirtir.
İşi içeren bir değişken veya işi alan bir komut girin. ayrıca bir iş nesnesini Receive-Job'e de yöneltebilirsiniz.
Parametre özellikleri
| Tür: | Job[] |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
Location
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | True |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
Session
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | True |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
ComputerName
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | True |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Keep
Bu cmdlet'in toplanmış akış verilerini aldıktan sonra bile sisteme kaydettiğini gösterir. Varsayılan olarak, toplanan akış verileri Receive-Jobile görüntülendikten sonra silinir.
Oturumu kapatma veya Remove-Job cmdlet'iyle işi kaldırma işlemi de toplanan akış verilerini siler.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Location
Konum dizisini belirtir. Bu cmdlet yalnızca belirtilen konumlardaki işlerin sonuçlarını alır.
Parametre özellikleri
| Tür: | String[] |
| Default value: | All locations |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
Location
| Position: | 1 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Name
Kolay ad dizisini belirtir. Bu cmdlet, belirtilen adlara sahip işlerin sonuçlarını alır. Joker karakterler desteklenir.
Parametre özellikleri
| Tür: | String[] |
| Default value: | None |
| Joker karakterleri destekler: | True |
| DontShow: | False |
Parametre kümeleri
NameParameterSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-NoRecurse
Bu cmdlet'in yalnızca belirtilen işten sonuç aldığını gösterir. Varsayılan olarak, Receive-Job belirtilen işin tüm alt işlerinin sonuçlarını da alır.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Session
Bir oturum dizisini belirtir. Bu cmdlet, belirtilen PowerShell oturumunda (pssessionGet-PSSessionalan bir komut girin.
Parametre özellikleri
| Tür: | |
| Default value: | All sessions |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
Session
| Position: | 1 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Wait
Bu cmdlet'in tüm iş sonuçları alınana kadar komut istemini gizlediğini gösterir. Varsayılan olarak, Receive-Job hemen kullanılabilir sonuçları döndürür.
varsayılan olarak, Wait parametresi iş aşağıdaki durumlardan birine gelene kadar bekler:
- Tamamlandı
- Başarısız oldu
- Durduruldu
- Askıya alındı
- Bağlantısı kesilmiş
Wait parametresini, iş durumu Askıya Alındı veya Bağlantısı Kesildi olduğunda beklemeye devam etmeye yönlendirmek için Wait parametresiyle birlikte Force parametresini kullanın.
Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-WriteEvents
Bu cmdlet'in işin bitmesini beklerken iş durumundaki değişiklikleri bildirdiğini gösterir.
Bu parametre yalnızca komutta Wait parametresi kullanıldığında ve Keep parametresi atlandığında geçerlidir.
Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-WriteJobInResults
Bu cmdlet'in iş nesnesini ve ardından sonuçları döndürdüğünü gösterir.
Bu parametre yalnızca komutta Wait parametresi kullanıldığında ve Keep parametresi atlandığında geçerlidir.
Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
CommonParameters
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
Girişler
Job
İş nesnelerini bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
PSObject
Bu cmdlet, işteki komutların sonuçlarını döndürür.
Notlar
PowerShell, Receive-Jobiçin aşağıdaki diğer adları içerir:
- Tüm platformlar:
rcjb