Remove-Job

Usuwa zadanie w tle programu PowerShell.

Składnia

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>]

Opis

Polecenie Remove-Job cmdlet usuwa zadania w tle programu PowerShell, które zostały uruchomione przez Start-Job polecenie cmdlet lub polecenia cmdlet, takie jak Invoke-Command obsługa parametru AsJob .

Możesz użyć Remove-Job polecenia , aby usunąć wszystkie zadania lub usunąć wybrane zadania. Zadania są identyfikowane przez ich nazwę, identyfikator, identyfikator wystąpienia, polecenie lub stan. Można też wysłać obiekt zadania w dół potoku do Remove-Jobelementu . Bez parametrów lub wartości Remove-Job parametrów nie ma wpływu.

Ponieważ program PowerShell 3.0 Remove-Job może usuwać niestandardowe typy zadań, takie jak zaplanowane zadania i zadania przepływu 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, Remove-Job nie powiedzie się. Użyj polecenia cmdlet , Stop-Job aby zatrzymać uruchomione zadanie. Możesz też użyć polecenia 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 pliku $batch jest wysyłany w dół potoku do .Remove-Job

Alternatywą jest użycie parametru Zadania , takiego jak 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 Pobiera wszystkie zadania w bieżącej sesji programu PowerShell. Obiekty zadania są wysyłane w dół potoku do elementu 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 State , aby określić stan zadania.

Przykład 4. Usuwanie zadań przy użyciu przyjaznej nazwy

Ten przykład usuwa wszystkie zadania z bieżącej sesji z przyjaznymi nazwami kończącymi się partią*, w tym zadaniami, 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ę 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 parametru Invoke-CommandAsJob .

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 do zarządzania zadaniem są używane polecenia lokalne.

$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job

Invoke-Command uruchamia zadanie na komputerze Server01 . Parametr AsJob uruchamia skryptBlock jako zadanie w tle. Obiekt zadania jest przechowywany w zmiennej $job . Obiekt $job zmiennej jest wysyłany w dół potoku do elementu 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 polecenia Invoke-Command w celu uruchomienia polecenia 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 polecenia zdalnego 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 serwer 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 pliku $S. Funkcja ScriptBlock służy Start-Job do uruchamiania zadania zdalnego. Zadanie uruchamia Get-Process polecenie i używa parametru Name do określenia przyjaznej nazwy zadania MyJob.

Invoke-Command używa sesji $S i uruchamia polecenie Remove-Job. Parametr Name określa, że zadanie o nazwie MyJob jest usuwane.

Przykład 7. Usuwanie zadania przy użyciu identyfikatora InstanceId

W tym przykładzie zadanie jest usuwane na podstawie jego identyfikatora 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 pliku $job jest wysyłany w dół 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 , aby określić zadanie do usunięcia.

Parametry

-Command

Usuwa zadania, które zawierają określone wyrazy w poleceniu. Możesz wprowadzić tablicę rozdzielaną przecinkami.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Monituje o potwierdzenie przed Remove-Job uruchomieniem.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters: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 polecenia Start-Job.

Ten parametr jest wprowadzany w programie PowerShell 3.0.

Type:Hashtable
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Force

Usuwa zadanie, nawet jeśli stan zadania to Uruchomione. Jeśli parametr Force nie zostanie określony, Remove-Job nie usuwa uruchomionych zadań.

Type:SwitchParameter
Aliases:F
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Usuwa zadania w tle z określonym identyfikatorem. Możesz wprowadzić tablicę rozdzielaną przecinkami. Identyfikator zadania jest unikatową liczbą całkowitą, która identyfikuje zadanie w bieżącej sesji.

Aby znaleźć identyfikator zadania, użyj polecenia Get-Job bez parametrów.

Type:Int32[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

Usuwa zadania z określonym identyfikatorem InstanceId. Możesz wprowadzić tablicę rozdzielaną przecinkami. InstanceId to unikatowy identyfikator GUID identyfikujący zadanie.

Aby znaleźć identyfikator InstanceId zadania, użyj polecenia Get-Job.

Type:Guid[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Job

Określa zadania do usunięcia. Wprowadź zmienną zawierającą zadania lub polecenie, które pobiera zadania. Możesz wprowadzić tablicę rozdzielaną przecinkami.

Obiekty zadań można wysyłać w dół potoku do elementu Remove-Job.

Type:Job[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Name

Usuwa tylko zadania o określonej przyjaznej nazwie. Dozwolone są symbole wieloznaczne. Możesz wprowadzić tablicę rozdzielaną przecinkami.

Przyjazne nazwy zadań nie są unikatowe, nawet w ramach sesji programu PowerShell. Użyj parametrów WhatIf i Confirm podczas usuwania plików według nazwy.

Type:String[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:True

-State

Usuwa tylko zadania o określonym stanie. Aby usunąć zadania ze stanem Uruchomiono, użyj parametru Force .

Zaakceptowane wartości:

  • AtBreakpoint
  • Zablokowane
  • Ukończone
  • Odłączony
  • Niepowodzenie
  • Niestartowane
  • Uruchomienie
  • Zatrzymano
  • Zatrzymywanie
  • Suspended
  • Zawieszanie
Type:JobState
Accepted values:AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Pokazuje, co się stanie w przypadku Remove-Job uruchomienia. Polecenie cmdlet nie jest uruchamiane.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

Job

Obiekt zadania można wysłać w dół potoku do elementu Remove-Job.

Dane wyjściowe

None

Remove-Job nie generuje żadnych danych wyjściowych.

Uwagi

Zadanie programu PowerShell tworzy nowy proces. Po zakończeniu zadania proces zostanie zakończony. Po Remove-Job uruchomieniu stan zadania zostanie usunięty.

Jeśli zadanie zostanie zatrzymane przed zakończeniem, a jego proces nie zostanie zakończony, proces zostanie wymuszony.