Om arbets flödenAbout Workflows

Kort beskrivningShort description

Innehåller en kort introduktion till PowerShell Workflow-funktionen.Provides a brief introduction to the PowerShell Workflow feature.

Lång beskrivningLong description

PowerShell-arbetsflöde ger fördelarna med Windows Workflow Foundation till PowerShell och gör det möjligt att skriva och köra arbets flöden.PowerShell Workflow brings the benefits of the Windows Workflow Foundation to PowerShell and enables you to write and run workflows.

PowerShell-arbetsflöde introducerades i PowerShell 3,0 och modulen är tillgänglig upp till PowerShell 5,1.PowerShell Workflow was introduced in PowerShell 3.0 and the module is available up to PowerShell 5.1. Mer information om PowerShell-arbetsflöde finns i arbets flödes guiden och skriva ett Windows PowerShell-arbetsflöde.For more information about PowerShell Workflow, see the Workflows Guide and Writing a Windows PowerShell Workflow.

Om arbets flödenAbout workflows

Arbets flöden är kommandon som består av en ordnad sekvens av relaterade aktiviteter.Workflows are commands that consist of an ordered sequence of related activities. De körs vanligt vis under en längre tid och samlar in data från och gör ändringar i hundratals datorer, ofta i heterogena miljöer.Typically, they run for an extended period of time, gathering data from and making changes to hundreds of computers, often in heterogeneous environments.

Arbets flöden kan skrivas i XAML, språket som används i Windows Workflow Foundation eller på PowerShell-språket.Workflows can be written in XAML, the language used in Windows Workflow Foundation, or in the PowerShell language. Arbets flöden paketeras vanligt vis i moduler och innehåller hjälp ämnen.Workflows are typically packaged in modules and include help topics. Mer information finns i Översikt över XAML (WPF).For more information, see XAML Overview (WPF).

Arbets flöden är viktiga i en IT-miljö eftersom de kan överleva omstarter och automatiskt återställas från vanliga fel.Workflows are critical in an IT environment because they can survive reboots and recover automatically from common failures. Du kan koppla från och återansluta från sessioner och datorer som kör arbets flöden utan att avbryta arbets flödes bearbetningen och pausa och återuppta arbets flöden transparent utan data förlust.You can disconnect and reconnect from sessions and computers running workflows without interrupting workflow processing, and suspend and resume workflows transparently without data loss. Varje aktivitet i ett arbets flöde kan loggas och granskas för referens.Each activity in a workflow can be logged and audited for reference. Arbets flöden kan köras som jobb och kan schemaläggas med hjälp av funktionen schemalagda uppgifter i PowerShell.Workflows can run as jobs and can be scheduled by using the Scheduled Jobs feature of PowerShell.

Tillstånd och data i ett arbets flöde sparas eller sparas i början och i slutet av arbets flödet och vid de punkter som du anger.The state and data in a workflow is saved or persisted at the beginning and end of the workflow and at points that you specify. Beständighets punkter i arbets flödet fungerar som databas ögonblicks bilder eller program kontroll punkter för att skydda arbets flödet från effekterna av avbrott och haverier.Workflow persistence points work like database snapshots or program checkpoints to protect the workflow from the effects of interruptions and failures. Om arbets flödet inte kan återställas efter ett fel kan du använda de sparade data och återuppta från den senaste beständiga punkten, i stället för att köra om ett omfattande arbets flöde från början.If the workflow is unable to recover from a failure, you can use the persisted data and resume from the last persistence point, instead of rerunning an extensive workflow from the beginning.

Arbets flödes krav och konfigurationWorkflow requirements and configuration

En PowerShell Workflow-konfiguration består av följande element:A PowerShell Workflow configuration consists of the following elements:

  • En klient dator som kör arbets flödet.A client computer, which runs the workflow.
  • En arbets flödes session, PSSession , på klient datorn eller en fjärrdator.A workflow session, PSSession , on the client computer or on a remote computer.
  • Hanterade noder, de mål datorer som påverkas av arbets flödes aktiviteterna.Managed nodes, the target computers that are affected by the workflow activities.

Arbets flödes sessionen krävs inte, men rekommenderas.The workflow session isn't required, but is recommended. PSSessions kan dra nytta av funktionerna för robust återställning och frånkopplade sessioner i PowerShell för att återställa frånkopplade arbets flödes sessioner.PSSessions can take advantage of the robust recovery and Disconnected Sessions features of PowerShell to recover disconnected workflow sessions. Mer information finns i about_Remote_Disconnected_SessionsFor more information, see about_Remote_Disconnected_Sessions

Eftersom klient datorn och datorn där arbets flödes sessionen körs kan hanterade noder, kan du köra ett arbets flöde på en dator som uppfyller alla roller.Because the client computer and the computer on which the workflow session runs can be managed nodes, you can run a workflow on a single computer that fulfills all roles.

