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 programowi PowerShell korzyści Windows Workflow Foundation oraz 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 wersji PowerShell 5.1. Aby uzyskać więcej informacji na temat przepływu pracy programu PowerShell, zobacz Przewodnik dotyczący przepływów pracy i Pisanie Windows PowerShell przepływu pracy.

Informacje o przepływach pracy

Przepływy pracy to polecenia, które składają się z uporządkowanej sekwencji powiązanych działań. Zwykle są one uruchamiane przez dłuższy czas, zbierając dane z setek komputerów i dokonując na nich zmian, często w środowiskach heterogenicznych.

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

Przepływy pracy mają kluczowe znaczenie w środowisku IT, ponieważ mogą one przetrwać ponowne uruchomienia i automatycznie odzyskiwać dane 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 oraz wstrzymywać i wznawiać przepływy pracy w sposób niewidoczny dla użytkownika bez utraty danych. Każde działanie w przepływie pracy może być rejestrowane i poddaj inspekcji w celu odwołania. Przepływy pracy mogą być uruchamiane jako zadania i można je zaplanować 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 punktach, które określisz. Punkty trwałości przepływu pracy działają tak 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ć danych po awarii, możesz użyć utrwalonych danych i wznowić działanie od ostatniego punktu trwałości, zamiast ponownie uruchomić rozległy przepływ 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 z uruchomionym przepływem pracy.
  • Sesja przepływu pracy PSSession na komputerze klienckim lub na komputerze zdalnym.
  • Węzły zarządzane , czyli komputery docelowe, na które mają wpływ działania przepływu pracy.

Sesja przepływu pracy nie jest wymagana, ale jest zalecana. Program PSSessions może korzystać z niezawodnych funkcji odzyskiwania i rozłączonych sesji programu PowerShell w celu odzyskania odłą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.

Na komputerze klienckim i komputerze, na którym jest uruchomiona 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 Windows operacyjnych serwera.

Aby można było uruchamiać przepływy pracy, które zawierają polecenia cmdlet, węzły zarządzane muszą mieć Windows PowerShell 2.0 lub nowszy. Węzły zarządzane nie wymagają programu PowerShell, chyba że przepływ pracy zawiera polecenia cmdlet. Na komputerach, które nie mają programu PowerShell, można uruchamiać przepływy pracy, które obejmują polecenia Windows Management Instrumentation (WMI) i model wspólnych informacji (CIM).

Jak uzyskać przepływy pracy

Przepływy pracy są zwykle spakowane w modułach. Aby zaimportować moduł, który zawiera przepływ pracy, użyj dowolnego polecenia w module lub Import-Module użyj 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, Get-Command użyj parametru CommandType polecenia cmdlet .

Get-Command -CommandType Workflow

Jak uruchamiać przepływy pracy

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

  1. Jeśli 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ę programu PowerShell na komputerze, na którym jest uruchamiana sesja przepływu pracy, oraz w węzłach zarządzanych, na które mają wpływ przepływy pracy, które zawierają polecenia cmdlet.

    Ten krok należy wykonać tylko raz na każdym komputerze biorącym udział w programie.

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

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

    Enable-PSRemoting -Force
    

    Komunikacja zdalna można włączyć przy użyciu ustawienia Włącz wykonywanie zasady grupy skryptu. Aby uzyskać więcej informacji, zobacz about_Group_Policy_Settings i about_Execution_Policies.

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

    Polecenie New-PSWorkflowSession cmdlet uruchamia sesję, która używa wbudowanej konfiguracji sesji Microsoft.PowerShell.Workflow na komputerze docelowym. Ta konfiguracja sesji obejmuje skrypty, typ i formatowanie plików 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 taka sama jak przy użyciu New-PSWorkflowSession polecenia 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ś administratorem na komputerze sesji przepływu pracy, New-PSWorkflowExecutionOption możesz użyć polecenia cmdlet do utworzenia niestandardowych ustawień opcji dla konfiguracji sesji przepływu pracy. Użyj polecenia Set-PSSessionConfiguration cmdlet , 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, komputerów docelowych, użyj parametru wspólnego przepływu pracy PSComputerName .

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

    Węzeł zarządzany to komputer, który hostuje sesję przepływu pracy:

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

    Węzły zarządzane są komputerami zdalnymi.

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

    Poniższy przykład uruchamia program na Test-Workflow setkach komputerów. Polecenie Get-Content cmdlet pobiera nazwy komputerów z pliku tekstowego i zapisuje je $Servers w zmiennej na komputerze lokalnym.

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

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

Używanie wspólnych parametrów przepływu pracy

Typowe parametry przepływu pracy to zestaw parametrów, które program PowerShell automatycznie dodaje 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 wspólneparametry , 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 zarządzane węzły, których dotyczy przepływ pracy.

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

Wspólny parametr przepływu pracy PSPersist określa, kiedy dane przepływu pracy są utrwalane. Umożliwia dodawanie 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 pozwalają określić charakterystykę połączenia zdalnego z węzłami zarządzanymi. Ich nazwy i funkcje są podobne do parametrów polecenia cmdlet komunikacji zdalnej, w tym Invoke-Command.

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

Należy pamiętać, aby odróżnić parametry komunikacji zdalnej definiujące PS-prefixed połączenie dla sesji przepływu pracy od typowych parametrów przepływu pracy, które definiują połączenie z węzłami zarządzanymi.

$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, takie 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ż