Udostępnij za pośrednictwem


Resume-Job

Uruchamia ponownie wstrzymane zadanie.

Składnia

Resume-Job
      [-Wait]
      [-Id] <Int32[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Job] <Job[]>
      [-Wait]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-Name] <String[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-InstanceId] <Guid[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-State] <JobState>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-Filter] <Hashtable>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Opis

Polecenie Resume-Job cmdlet wznawia zadanie przepływu pracy, które zostało zawieszone, na przykład za pomocą Suspend-Job polecenia cmdlet lub działania about_Suspend-Workflow . Po wznowieniu zadania przepływu pracy aparat zadań rekonstruuje stan, metadane i dane wyjściowe z zapisanych zasobów, takich jak punkty kontrolne. Zadanie jest uruchamiane ponownie bez utraty stanu lub danych. Stan zadania został zmieniony z Zawieszone na Uruchomione.

Użyj parametrów , Resume-Job aby wybrać zadania według nazwy, identyfikatora, identyfikatora wystąpienia lub potoku obiektu zadania, takiego jak jeden zwrócony przez Get-Job polecenie cmdlet, do Resume-Job. Możesz również użyć filtru właściwości, aby wybrać zadanie do wznowienia.

Domyślnie Resume-Job funkcja zwraca natychmiast, mimo że wszystkie zadania mogą nie zostać jeszcze wznowione. Aby pominąć wiersz polecenia do momentu wznowienia wszystkich określonych zadań, użyj parametru Wait .

Polecenie Resume-Job cmdlet działa tylko w przypadku niestandardowych typów zadań, takich jak zadania przepływu pracy. Nie działa w przypadku standardowych zadań w tle, takich jak te, które są uruchamiane przy użyciu Start-Job polecenia cmdlet . Jeśli prześlesz zadanie nieobsługiwanego typu, Resume-Job wygeneruje błąd zakończenia i przestanie działać.

Aby zidentyfikować zadanie przepływu pracy, poszukaj wartości zadania PSWorkflowJob we właściwości PSJobTypeName zadania. Aby określić, czy określony typ zadania niestandardowego obsługuje Resume-Job polecenie cmdlet, zobacz tematy pomocy dla niestandardowego typu zadania.

Przed użyciem polecenia cmdlet Zadania w niestandardowym typie zadania zaimportuj moduł obsługujący typ zadania niestandardowego przy użyciu Import-Module polecenia cmdlet lub pobierania lub używania polecenia cmdlet w module.

To polecenie cmdlet zostało wprowadzone w programie Windows PowerShell 3.0.

Przykłady

Przykład 1. Wznawianie zadania według identyfikatora

Polecenia w tym przykładzie sprawdzają, czy zadanie jest zawieszonym zadaniem przepływu pracy, a następnie wznów zadanie. Pierwsze polecenie używa Get-Job polecenia cmdlet do pobrania zadania. Dane wyjściowe pokazują, że zadanie jest zawieszonym zadaniem przepływu pracy. Drugie polecenie używa parametru Resume-Job Id polecenia cmdlet, aby wznowić zadanie z wartością Identyfikator 4.

PS C:\> Get-Job EventJob
Id     Name            PSJobTypeName   State         HasMoreData     Location   Command
--     ----            -------------   -----         -----------     --------   -------
4      EventJob        PSWorkflowJob   Suspended     True            Server01   \\Script\Share\Event.ps1

PS C:\> Resume-Job -Id 4

Przykład 2. Wznawianie zadania według nazwy

To polecenie używa parametru Name , aby wznowić kilka zadań przepływu pracy na komputerze lokalnym.

PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest*

Przykład 3. Używanie niestandardowych wartości właściwości

To polecenie używa wartości właściwości niestandardowej do identyfikowania zadania przepływu pracy do wznowienia. Używa parametru Filter do identyfikowania zadania przepływu pracy według jego właściwości CustomID . Używa również parametru State , aby sprawdzić, czy zadanie przepływu pracy jest zawieszone, zanim podejmie próbę wznowienia.