Klient datorn och datorn där arbets flödes sessionen körs måste köra PowerShell 3,0.The client computer and the computer on which the workflow session runs must be running PowerShell 3.0. Alla berättigade system stöds, inklusive alternativ för Server Core-installation av Windows Server-operativsystem.All eligible systems are supported, including the Server Core installation options of Windows Server operating systems.

För att köra arbets flöden som innehåller cmdlets måste de hanterade noderna ha Windows PowerShell 2,0 eller senare.To run workflows that include cmdlets, the managed nodes must have Windows PowerShell 2.0 or later. Hanterade noder kräver inte PowerShell om inte arbets flödet innehåller cmdletar.Managed nodes don't require PowerShell unless the workflow includes cmdlets. Du kan köra arbets flöden som inkluderar Windows Management Instrumentation (WMI) och Common Information Model (CIM) kommandon på datorer som inte har PowerShell.You can run workflows that include Windows Management Instrumentation (WMI) and Common Information Model (CIM) commands on computers that don't have PowerShell.

Så här hämtar du arbets flödenHow to get workflows

Arbets flöden paketeras vanligt vis i moduler.Workflows are typically packaged in modules. Om du vill importera modulen som innehåller ett arbets flöde, använder du valfritt kommando i modulen eller använder Import-Module cmdleten.To import the module that includes a workflow, use any command in the module or use the Import-Module cmdlet. Moduler importeras automatiskt vid första användningen av ett kommando i modulen.Modules are imported automatically on first use of any command in the module.

Om du vill hitta arbets flöden i moduler som är installerade på datorn använder du Get-Command cmdlet: en CommandType -parameter.To find the workflows in modules installed on your computer, use the Get-Command cmdlet's CommandType parameter.

Get-Command -CommandType Workflow

Så här kör du arbets flödenHow to run workflows

Använd följande procedur om du vill köra ett arbets flöde.To run a workflow, use the following procedure.

  1. Det här steget krävs inte när den hanterade noden är den lokala datorn.When the managed node is the local computer, this step isn't required. Annars startar du PowerShell med alternativet Kör som administratör på klient datorn.Otherwise, on the client computer, start PowerShell with the Run as administrator option.

    Start-Process PowerShell -Verb RunAs
    
  2. Aktivera PowerShell-fjärrkommunikation på datorn som kör arbets flödes sessionen och på hanterade noder som påverkas av arbets flöden som innehåller cmdletar.Enable PowerShell remoting on the computer that runs the workflow session and on managed nodes affected by workflows that include cmdlets.

    Du behöver bara göra det här steget en gång på varje deltagande dator.You only need to do this step once on each participating computer.

    Det här steget krävs bara när du kör arbets flöden som innehåller cmdletar.This step is required only when running workflows that include cmdlets. Du behöver inte aktivera fjärr kommunikation på klient datorn, om inte arbets flödes sessionen körs på klient datorn eller på några hanterade noder som kör PowerShell 3,0.You don't need to enable remoting on the client computer, unless the workflows session runs on the client computer, or on any managed nodes that are running PowerShell 3.0.

    Använd cmdleten om du vill aktivera fjärr kommunikation Enable-PSRemoting .To enable remoting, use the Enable-PSRemoting cmdlet.

    Enable-PSRemoting -Force
    

    Du kan aktivera fjärr kommunikation med hjälp av inställningen Aktivera körning av skript Grupprincip.You can enable remoting by using the Turn on Script Execution Group Policy setting. Mer information finns i about_Group_Policy_Settings och about_Execution_Policies.For more information, see about_Group_Policy_Settings and about_Execution_Policies.

  3. Använd New-PSWorkflowSession New-PSSession cmdletarna eller för att skapa arbets flödes sessionen.Use the New-PSWorkflowSession or New-PSSession cmdlets to create the workflow session.

    New-PSWorkflowSessionCmdleten startar en session som använder den inbyggda konfigurationen av Microsoft. PowerShell. Workflow -sessionen på mål datorn.The New-PSWorkflowSession cmdlet starts a session that uses the built-in Microsoft.PowerShell.Workflow session configuration on the destination computer. I den här konfigurationen ingår skript, typ och formatering av filer samt alternativ som är utformade för arbets flöden.This session configuration includes scripts, type and formatting files, and options that are designed for workflows.

    Du kan också använda New-PSSession cmdleten.Or, use the New-PSSession cmdlet. Använd parametern ConfigurationName för att ange konfigurationen för Microsoft. PowerShell. Workflow -sessionen.Use the ConfigurationName parameter to specify the Microsoft.PowerShell.Workflow session configuration. Det här kommandot är detsamma som att använda- New-PSWorkflowSession cmdleten.This command is the same as using the New-PSWorkflowSession cmdlet.

    Ett alternativ är att använda New-PSSession cmdleten.An alternative is to use the New-PSSession cmdlet. Använd parametern ConfigurationName för att ange konfigurationen för Microsoft. PowerShell. Workflow -sessionen.Use the ConfigurationName parameter to specify the Microsoft.PowerShell.Workflow session configuration.

    På den lokala datorn:On the local computer:

    $ws = New-PSWorkflowSession
    

    På en fjärrdator:On a remote computer:

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

    Om du är administratör på arbets flödes sessionen kan du använda New-PSWorkflowExecutionOption cmdleten för att skapa anpassade alternativ inställningar för konfigurationen av arbets flödets session.If you are an Administrator on the workflow session computer, you can use the New-PSWorkflowExecutionOption cmdlet to create custom option settings for the workflow session configuration. Och Använd Set-PSSessionConfiguration cmdleten för att ändra konfigurationen för sessionen.And, use the Set-PSSessionConfiguration cmdlet to change the session configuration.

    $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. Kör arbets flödet i arbets flödes sessionen.Run the workflow in the workflow session. Om du vill ange namnen på de hanterade noderna, mål datorerna använder du PSComputerName arbets flödets gemensamma parameter.To specify the names of the managed nodes, target computers, use the PSComputerName workflow common parameter.

    Följande exempel kör arbets flödet med namnet test-Workflow.The following examples run the workflow named Test-Workflow.

    Där den hanterade noden är den dator som är värd för arbets flödes sessionen:Where the managed node is the computer that hosts the workflow session:

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

    Var de hanterade noderna är fjärrdatorer.Where the managed nodes are remote computers.

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

    I följande exempel körs test-Workflow på hundratals datorer.The following example runs the Test-Workflow on hundreds of computers. Get-ContentCmdlet: en hämtar dator namnen från en textfil och sparar dem i $Servers variabeln på den lokala datorn.The Get-Content cmdlet gets the computer names from a text file and saves them in the $Servers variable on the local computer.

    Invoke-Command använder $Using omfångs modifieraren för att definiera $Servers variabeln i den lokala sessionen.Invoke-Command uses the $Using scope modifier to define the $Servers variable in the local session. Mer information om $Using omfångs modifieraren finns i about_Remote_Variables.For more information about the $Using scope modifier, see about_Remote_Variables.

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

