Udostępnij za pośrednictwem


about_Workflows

Krótki opis

Zawiera krótkie wprowadzenie do funkcji przepływu pracy programu PowerShell.

Długi opis

Przepływ pracy programu PowerShell zapewnia korzyści programu Windows Workflow Foundation w programie PowerShell i umożliwia pisanie i uruchamianie przepływów pracy.

Przepływ pracy programu PowerShell został wprowadzony w programie PowerShell 3.0, a moduł jest dostępny do programu PowerShell 5.1. Aby uzyskać więcej informacji na temat przepływu pracy programu PowerShell, zobacz Przewodnik przepływów pracy i Pisanie przepływu pracy programu Windows PowerShell.

Informacje o przepływach pracy

Przepływy pracy to polecenia składające się z uporządkowanej sekwencji powiązanych działań. Zazwyczaj są one uruchamiane przez dłuższy czas, zbierając dane z i wprowadzając zmiany w setkach komputerów, często w środowiskach heterogenicznych.

Przepływy pracy można pisać w języku XAML, języku używanym w programie Windows Workflow Foundation lub w języku programu PowerShell. Przepływy pracy są zwykle pakowane w modułach i zawierają tematy pomocy. Aby uzyskać więcej informacji, zobacz XAML Overview (WPF).

Przepływy pracy mają krytyczne znaczenie w środowisku IT, ponieważ mogą przetrwać ponowne uruchomienie i automatycznie odzyskać sprawność po typowych awariach. Możesz rozłączyć i ponownie nawiązać połączenie z sesjami i komputerami z uruchomionymi przepływami pracy bez przerywania przetwarzania przepływu pracy, a także w sposób niewidoczny dla użytkownika wstrzymać i wznowić przepływy pracy bez utraty danych. Każde działanie w przepływie pracy można rejestrować i przeprowadzać inspekcję w celu uzyskania informacji referencyjnych. Przepływy pracy mogą być uruchamiane jako zadania i mogą być zaplanowane przy użyciu funkcji Zaplanowane zadania programu PowerShell.

Stan i dane w przepływie pracy są zapisywane lub utrwalane na początku i na końcu przepływu pracy oraz w określonych punktach. Punkty trwałości przepływu pracy działają, takie jak migawki bazy danych lub punkty kontrolne programu, aby chronić przepływ pracy przed skutkami przerw i awarii. Jeśli przepływ pracy nie może odzyskać sprawności po awarii, możesz użyć utrwalonych danych i wznowić działanie z ostatniego punktu trwałości, zamiast ponownego uruchamiania obszernego przepływu pracy od początku.

Wymagania i konfiguracja przepływu pracy

Konfiguracja przepływu pracy programu PowerShell składa się z następujących elementów:

  • Komputer kliencki, który uruchamia przepływ pracy.
  • Sesja przepływu pracy, PSSession, na komputerze klienckim lub na komputerze zdalnym.
  • Węzły zarządzane— komputery docelowe, których dotyczą działania przepływu pracy.

Sesja przepływu pracy nie jest wymagana, ale jest zalecana. Usługi PSSessions mogą korzystać z niezawodnych funkcji odzyskiwania i rozłączonych sesji programu PowerShell w celu odzyskania rozłączonych sesji przepływu pracy. Aby uzyskać więcej informacji, zobacz about_Remote_Disconnected_Sessions

Ponieważ komputer kliencki i komputer, na którym działa sesja przepływu pracy, mogą być węzłami zarządzanymi, można uruchomić przepływ pracy na jednym komputerze, który spełnia wszystkie role.

Komputer kliencki i komputer, na którym działa sesja przepływu pracy, musi być uruchomiony program PowerShell 3.0. Obsługiwane są wszystkie kwalifikujące się systemy, w tym opcje instalacji Server Core systemów operacyjnych Windows Server.