PS C:\> Resume-Job -Filter @{CustomID="T091291"} -State Suspended

Przykład 4: Wznawianie wszystkich zawieszonych zadań na komputerze zdalnym

To polecenie wznawia wszystkie wstrzymane zadania na komputerze zdalnym Srv01.

PS C:\> Invoke-Command -ComputerName Srv01 -ScriptBlock {Get-Job -State Suspended | Resume-Job}

Polecenie używa Invoke-Command polecenia cmdlet do uruchomienia polecenia na komputerze Srv01. Zdalne polecenie używa parametru Get-Job State polecenia cmdlet, aby pobrać wszystkie wstrzymane zadania na komputerze. Operator potoku (|) wysyła zawieszone zadania do Resume-Job polecenia cmdlet, które je wznawia.

Przykład 5. Oczekiwanie na wznowienie zadań

To polecenie używa parametru Wait , aby kierować Resume-Job polecenie, aby zwrócić tylko po wznowieniu wszystkich określonych zadań. Parametr Wait jest szczególnie przydatny w skryptach, które zakładają, że zadania są wznawiane przed kontynuowanym działaniem skryptu.

PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest* -Wait

Przykład 6. Wznawianie przepływu pracy, który zawiesza się

Ten przykładowy kod przedstawia Suspend-Workflow działanie w przepływie pracy.

Przepływ Test-Suspend pracy na komputerze Server01. Po uruchomieniu przepływu pracy przepływ pracy uruchamia Get-Date działanie i zapisuje wynik w zmiennej $a . Następnie uruchamia Suspend-Workflow działanie. W odpowiedzi przyjmuje punkt kontrolny, zawiesza przepływ pracy i zwraca obiekt zadania przepływu pracy. Suspend-Workflow Zwraca obiekt zadania przepływu pracy, nawet jeśli przepływ pracy nie jest jawnie uruchamiany jako zadanie.

Resume-Job wznawia Test-Suspend przepływ pracy w zadaniu8. Używa parametru Wait do przechowywania wiersza polecenia do momentu wznowienia zadania.

Polecenie Receive-Job cmdlet pobiera wyniki Test-Suspend przepływu pracy. Ostatnie polecenie w przepływie pracy zwraca obiekt TimeSpan , który reprezentuje czas, który upłynął między bieżącą datą i godziną a datą i godziną zapisaną w $a zmiennej przed wstrzymaniem przepływu pracy.

#SampleWorkflow
Workflow Test-Suspend
{
    $a = Get-Date
    Suspend-Workflow
    (Get-Date)- $a
}

PS C:\> Test-Suspend -PSComputerName Server01
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Job8            PSWorkflowJob   Suspended     True            Server01             Test-Suspend

PS C:\> Resume-Job -Name "Job8" -Wait
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Job8            PSWorkflowJob   Running       True            Server01             Test-Suspend

PS C:\> Receive-Job -Name Job8
        Days              : 0
        Hours             : 0
        Minutes           : 0
        Seconds           : 19
        Milliseconds      : 823
        Ticks             : 198230041
        TotalDays         : 0.000229432917824074
        TotalHours        : 0.00550639002777778
        TotalMinutes      : 0.330383401666667
        TotalSeconds      : 19.8230041
        TotalMilliseconds : 19823.0041
        PSComputerName    : Server01

Polecenie Resume-Job cmdlet umożliwia wznowienie zadania przepływu pracy, które zostało zawieszone przy użyciu Suspend-Workflow działania. To działanie zawiesza przepływ pracy z poziomu przepływu pracy. Jest ona prawidłowa tylko w przepływach pracy.

Aby uzyskać informacje o Suspend-Workflowobiekcie , zobacz about_Suspend-Workflow](.. /PSWorkflow/about/about_Suspend-Workflow.md).

Parametry

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

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

-Filter

Określa tabelę skrótów warunków. To polecenie cmdlet wznawia zadania spełniające wszystkie warunki w 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.

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

-Id

Określa tablicę identyfikatorów dla zadań, które to polecenie cmdlet wznawia.

