Remove-Job
Odstraní úlohu PowerShellu na pozadí.
Syntax
Remove-Job
[-Force]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Rutina Remove-Job
odstraní úlohy na pozadí PowerShellu Start-Job
, které rutina spustila, nebo rutinami, jako Invoke-Command
je například podpora parametru AsJob .
Můžete použít Remove-Job
k odstranění všech úloh nebo k odstranění vybraných úloh. Úlohy jsou identifikovány jejich názvem, ID, ID instance, příkazem nebo stavem. Nebo může být objekt úlohy odeslán do kanálu do Remove-Job
. Bez parametrů nebo hodnot Remove-Job
parametrů nemá žádný vliv.
Vzhledem k tomu, že PowerShell 3.0, Remove-Job
může odstranit vlastní typy úloh, jako jsou naplánované úlohy a úlohy pracovního postupu. Například Remove-Job
odstraní naplánovanou úlohu, všechny instance naplánované úlohy na disku a výsledky všech aktivovaných instancí úloh.
Pokud se pokusíte odstranit spuštěnou úlohu, Remove-Job
selže. Pomocí rutiny Stop-Job
zastavte spuštěnou úlohu. Nebo pomocí Remove-Job
parametru Force odstraňte spuštěnou úlohu.
Úlohy zůstanou v globální mezipaměti úloh, dokud neodstraníte úlohu na pozadí nebo nezavřete relaci PowerShellu.
Příklady
Příklad 1: Odstranění úlohy pomocí jejího názvu
Tento příklad používá proměnnou a kanál k odstranění úlohy podle názvu.
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Job
používá parametr Name k určení úlohy BatchJob. Objekt úlohy je uložen v $batch
proměnné. Objekt in $batch
je odeslán do kanálu do Remove-Job
.
Alternativou je použití parametru Job , například Remove-Job -Job $batch
.
Příklad 2: Odstranění všech úloh v relaci
V tomto příkladu se odstraní všechny úlohy v aktuální relaci PowerShellu.
Get-job | Remove-Job
Get-Job
získá všechny úlohy v aktuální relaci PowerShellu. Objekty úloh se odesílají do kanálu do Remove-Job
.
Příklad 3: Odstranění úloh NotStarted
Tento příklad odstraní všechny úlohy z aktuální relace PowerShellu, která nebyla spuštěna.
Remove-Job -State NotStarted
Remove-Job
pomocí parametru State určuje stav úlohy.
Příklad 4: Odstranění úloh pomocí popisného názvu
Tento příklad odstraní všechny úlohy z aktuální relace s popisnými názvy, které končí dávkovou*, včetně spuštěných úloh.
Remove-Job -Name *batch -Force
Remove-Job
používá parametr Name k určení vzoru názvu úlohy. Vzor obsahuje zástupný znak hvězdičky (*
) pro vyhledání všech názvů úloh, které končí dávkovou. Parametr Force odstraní spuštěné úlohy.
Příklad 5: Odstranění úlohy vytvořené příkazem Invoke-Command
Tento příklad odebere úlohu, která byla spuštěna ve vzdáleném počítači pomocí Invoke-Command
parametru AsJob .
Vzhledem k tomu, že v příkladu se používá parametr AsJob , objekt úlohy se vytvoří v místním počítači. Úloha se ale spouští na vzdáleném počítači. Výsledkem je, že ke správě úlohy použijete místní příkazy.
$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job
Invoke-Command
spustí úlohu na počítači Se serverem 01 . Parametr AsJob spouští ScriptBlock jako úlohu na pozadí. Objekt úlohy je uložen v $job
proměnné. Objekt $job
proměnné se odešle do kanálu do Remove-Job
.
Příklad 6: Odstranění úlohy vytvořené příkazem Invoke a Start-Job
Tento příklad ukazuje, jak odebrat úlohu na vzdáleném počítači, který byl spuštěn pomocí spuštění Invoke-Command
Start-Job
. Objekt úlohy se vytvoří ve vzdáleném počítači a ke správě úlohy se používají vzdálené příkazy. Při spuštění vzdáleného Start-Job
příkazu se vyžaduje trvalé připojení.
$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S -ScriptBlock {Start-Job -ScriptBlock {Get-Process} -Name MyJob}
Invoke-Command -Session $S -ScriptBlock {Remove-Job -Name MyJob}
New-PSSession
vytvoří psSession, trvalé připojení k počítači Server01. Připojení se uloží do $S
proměnné.
Invoke-Command
se připojí k relaci uloženou v $S
souboru . ScriptBlock používá Start-Job
ke spuštění vzdálené úlohy. Úloha spustí Get-Process
příkaz a pomocí parametru Name určí popisný název úlohy MyJob.
Invoke-Command
$S
používá relaci a spouští Remove-Job
. Parametr Name určuje, že úloha s názvem MyJob je odstraněna.
Příklad 7: Odstranění úlohy pomocí id instance
Tento příklad odebere úlohu na základě id instance.
$job = Start-Job -ScriptBlock {Get-Process PowerShell}
$job | Format-List -Property *
Remove-Job -InstanceId ad02b942-8007-4407-87f3-d23e71955872
State : Completed
HasMoreData : True
StatusMessage :
Location : localhost
Command : Get-Process PowerShell
JobStateInfo : Completed
Finished : System.Threading.ManualResetEvent
InstanceId : ad02b942-8007-4407-87f3-d23e71955872
Id : 3
Name : Job3
ChildJobs : {Job4}
PSBeginTime : 7/26/2019 11:36:56
PSEndTime : 7/26/2019 11:36:57
PSJobTypeName : BackgroundJob
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
Information : {}
Start-Job
spustí úlohu na pozadí a objekt úlohy se uloží do $job
proměnné.
Objekt in $job
je odeslán do kanálu do Format-List
. Parametr Property používá hvězdičku (*
) k určení, že všechny vlastnosti objektu jsou zobrazeny v seznamu.
Remove-Job
používá parametr InstanceId k určení úlohy, která se má odstranit.
Parametry
-Command
Odstraní úlohy, které obsahují zadaná slova v příkazu. Můžete zadat pole oddělené čárkami.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Před spuštěním se zobrazí výzva k potvrzení Remove-Job
.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Odstraní úlohy, které splňují všechny podmínky vytvořené v přidružené tabulce hash. Zadejte tabulku hash, kde klíče jsou vlastnosti úlohy a hodnoty jsou hodnoty vlastností úlohy.
Tento parametr funguje jenom u vlastních typů úloh, jako jsou úlohy pracovního postupu a naplánované úlohy. Nefunguje na standardních úlohách na pozadí, například na úlohách vytvořených pomocí nástroje Start-Job
.
Tento parametr je zavedený v PowerShellu 3.0.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Force
Odstraní úlohu, i když je stav úlohy spuštěný. Pokud není zadaný parametr Force, Remove-Job
neodstraní spuštěné úlohy.
Type: | SwitchParameter |
Aliases: | F |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Odstraní úlohy na pozadí se zadaným ID. Můžete zadat pole oddělené čárkami. ID úlohy je jedinečné celé číslo, které identifikuje úlohu v rámci aktuální relace.
Pokud chcete najít ID úlohy, použijte Get-Job
bez parametrů.
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Odstraní úlohy se zadaným ID instance. Můžete zadat pole oddělené čárkami. InstanceId je jedinečný identifikátor GUID, který identifikuje úlohu.
K vyhledání ID instance úlohy použijte Get-Job
.
Type: | Guid[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Job
Určuje úlohy, které se mají odstranit. Zadejte proměnnou, která obsahuje úlohy, nebo příkaz, který získá úlohy. Můžete zadat pole oddělené čárkami.
Do kanálu Remove-Job
můžete odesílat objekty úloh.
Type: | Job[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Odstraní pouze úlohy se zadaným popisným názvem. Jsou povoleny zástupné cardy. Můžete zadat pole oddělené čárkami.
Popisné názvy úloh nemusí být jedinečné ani v rámci relace PowerShellu. Při odstraňování souborů podle názvu použijte parametry WhatIf a Confirm.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-State
Odstraní pouze úlohy se zadaným stavem. Pokud chcete odstranit úlohy se stavem Spuštěno, použijte parametr Force .
Přijaté hodnoty:
- AtBreakpoint
- Blokované
- Dokončeno
- Odpojeno
- Neúspěšný
- NotStarted
- Spuštěno
- Zastaveno
- Zastavování
- Dočasně blokován.
- Pozastavení
Type: | JobState |
Accepted values: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Ukazuje, co se stane, když Remove-Job
se spustí. Rutina se nespustí.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Vstupy
Objekt Úlohy můžete do této rutiny převést.
Výstupy
None
Tato rutina nevrátí žádný výstup.
Poznámky
PowerShell obsahuje následující aliasy pro Remove-Job
:
- Všechny platformy:
rjb
Úloha PowerShellu vytvoří nový proces. Po dokončení úlohy se proces ukončí. Po Remove-Job
spuštění se stav úlohy odebere.
Pokud se úloha zastaví před dokončením a její proces se neodejde, proces se vynutil ukončení.