Aby uruchamiać przepływy pracy zawierające polecenia cmdlet, węzły zarządzane muszą mieć program Windows PowerShell 2.0 lub nowszy. Węzły zarządzane nie wymagają programu PowerShell, chyba że przepływ pracy zawiera polecenia cmdlet. Możesz uruchamiać przepływy pracy, które zawierają polecenia Instrumentacji zarządzania Windows (WMI) i Common Information Model (CIM) na komputerach, które nie mają programu PowerShell.

Jak uzyskać przepływy pracy

Przepływy pracy są zwykle pakowane w modułach. Aby zaimportować moduł zawierający przepływ pracy, użyj dowolnego polecenia w module lub użyj Import-Module polecenia cmdlet . Moduły są importowane automatycznie przy pierwszym użyciu dowolnego polecenia w module.

Aby znaleźć przepływy pracy w modułach zainstalowanych na komputerze, użyj parametru Get-CommandCommandType polecenia cmdlet.

Get-Command -CommandType Workflow

Jak uruchamiać przepływy pracy

Aby uruchomić przepływ pracy, użyj poniższej procedury.

  1. Gdy węzeł zarządzany jest komputerem lokalnym, ten krok nie jest wymagany. W przeciwnym razie na komputerze klienckim uruchom program PowerShell z opcją Uruchom jako administrator.

    Start-Process PowerShell -Verb RunAs
    
  2. Włącz zdalną obsługę zdalną programu PowerShell na komputerze, na który jest uruchamiana sesja przepływu pracy i w węzłach zarządzanych, których dotyczy przepływy pracy, które obejmują polecenia cmdlet.

    Ten krok należy wykonać tylko raz na każdym komputerze uczestniczącym.

    Ten krok jest wymagany tylko w przypadku uruchamiania przepływów pracy zawierających polecenia cmdlet. Nie musisz włączać komunikacji zdalnej na komputerze klienckim, chyba że sesja przepływów pracy jest uruchamiana na komputerze klienckim lub w węzłach zarządzanych z uruchomionym programem PowerShell 3.0.

    Aby włączyć zdalną obsługę zdalną Enable-PSRemoting , użyj polecenia cmdlet .

    Enable-PSRemoting -Force
    

    Komunikacja zdalna można włączyć za pomocą ustawienia Włącz zasady grupy wykonywania skryptu. Aby uzyskać więcej informacji, zobacz about_Group_Policy_Ustawienia i about_Execution_Policies.

  3. New-PSWorkflowSession Użyj poleceń cmdlet lubNew-PSSession, aby utworzyć sesję przepływu pracy.

    Polecenie New-PSWorkflowSession cmdlet uruchamia sesję korzystającą z wbudowanej konfiguracji sesji Microsoft.PowerShell.Workflow na komputerze docelowym. Ta konfiguracja sesji obejmuje skrypty, typy i pliki formatowania oraz opcje przeznaczone dla przepływów pracy.

    Możesz też użyć New-PSSession polecenia cmdlet . Użyj parametru ConfigurationName , aby określić konfigurację sesji Microsoft.PowerShell.Workflow . To polecenie jest takie samo jak w przypadku polecenia New-PSWorkflowSession cmdlet .

    Alternatywą jest użycie New-PSSession polecenia cmdlet . Użyj parametru ConfigurationName , aby określić konfigurację sesji Microsoft.PowerShell.Workflow .

    Na komputerze lokalnym:

    $ws = New-PSWorkflowSession
    

    Na komputerze zdalnym:

    $ws = New-PSWorkflowSession -ComputerName Server01 `
    -Credential Domain01\Admin01
    

    Jeśli jesteś Administracja istratorem na komputerze sesji przepływu pracy, możesz użyć New-PSWorkflowExecutionOption polecenia cmdlet , aby utworzyć niestandardowe ustawienia opcji dla konfiguracji sesji przepływu pracy. Użyj polecenia cmdlet , Set-PSSessionConfiguration aby zmienić konfigurację sesji.

    $sto = New-PSWorkflowExecutionOption -MaxConnectedSessions 150
    Invoke-Command -ComputerName Server01 `
    {Set-PSSessionConfiguration Microsoft.PowerShell.Workflow `
    -SessionTypeOption $Using:sto}
    $ws = New-PSWorkflowSession -ComputerName Server01 `
    -Credential Domain01\Admin01
    
  4. Uruchom przepływ pracy w sesji przepływu pracy. Aby określić nazwy węzłów zarządzanych, komputery docelowe, użyj wspólnego parametru przepływu pracy PSComputerName .

    W poniższych przykładach uruchomiono przepływ pracy o nazwie Test-Workflow.

    Gdzie węzeł zarządzany jest komputerem hostujący sesję przepływu pracy:

    Invoke-Command -Session $ws {Test-Workflow}
    

    Gdzie węzły zarządzane są komputerami zdalnymi.

    Invoke-Command -Session $ws{
    Test-Workflow -PSComputerName Server01, Server02 }
    

    W poniższym przykładzie uruchomiono Test-Workflow element na setkach komputerów. Polecenie Get-Content cmdlet pobiera nazwy komputerów z pliku tekstowego i zapisuje je w zmiennej $Servers na komputerze lokalnym.

    Invoke-Command$Using używa modyfikatora zakresu do zdefiniowania $Servers zmiennej w sesji lokalnej. Aby uzyskać więcej informacji na temat $Using modyfikatora zakresu, zobacz about_Remote_Variables.

    $Servers = Get-Content Servers.txt
    Invoke-Command -Session $ws {Test-Workflow -PSComputerName $Using:Servers }
    

Używanie typowych parametrów przepływu pracy

Typowe parametry przepływu pracy to zestaw parametrów, które program PowerShell dodaje automatycznie do wszystkich przepływów pracy. Program PowerShell dodaje wspólne parametry polecenia cmdlet do wszystkich przepływów pracy, nawet jeśli przepływ pracy nie używa atrybutu CmdletBinding .

Na przykład poniższy przepływ pracy nie definiuje żadnych parametrów. Jednak po uruchomieniu przepływu pracy ma on zarówno parametry CommonParameters, jak i WorkflowCommonParameters.

workflow Test-Workflow {Get-Process}
Get-Command Test-Workflow -Syntax
Test-Workflow [<WorkflowCommonParameters>] [<CommonParameters>]

Typowe parametry przepływu pracy obejmują kilka parametrów, które są niezbędne do uruchamiania przepływów pracy. Na przykład wspólny parametr PSComputerName określa węzły zarządzane, które ma wpływ na przepływ pracy.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02
}