Identyfikator jest liczbą całkowitą, która jednoznacznie identyfikuje zadanie w bieżącej sesji. Łatwiej jest zapamiętać identyfikator wystąpienia i wpisać go, ale jest on unikatowy tylko w bieżącej sesji. Można wpisać jeden lub więcej identyfikatorów rozdzielonych przecinkami. Aby znaleźć identyfikator zadania, uruchom polecenie Get-Job.

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

-InstanceId

Określa tablicę identyfikatorów wystąpień zadań, które są wznawiane przez to polecenie cmdlet. Wartość domyślna to wszystkie zadania.

Identyfikator wystąpienia to identyfikator GUID, który jednoznacznie identyfikuje zadanie na komputerze. Aby znaleźć identyfikator wystąpienia zadania, uruchom polecenie Get-Job.

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

-Job

Określa zadania do wznowienia. Wprowadź zmienną zawierającą zadania lub polecenie, które pobiera zadania. Możesz również przekazać zadania potokowe Resume-Job do polecenia cmdlet.

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

-Name

Określa tablicę przyjaznych nazw zadań, które to polecenie cmdlet wznawia. Wprowadź co najmniej jedną nazwę zadania. Dozwolone są symbole wieloznaczne.

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

-State

Określa stan zadań do wznowienia. Dopuszczalne wartości tego parametru to:

  • Nierozpoczęte
  • Uruchomiono
  • Ukończone
  • Niepowodzenie
  • Zatrzymana
  • Zablokowano
  • Suspended
  • Odłączony
  • Zawieszanie
  • Zatrzymywanie

To polecenie cmdlet wznawia tylko zadania w stanie Wstrzymanie .

Aby uzyskać więcej informacji na temat stanów zadań, zobacz JobState, wyliczenie.

Type:JobState
Accepted values:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Wait

Wskazuje, że to polecenie cmdlet pomija wiersz polecenia do momentu ponownego uruchomienia wszystkich wyników zadania. Domyślnie to polecenie cmdlet natychmiast zwraca dostępne wyniki.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

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

Dane wejściowe

Job

Do tego polecenia cmdlet można przekazać potoki wszystkich typów zadań. Jeśli Resume-Job pobiera zadanie nieobsługiwanego typu, zwraca błąd zakończenia.

Dane wyjściowe

None, System.Management.Automation.Job

To polecenie cmdlet zwraca zadania, które próbuje wznowić, jeśli używasz parametru PassThru . W przeciwnym razie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Uwagi

Program Windows PowerShell zawiera następujące aliasy dla programu Resume-Job:

  • rujb

  • Resume-Job może wznawiać tylko zadania, które są zawieszone. Jeśli przesyłasz zadanie w innym stanie, Resume-Job uruchamia operację wznawiania zadania, ale generuje ostrzeżenie informujące o tym, że nie można wznowić zadania. Aby pominąć ostrzeżenie, użyj wspólnego parametru WarningAction z wartością SilentlyContinue.

  • Jeśli zadanie nie jest typu, który obsługuje wznawianie, takie jak zadanie przepływu pracy (PSWorkflowJob), Resume-Job zwraca błąd zakończenia.

  • Mechanizm i lokalizacja zapisywania zawieszonego zadania mogą się różnić w zależności od typu zadania. Na przykład zawieszone zadania przepływu pracy są domyślnie zapisywane w magazynie plików prostych, ale mogą być również zapisywane w bazie danych SQL.

  • Po wznowieniu zadania stan zadania zmieni się z Zawieszone na Uruchomione. Aby znaleźć uruchomione zadania, w tym te, które zostały wznowione przez to polecenie cmdlet, użyj parametru Get-Job State polecenia cmdlet, aby pobrać zadania w stanie Uruchomiony.

  • Niektóre typy zadań mają opcje lub właściwości uniemożliwiające wstrzymanie zadania przez program Windows PowerShell. Jeśli próba zawieszenia zadania nie powiedzie się, sprawdź, czy opcje i właściwości zadania zezwalają na wstrzymanie.