Remove-Job
Usuwa zadanie w tle programu PowerShell.
Składnia
SessionIdParameterSet (Domyślna)
Remove-Job
[-Id] <Int32[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Remove-Job
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Remove-Job
[-InstanceId] <Guid[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Remove-Job
[-Filter] <Hashtable>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
CommandParameterSet
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
Polecenie cmdlet Remove-Job usuwa zadania w tle programu PowerShell, które zostały uruchomione przez polecenie cmdlet Start-Job lub polecenia cmdlet, takie jak Invoke-Command, które obsługują parametr AsJob.
Możesz użyć Remove-Job, aby usunąć wszystkie zadania lub usunąć wybrane zadania. Zadania są identyfikowane przez nazwa, identyfikator identyfikatora, identyfikatora InstanceId, polecenia lub State. Można też wysłać obiekt zadania w dół potoku do Remove-Job. Bez parametrów lub wartości parametrów Remove-Job nie wywołuje żadnego efektu.
Od wersji programu PowerShell 3.0, Remove-Job może usuwać niestandardowe typy zadań, takie jak zadania zaplanowane i przepływy pracy. Na przykład Remove-Job usuwa zaplanowane zadanie, wszystkie wystąpienia zaplanowanego zadania na dysku oraz wyniki wszystkich wyzwolonych wystąpień zadań.
Jeśli spróbujesz usunąć uruchomione zadanie, niepowodzeniem zakończy się operacja Remove-Job. Aby zatrzymać uruchomione zadanie, użyj polecenia cmdlet Stop-Job. Możesz też użyć Remove-Job z parametrem Force, aby usunąć uruchomione zadanie.
Zadania pozostają w globalnej pamięci podręcznej zadań do momentu usunięcia zadania w tle lub zamknięcia sesji programu PowerShell.
Przykłady
Przykład 1. Usuwanie zadania przy użyciu jego nazwy
W tym przykładzie użyto zmiennej i potoku do usunięcia zadania według nazwy.
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Job używa parametru Name w celu określenia zadania BatchJob. Obiekt zadania jest przechowywany w zmiennej $batch. Obiekt w $batch jest wysyłany wzdłuż potoku do Remove-Job.
Alternatywą jest użycie parametru Job, na przykład Remove-Job -Job $batch.
Przykład 2: Usuwanie wszystkich zadań w sesji
W tym przykładzie wszystkie zadania w bieżącej sesji programu PowerShell zostaną usunięte.
Get-Job | Remove-Job
Get-Job uzyskuje wszystkie zadania w bieżącej sesji programu PowerShell. Obiekty zadań są wysyłane w dół potoku do Remove-Job.
Przykład 3. Usuwanie niestartowanych zadań
Ten przykład usuwa wszystkie zadania z bieżącej sesji programu PowerShell, które nie zostały uruchomione.
Remove-Job -State NotStarted
Remove-Job używa parametru stanu w celu określenia stanu zadania.
Przykład 4. Usuwanie zadań przy użyciu przyjaznej nazwy
W tym przykładzie wszystkie zadania z bieżącej sesji, które mają przyjazne nazwy kończące się na partię , są usuwane, w tym również te, które są uruchomione.
Remove-Job -Name *batch -Force
Remove-Job używa parametru Name, aby określić wzorzec nazwy zadania. Wzorzec zawiera symbol wieloznaczny gwiazdki (*), aby znaleźć wszystkie nazwy zadań kończące się na partię . Parametr Force usuwa uruchomione zadania.
Przykład 5. Usuwanie zadania utworzonego przez Invoke-Command
W tym przykładzie usunięto zadanie uruchomione na komputerze zdalnym przy użyciu Invoke-Command z parametrem AsJob.
Ponieważ w przykładzie użyto parametru AsJob, obiekt zadania jest tworzony na komputerze lokalnym. Jednak zadanie jest uruchamiane na komputerze zdalnym. W związku z tym polecenia lokalne służą do zarządzania zadaniem.
$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job
Invoke-Command uruchamia zadanie na komputerze Server01. Parametr AsJob uruchamia ScriptBlock jako zadanie w tle. Obiekt zadania jest przechowywany w zmiennej $job. Obiekt zmiennej $job jest wysyłany w dół potoku do Remove-Job.
Przykład 6. Usuwanie zadania utworzonego przez Invoke-Command i Start-Job
W tym przykładzie pokazano, jak usunąć zadanie na komputerze zdalnym, które zostało uruchomione przy użyciu Invoke-Command do uruchomienia Start-Job. Obiekt zadania jest tworzony na komputerze zdalnym, a polecenia zdalne są używane do zarządzania zadaniem. Trwałe połączenie jest wymagane podczas uruchamiania zdalnego polecenia Start-Job.
$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 tworzy PSSession, trwałe połączenie z komputerem Server01. Połączenie jest zapisywane w zmiennej $S.
Invoke-Command nawiązuje połączenie z sesją zapisaną w $S.
ScriptBlock używa Start-Job do uruchamiania zadania zdalnego. Zadanie uruchamia polecenie Get-Process i używa parametru nazwa , aby określić przyjazną nazwę zadania MyJob.
Invoke-Command używa sesji $S i uruchamia Remove-Job. Parametr Nazwa określa, że zadanie o nazwie MyJob zostało usunięte.
Przykład 7. Usuwanie zadania przy użyciu identyfikatora InstanceId
Ten przykład usuwa zadanie na podstawie InstanceId.
$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 uruchamia zadanie w tle, a obiekt zadania jest zapisywany w zmiennej $job.
Obiekt w $job jest wysyłany wzdłuż potoku do Format-List. Parametr Property używa gwiazdki (*), aby określić, że wszystkie właściwości obiektu są wyświetlane na liście.
Remove-Job używa parametru InstanceId w celu określenia zadania do usunięcia.
Parametry
-Command
Usuwa zadania, które zawierają określone wyrazy w poleceniu. Można wprowadzić tablicę rozdzielaną przecinkami.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
CommandParameterSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-Confirm
Wyświetla komunikat z prośbą o potwierdzenie przed uruchomieniem Remove-Job.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | por |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Filter
Usuwa zadania spełniające wszystkie warunki określone w skojarzonej tabeli skrótów. Wprowadź tabelę skrótów, w której klucze są właściwościami zadania, a wartości są wartościami właściwości zadania.
Ten parametr działa tylko w przypadku niestandardowych typów zadań, takich jak zadania przepływu pracy i zaplanowane zadania. Nie działa w przypadku standardowych zadań w tle, takich jak te utworzone przy użyciu Start-Job.
Ten parametr jest wprowadzany w programie PowerShell 3.0.
Właściwości parametru
| Typ: | Hashtable |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
FilterParameterSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-Force
Usuwa zadanie, nawet jeśli stan zadania jest Uruchomiono. Jeśli parametr Force nie jest określony, Remove-Job nie usuwa uruchomionych zadań.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | F |
Zestawy parametrów
SessionIdParameterSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
JobParameterSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
InstanceIdParameterSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
NameParameterSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
FilterParameterSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Id
Usuwa procesy w tle z określonym Id . Można wprowadzić listę rozdzielaną przecinkami. Identyfikator zadania jest unikatową liczbą całkowitą identyfikującą zadanie w bieżącej sesji.
Aby znaleźć identyfikator zadania, użyj Get-Job bez parametrów.
Właściwości parametru
| Typ: | Int32[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
SessionIdParameterSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-InstanceId
Usuwa prace z określonym identyfikatorem wystąpienia . Można wprowadzić tablicę rozdzielaną przecinkami. InstanceId jest unikatowym identyfikatorem GUID identyfikującym zadanie.
Aby znaleźć InstanceId zadania, użyj Get-Job.
Właściwości parametru
| Typ: | Guid[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
InstanceIdParameterSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-Job
Określa zadania do usunięcia. Wprowadź zmienną zawierającą zadania lub polecenie, które pobiera zadania. Można wprowadzić tablicę rozdzielaną przecinkami.
Obiekty zadań można wysyłać w dół potoku do Remove-Job.
Właściwości parametru
| Typ: | Job[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
JobParameterSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-Name
Usuwa tylko zadania o określonej przyjaznej nazwie. Symbole wieloznaczne są dozwolone. Można wprowadzić tablicę rozdzielaną przecinkami.
Przyjazne nazwy zadań nie mają gwarancji, że są unikatowe, nawet w ramach sesji programu PowerShell. Użyj parametrów WhatIf i Confirm podczas usuwania plików według nazwy.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
NameParameterSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-State
Usuwa tylko zadania o określonym stanie. Aby usunąć zadania ze stanem Running, użyj parametru Force.
Zaakceptowane wartości:
- Punkt przerwania
- Zablokowany
- Zakończone
- Odłączony
- Nie powiodło się
- Nierozpoczęty
- Bieganie
- Zatrzymano
- Zatrzymanie
- Zawieszony
- Zawieszenie
Właściwości parametru
| Typ: | JobState |
| Domyślna wartość: | None |
| Dopuszczalne wartości: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
StateParameterSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-WhatIf
Pokazuje, co się stanie, jeśli Remove-Job zostanie uruchomiony. Cmdlet nie został uruchomiony.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | Wi |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
Job
Do tego polecenia cmdlet można przekierować obiekt zadania .
Dane wyjściowe
None
To polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
Program PowerShell zawiera następujące aliasy dla Remove-Job:
- Wszystkie platformy:
rjb
Zadanie programu PowerShell tworzy nowy proces. Po zakończeniu zadania proces kończy się. Po uruchomieniu Remove-Job stan zadania zostanie usunięty.
Jeśli zadanie zostanie zatrzymane przed zakończeniem i jego proces nie zostanie zakończony, proces zostanie przymusowo zakończony.