Typowy parametr przepływu pracy PSPersist określa, kiedy dane przepływu pracy są utrwalane. Umożliwia dodanie punktu trwałości między działaniami do przepływów pracy, które nie definiują punktów trwałości.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSPersist:$True
}

Inne typowe parametry przepływu pracy umożliwiają określenie cech połączenia zdalnego z węzłami zarządzanymi. Ich nazwy i funkcje są podobne do parametrów poleceń cmdlet komunikacji zdalnie, w tym Invoke-Command.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSPort 443
}

Należy pamiętać o odróżnieniu parametrów komunikacji równorzędnej definiujących połączenie dla sesji przepływu pracy z PS-prefixed typowych parametrów przepływu pracy, które definiują połączenie z zarządzanymi węzłami.

$ws = New-PSSession -ComputerName Server01 -ConfigurationName Microsoft.PowerShell.Workflow

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSConfigurationName Microsoft.PowerShell.Workflow
}

Niektóre typowe parametry przepływu pracy są unikatowe dla przepływów pracy, takich jak parametr PSParameterCollection , który umożliwia określenie różnych wspólnych wartości parametrów przepływu pracy dla różnych węzłów zdalnych. Aby uzyskać listę i opis typowych parametrów przepływu pracy, zobacz about_WorkflowCommonParameters.

Zobacz też