Använda gemensamma parametrar för arbets flödeUsing workflow common parameters

De gemensamma parametrarna för arbets flödet är en uppsättning parametrar som PowerShell automatiskt lägger till i alla arbets flöden.The workflow common parameters are a set of parameters that PowerShell adds automatically to all workflows. PowerShell lägger till cmdlets vanliga parametrar i alla arbets flöden, även om arbets flödet inte använder attributet CmdletBinding .PowerShell adds the cmdlet common parameters to all workflows, even if the workflow doesn't use the CmdletBinding attribute.

Följande arbets flöde definierar till exempel inga parametrar.For example, the following workflow defines no parameters. Men när du kör arbets flödet har det både CommonParameters och WorkflowCommonParameters.However, when you run the workflow, it has both the CommonParameters and WorkflowCommonParameters.

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

Arbets flödets gemensamma parametrar innehåller flera parametrar som är nödvändiga för att köra arbets flöden.The workflow common parameters include several parameters that are essential to running workflows. Den gemensamma parametern PSComputerName anger till exempel de hanterade noder som arbets flödet påverkar.For example, the PSComputerName common parameter specifies the managed nodes that the workflow affects.

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

Den gemensamma PSPersist -parametern för arbets flödet avgör när arbets flödes data sparas.The PSPersist workflow common parameter determines when workflow data is persisted. Du kan lägga till persistence mellan aktiviteter i arbets flöden som inte definierar beständiga punkter.It enables you to add persistence point between activities to workflows that don't define persistence points.

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

I andra gemensamma parametrar för arbets flöde kan du ange egenskaperna för fjärr anslutningen till de hanterade noderna.Other workflow common parameters let you specify the characteristics of the remote connection to the managed nodes. Deras namn och funktionalitet liknar parametrarna för fjärr-cmdletar, inklusive Invoke-Command .Their names and functionality are similar to the parameters of remoting cmdlets, including Invoke-Command.

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

Se till att skilja på de parametrar för fjärr anslutning som definierar anslutningen till arbets flödes sessionen från de gemensamma parametrarna PS-prefixed Workflow som definierar anslutningen till de hanterade noderna.Take care to distinguish the remoting parameters that define the connection for the workflow session from the PS-prefixed workflow common parameters that define the connection to the managed nodes.

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

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

Vissa gemensamma parametrar för arbets flödet är unika för arbets flöden, till exempel parametern PSParameterCollection som gör att du kan ange olika parameter värden för olika arbets flöden för olika fjärrnoder.Some workflow common parameters are unique to workflows, such as the PSParameterCollection parameter that lets you specify different workflow common parameter values for different remote nodes. En lista och beskrivning av de gemensamma parametrarna för arbets flödet finns i about_WorkflowCommonParameters.For a list and description of the workflow common parameters, see about_WorkflowCommonParameters.

Se ävenSee also

Invoke-arbetsflödeInvoke-AsWorkflow

New-PSSessionNew-PSSession

PSWorkflow -cmdletarPSWorkflow cmdlets

ArbetsflödesguidenWorkflows Guide

Skriva ett Windows PowerShell-arbetsflödeWriting a Windows PowerShell Workflow