Udostępnij za pomocą


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.