Automatizálási runbookok Windows PowerShell-munkafolyamat alapfogalmak tanulásiLearning key Windows PowerShell Workflow concepts for Automation runbooks

Az Azure Automation Runbookjai Windows PowerShell-munkafolyamatként vannak megvalósítva.Runbooks in Azure Automation are implemented as Windows PowerShell Workflows. Egy Windows PowerShell-munkafolyamat hasonlít a Windows PowerShell-szkriptet, de van néhány jelentős különbség, hogy egy új felhasználóhoz zavaró lehet.A Windows PowerShell Workflow is similar to a Windows PowerShell script but has some significant differences that can be confusing to a new user. Bár a célja, hogy ez a cikk segítséget nyújt a PowerShell-munkafolyamati runbookok írása, javasolt a PowerShell használatával, ha nincs szükség az ellenőrzőpontok runbookok írása.While this article is intended to help you write runbooks using PowerShell workflow, we recommend you write runbooks using PowerShell unless you need checkpoints. Több szintaktikai különbségek vannak PowerShell-munkafolyamati runbookok létrehozásakor, és ezek a különbségek hatékony munkafolyamatokat ír egy kicsit több munkát igényel.There are several syntax differences when authoring PowerShell Workflow runbooks and these differences require a bit more work to write effective workflows.

Egy munkafolyamat olyan programozott, összekapcsolódó lépések, amelyek hosszú ideig futó feladatok elvégzéséhez, vagy több eszközön vagy felügyelt csomóponton keresztül több lépést igénylik.A workflow is a sequence of programmed, connected steps that perform long-running tasks or require the coordination of multiple steps across multiple devices or managed nodes. Egy munkafolyamat képest előnyei a következők: a hogy képesek egyidejűleg elvégezni egy műveletet több eszközön, és lehetővé teszi, hogy automatikusan helyreálljon a hibák.The benefits of a workflow over a normal script include the ability to simultaneously perform an action against multiple devices and the ability to automatically recover from failures. Egy Windows PowerShell-munkafolyamat egy Windows PowerShell-parancsprogram, amely használja a Windows Workflow Foundation.A Windows PowerShell Workflow is a Windows PowerShell script that uses Windows Workflow Foundation. A munkafolyamat Windows PowerShell-szintaxis-készült, és a Windows PowerShell használatával kell elindítani, amíg a munkafolyamat feldolgozását a Windows Workflow Foundation.While the workflow is written with Windows PowerShell syntax and launched by Windows PowerShell, it is processed by Windows Workflow Foundation.

Ebben a cikkben a témakörök a részleteket lásd: – első lépések a Windows PowerShell-munkafolyamat.For complete details on the topics in this article, see Getting Started with Windows PowerShell Workflow.

A munkafolyamat alapvető szerkezeteBasic structure of a workflow

Az első lépése egy PowerShell-munkafolyamat egy PowerShell-parancsprogram konvertálása van mellékelve azt a munkafolyamat kulcsszót.The first step to converting a PowerShell script to a PowerShell workflow is enclosing it with the Workflow keyword. Egy munkafolyamat kezdődik a munkafolyamat kulcsszót a parancsprogram kapcsos zárójelek között elhelyezett törzse követ.A workflow starts with the Workflow keyword followed by the body of the script enclosed in braces. A munkafolyamat neve követi a munkafolyamat kulcsszó, ahogyan az a következő szintaxist:The name of the workflow follows the Workflow keyword as shown in the following syntax:

Workflow Test-Workflow
{
    <Commands>
}

A munkafolyamat nevét meg kell egyeznie az Automation-runbook nevére.The name of the workflow must match the name of the Automation runbook. Ha a runbook importálása folyamatban van, majd a fájlnevet meg kell egyeznie a munkafolyamat nevével, és végződése .ps1.If the runbook is being imported, then the filename must match the workflow name and must end in .ps1.

Ha paramétereket szeretne felvenni a munkafolyamathoz, használja a Param ugyanúgy szkript kulcsszót.To add parameters to the workflow, use the Param keyword just as you would to a script.

KódmódosításokCode changes

PowerShell-munkafolyamati kód megjelenését majdnem teljesen megegyezik a PowerShell-szkriptkódot, néhány lényeges módosítás kivételével.PowerShell workflow code looks almost identical to PowerShell script code except for a few significant changes. A következő szakaszok ismertetik, hogy egy PowerShell-parancsfájlba, a munkafolyamat futtatásához szükséges módosításokat.The following sections describe changes that you need to make to a PowerShell script for it to run in a workflow.

TevékenységekActivities

Egy tevékenység egy adott feladat egy munkafolyamatot belül.An activity is a specific task in a workflow. A parancsfájl áll egy vagy több, mint a munkafolyamat egy vagy több, sorrendben végrehajtott tevékenységek tevődik össze.Just as a script is composed of one or more commands, a workflow is composed of one or more activities that are carried out in a sequence. Windows PowerShell-munkafolyamat automatikusan átalakítja a Windows PowerShell-parancsmagok számos tevékenységek egy munkafolyamat futtatásakor.Windows PowerShell Workflow automatically converts many of the Windows PowerShell cmdlets to activities when it runs a workflow. Amikor megad e parancsmagok egyikét a runbookban, a megfelelő tevékenység Windows Workflow Foundation futtatja.When you specify one of these cmdlets in your runbook, the corresponding activity is run by Windows Workflow Foundation. Azok a parancsmagok nem tartozik megfelelő tevékenység, a Windows PowerShell-munkafolyamat automatikusan futtatja a parancsmagot belül egy InlineScript tevékenység.For those cmdlets without a corresponding activity, Windows PowerShell Workflow automatically runs the cmdlet within an InlineScript activity. Nincs parancsmagok, amelyek ki vannak zárva, és nem használható munkafolyamatban, kivéve, ha tünteti fel az InlineScript blokkon belüli egy készletét.There is a set of cmdlets that are excluded and cannot be used in a workflow unless you explicitly include them in an InlineScript block. Ezekről a fogalmakról további részletek: tevékenységek használata parancsfájl-munkafolyamatok.For further details on these concepts, see Using Activities in Script Workflows.

Munkafolyamat-tevékenységek jellemzőkkel általános paraméterek konfigurálása a működésüket.Workflow activities share a set of common parameters to configure their operation. Általános munkafolyamat-paraméterekkel kapcsolatos részletekért lásd: about_WorkflowCommonParameters.For details about the workflow common parameters, see about_WorkflowCommonParameters.

PozícióparaméterekPositional parameters

Pozícióparaméterek tevékenységek és a egy munkafolyamat-parancsmagok nem használható.You can't use positional parameters with activities and cmdlets in a workflow. Ez azt jelenti a paraméterneveket kell használnia.All this means is that you must use parameter names.

Vegyük példaként a következő kódot, amely lekéri az összes futó szolgáltatásokat.For example, consider the following code that gets all running services.

Get-Service | Where-Object {$_.Status -eq "Running"}

Ha megpróbálja ugyanazt a kódot futtatása egy munkafolyamatban, megjelenik-e az üzenet például a "paraméterkészlet nem oldható fel a megadott nevesített paraméterek használatával."If you try to run this same code in a workflow, you receive a message like "Parameter set cannot be resolved using the specified named parameters." A probléma megoldására adja meg a paraméter neve, ahogy a következő.To correct this, provide the parameter name as in the following.

Workflow Get-RunningServices
{
    Get-Service | Where-Object -FilterScript {$_.Status -eq "Running"}
}

Deszerializált objektumDeserialized objects

A munkafolyamatokban objektumok deszerializálni vannak.Objects in workflows are deserialized. Ez azt jelenti, hogy a tulajdonságai továbbra is elérhetők, de nem a módszereket.This means that their properties are still available, but not their methods. Vegyük példaként a következő PowerShell-kódot, amely leállítja a szolgáltatást a Stop metódus a Service objektum használatával.For example, consider the following PowerShell code that stops a service using the Stop method of the Service object.

$Service = Get-Service -Name MyService
$Service.Stop()

Ha ez a munkafolyamat futtatása próbál kap hibaüzenetet "metódus meghívásának nem támogatott a Windows PowerShell-munkafolyamatban."If you try to run this in a workflow, you receive an error saying "Method invocation is not supported in a Windows PowerShell Workflow."

Egyik lehetőség, hogy ezen két kódsort a burkolása egy InlineScript $Service ebben az esetben lenne egy service objektum a blokkon belül letiltása.One option is to wrap these two lines of code in an InlineScript block in which case $Service would be a service object within the block.

Workflow Stop-Service
{
    InlineScript {
        $Service = Get-Service -Name MyService
        $Service.Stop()
    }
}

Egy másik lehetőség, hogy egy másik parancsmag, amely végrehajtja az módszer esetén azonos funkciókat használja, ha ilyen.Another option is to use another cmdlet that performs the same functionality as the method, if one is available. A mintánkban a Stop-Service-parancsmag a Stop metódus azonos funkciókat biztosít, és használhatja a következő egy munkafolyamathoz.In our sample, the Stop-Service cmdlet provides the same functionality as the Stop method, and you could use the following for a workflow.

Workflow Stop-MyService
{
    $Service = Get-Service -Name MyService
    Stop-Service -Name $Service.Name
}

InlineScriptInlineScript

A InlineScript tevékenység akkor hasznos, ha a kell futtatnia egy vagy több, mint a hagyományos PowerShell-parancsfájlt a PowerShell-munkafolyamat helyett.The InlineScript activity is useful when you need to run one or more commands as traditional PowerShell script instead of PowerShell workflow. Egy munkafolyamatban lévő parancsok feldolgozási Windows Workflow Foundation érkeznek, míg az InlineScript blokkon belüli parancsok dolgozza fel a Windows PowerShell.While commands in a workflow are sent to Windows Workflow Foundation for processing, commands in an InlineScript block are processed by Windows PowerShell.

InlineScript szintaxisa a következő alább látható.InlineScript uses the following syntax shown below.

InlineScript
{
    <Script Block>
} <Common Parameters>

Egy InlineScript a kimeneti változóra való hozzárendelésével adhat vissza kimenetet.You can return output from an InlineScript by assigning the output to a variable. A következő példa leállítja a szolgáltatást, és majd megjeleníti a szolgáltatás nevét.The following example stops a service and then outputs the service name.

Workflow Stop-MyService
{
    $Output = InlineScript {
        $Service = Get-Service -Name MyService
        $Service.Stop()
        $Service
    }

    $Output.Name
}

Az InlineScript blokkon belüli is átadhat értékeket, de kell használnia $Using hatókör-módosítót.You can pass values into an InlineScript block, but you must use $Using scope modifier. A következő példa megegyezik az előző példával, azzal a különbséggel, hogy a szolgáltatásnév egy változó által biztosított.The following example is identical to the previous example except that the service name is provided by a variable.

Workflow Stop-MyService
{
    $ServiceName = "MyService"

    $Output = InlineScript {
        $Service = Get-Service -Name $Using:ServiceName
        $Service.Stop()
        $Service
    }

    $Output.Name
}

Bár a InlineScript tevékenységet bizonyos munkafolyamatok kritikus fontosságú, nem támogatják a munkafolyamat szerkezeteket, és csak a következő okokból szükség esetén használható:While InlineScript activities may be critical in certain workflows, they do not support workflow constructs and should only be used when necessary for the following reasons:

  • Nem használhat ellenőrzőpontok egy InlineScript blokkon belül.You cannot use checkpoints inside an InlineScript block. Ha hiba történik a blokkon belül, a blokk kezdetétől fogva lehet folytatni.If a failure occurs within the block, it must be resumed from the beginning of the block.
  • Nem használhat párhuzamos végrehajtása egy InlineScriptBlock belül.You cannot use parallel execution inside an InlineScriptBlock.
  • InlineScript méretezhetőségi, a munkafolyamat hatással van, mert magánál tartja a Windows PowerShell-munkamenet az InlineScript blokk teljes hosszán.InlineScript affects scalability of the workflow since it holds the Windows PowerShell session for the entire length of the InlineScript block.

InlineScript használatával kapcsolatos további információkért lásd: Windows PowerShell-parancsok futtatása munkafolyamatban és about_InlineScript.For more information on using InlineScript, see Running Windows PowerShell Commands in a Workflow and about_InlineScript.

Párhuzamos feldolgozásParallel processing

Windows PowerShell-munkafolyamatok egyik előnye a hajthatnak végre parancsokat helyett párhuzamosan egymás után csakúgy, mint a szokásos parancsfájlt.One advantage of Windows PowerShell Workflows is the ability to perform a set of commands in parallel instead of sequentially as with a typical script.

Használhatja a párhuzamos kulcsszó használatával hozzon létre egy parancsprogram-blokkot, amelyek egyidejűleg futtathatók több parancsokkal.You can use the Parallel keyword to create a script block with multiple commands that run concurrently. Ez az alább látható a következő szintaxist használ.This uses the following syntax shown below. Ebben az esetben hogy az Activity1 és az Activity2 elindítja egy időben.In this case, Activity1 and Activity2 starts at the same time. Az Activity3 indítja el, csak az Activity1 és az Activity2 befejeződése után.Activity3 starts only after both Activity1 and Activity2 have completed.

Parallel
{
    <Activity1>
    <Activity2>
}
<Activity3>

Vegyük példaként a következő PowerShell-parancsokat, amelyek több fájlok másolása egy hálózati célhelyre.For example, consider the following PowerShell commands that copy multiple files to a network destination. Ezek a parancsok egymás után futnak, úgy, hogy egy fájl Befejezés másolása a következő indítása előtt.These commands are run sequentially so that one file must finish copying before the next is started.

Copy-Item -Path C:\LocalPath\File1.txt -Destination \\NetworkPath\File1.txt
Copy-Item -Path C:\LocalPath\File2.txt -Destination \\NetworkPath\File2.txt
Copy-Item -Path C:\LocalPath\File3.txt -Destination \\NetworkPath\File3.txt

Az alábbi munkafolyamat ugyanazokat a parancsokat párhuzamosan fut, hogy az összes elindítja másolás egy időben.The following workflow runs these same commands in parallel so that they all start copying at the same time. Csak azután legyenek az összes másolt a befejezési üzenetet jelenik meg.Only after they are all copied is the completion message displayed.

Workflow Copy-Files
{
    Parallel
    {
        Copy-Item -Path "C:\LocalPath\File1.txt" -Destination "\\NetworkPath"
        Copy-Item -Path "C:\LocalPath\File2.txt" -Destination "\\NetworkPath"
        Copy-Item -Path "C:\LocalPath\File3.txt" -Destination "\\NetworkPath"
    }

    Write-Output "Files copied."
}

Használhatja a ForEach-Parallel szerkezet használatával egyidejűleg egy gyűjtemény minden elemére feldolgozhat parancsokat.You can use the ForEach -Parallel construct to process commands for each item in a collection concurrently. A gyűjtemény elemeinek feldolgozása párhuzamosan, míg a parancsfájlblokkban lévő parancsok egymás után futnak.The items in the collection are processed in parallel while the commands in the script block run sequentially. Ez az alább látható a következő szintaxist használ.This uses the following syntax shown below. Ebben az esetben Activity1 elindítja a gyűjtemény összes eleme egy időben.In this case, Activity1 starts at the same time for all items in the collection. Minden egyes elem esetében a runbook az Activity2 Activity1 befejeződése után elindul.For each item, Activity2 starts after Activity1 is complete. Az Activity3 indítja el, csak azután az Activity1 és az Activity2 is befejeződött az összes elemet.Activity3 starts only after both Activity1 and Activity2 have completed for all items. Használjuk a ThrottleLimit korlátozza a párhuzamosságot a paramétert.We use the ThrottleLimit parameter to limit the parallelism. Túl magas a ThrottleLimit problémákat okozhat.Too high of a ThrottleLimit can cause problems. Az ideális értékét a ThrottleLimit paraméter a környezetben számos tényezőtől függ.The ideal value for the ThrottleLimit parameter depends on many factors in your environment. Próbálja ki az alacsony érték kezdő kell, és próbálja meg növekvő értékei eltérőek, amíg meg nem találja, amely együttműködik a konkrét körülmény a.You should try start with a low value and try different increasing values until you find one that works for your specific circumstance.

ForEach -Parallel -ThrottleLimit 10 ($<item> in $<collection>)
{
    <Activity1>
    <Activity2>
}
<Activity3>

Az alábbi példa az előző példában a fájlok másolása a párhuzamos hasonlít.The following example is similar to the previous example copying files in parallel. Ebben az esetben egy üzenet jelenik meg az egyes fájlok másolását követően.In this case, a message is displayed for each file after it copies. Csak azután legyenek minden fejeződött be a másolása a végső befejezési üzenetet jelenik meg.Only after they are all completely copied is the final completion message displayed.

Workflow Copy-Files
{
    $files = @("C:\LocalPath\File1.txt","C:\LocalPath\File2.txt","C:\LocalPath\File3.txt")

    ForEach -Parallel -ThrottleLimit 10 ($File in $Files)
    {
        Copy-Item -Path $File -Destination \\NetworkPath
        Write-Output "$File copied."
    }

    Write-Output "All files copied."
}

Megjegyzés

Gyermek runbookok a párhuzamosan futó, mivel ez kimutatták, hogy megbízhatatlan eredményekhez nem ajánlott.We do not recommend running child runbooks in parallel since this has been shown to give unreliable results. Néha a gyermekrunbook kimenetét nem jelenik meg, és a egy gyermek runbook beállítás hatással lehet a többi párhuzamos gyermekrunbookokra.The output from the child runbook sometimes does not show up, and settings in one child runbook can affect the other parallel child runbooks. Változók, például a $VerbosePreference, $WarningPreference, a gyermek runbook számára nem lesznek továbbítva.Variables such as $VerbosePreference, $WarningPreference, and others may not be propagated to the child runbooks. És ezeket az értékeket a gyermekrunbookok módosításakor, előfordulhat, hogy nem megfelelően után visszaállították meghívása.And if the child runbook changes these values, they may not be properly restored after invocation.

Az ellenőrzőpontokCheckpoints

A ellenőrzőpont egy pillanatkép, amely tartalmazza a változók aktuális értékét és bármi addig létrejött adott pontra a munkafolyamat aktuális állapotáról.A checkpoint is a snapshot of the current state of the workflow that includes the current value for variables and any output generated to that point. Ha egy munkafolyamatot ér véget a hibás, vagy fel van függesztve, majd a következő futtatáskor elindul, az utolsó ellenőrzőponttól helyett a munkafolyamat elején.If a workflow ends in error or is suspended, then the next time it is run it will start from its last checkpoint instead of the start of the workflow. Ön állíthat be ellenőrzőpontot egy munkafolyamatban a Checkpoint-Workflow tevékenység.You can set a checkpoint in a workflow with the Checkpoint-Workflow activity. Az Azure Automation szolgáltatás rendelkezik igazságos elosztás, ahol bármelyik runbookhoz, amely 3 óráig fut. van eltávolítva a memóriából, hogy a többi runbookok futtatását.Azure Automation has a feature called fair share, where any runbook that runs for 3 hours is unloaded to allow other runbooks to run. Végül a memóriából runbook lesz töltve, és, ha azt a legutóbbi ellenőrzőponttól venni a runbook végrehajtása folytatódik.Eventually, the unloaded runbook will be reloaded, and when it is, it will resume execution from the last checkpoint taken in the runbook. Így garantálható, hogy a runbook idővel fog befejeződni, hozzá kell adnia az ellenőrzőpontokat, amely kisebb, mint 3 óra időközönként.In order to guarantee that the runbook will eventually complete, you must add checkpoints at intervals that run for less than 3 hours. Ha minden egyes futtatás során egy új ellenőrzőpont hozzáadásakor, ha a runbook egy hiba miatt 3 óra után lekérdezi zárni, majd a runbook folytatódik határozatlan időre.If during each run a new checkpoint is added, and if the runbook gets evicted after 3 hours due to an error, then the runbook will be resumed indefinitely.

A következő mintakód a kivétel létrejötte után a runbook az Activity2 okoz a munkafolyamat befejezéséhez.In the following sample code, an exception occurs after Activity2 causing the workflow to end. Esetén a munkafolyamat fut újra, mivel itt volt beállítva az utolsó ellenőrzőpont runbook az Activity2 futtatásával kezdődik.When the workflow is run again, it starts by running Activity2 since this was just after the last checkpoint set.

<Activity1>
Checkpoint-Workflow
<Activity2>
<Exception>
<Activity3>

A munkafolyamat célszerű ellenőrzőpontokat beállítani, tevékenységeket, kivétel eséllyel okozhatnak, és nem kell ismételni, ha a munkafolyamat folytatása után.You should set checkpoints in a workflow after activities that may be prone to exception and should not be repeated if the workflow is resumed. A munkafolyamat például egy virtuális gépet is létrehozhat.For example, your workflow may create a virtual machine. Ön előtt és után a virtuális gép létrehozása a parancsok beállítani egy ellenőrzőpontot.You could set a checkpoint both before and after the commands to create the virtual machine. Ha a létrehozás sikertelen, majd a parancsok lenne ismételni, ha újra elindult a munkafolyamat.If the creation fails, then the commands would be repeated if the workflow is started again. Ha a munkafolyamat meghiúsul, miután a létrehozás sikeresen befejeződik, majd a virtuális gép nem lesz létrehozva újra a munkafolyamat folytatásakor.If the workflow fails after the creation succeeds, then the virtual machine will not be created again when the workflow is resumed.

Az alábbi példa több fájlt másol egy hálózati helyre, és beállítja egy ellenőrzőpont után minden egyes fájl.The following example copies multiple files to a network location and sets a checkpoint after each file. A hálózati hely nem vesztek el, ha a munkafolyamat hiba befejeződik.If the network location is lost, then the workflow ends in error. Amikor ismét elindul, folytatódik, ami azt jelenti, hogy csak azokat a fájlokat, amelyek már át lettek másolva a rendszer kihagyja az utolsó ellenőrzőpont.When it is started again, it will resume at the last checkpoint meaning that only the files that have already been copied are skipped.

Workflow Copy-Files
{
    $files = @("C:\LocalPath\File1.txt","C:\LocalPath\File2.txt","C:\LocalPath\File3.txt")

    ForEach ($File in $Files)
    {
        Copy-Item -Path $File -Destination \\NetworkPath
        Write-Output "$File copied."
        Checkpoint-Workflow
    }

    Write-Output "All files copied."
}

Mivel a felhasználónév hitelesítő adatok nem rögzíti meghívása után a Suspend-Workflow tevékenység vagy az utolsó ellenőrzőpont után be kell állítani, null, és majd az eszköz áruházból után újra lekérheti azokat a hitelesítő adatok Munkafolyamat-felfüggesztési vagy ellenőrzőpont nevezzük.Because username credentials are not persisted after you call the Suspend-Workflow activity or after the last checkpoint, you need to set the credentials to null and then retrieve them again from the asset store after Suspend-Workflow or checkpoint is called. Ellenkező esetben a következő hibaüzenet jelenhet meg: A munkafolyamat-feladatot nem lehet folytatni, vagy mert adatmegőrzés adatok nem teljesen mentve, vagy nem mentett adatok megőrzése sérült. A munkafolyamat újra kell indítani.Otherwise, you may receive the following error message: The workflow job cannot be resumed, either because persistence data could not be saved completely, or saved persistence data has been corrupted. You must restart the workflow.

A következő ugyanazt a kódot ennek kezelése a PowerShell-munkafolyamati runbookok mutatja be.The following same code demonstrates how to handle this in your PowerShell Workflow runbooks.

workflow CreateTestVms
{
    $Cred = Get-AzureAutomationCredential -Name "MyCredential"
    $null = Connect-AzureRmAccount -Credential $Cred

    $VmsToCreate = Get-AzureAutomationVariable -Name "VmsToCreate"

    foreach ($VmName in $VmsToCreate)
        {
        # Do work first to create the VM (code not shown)

        # Now add the VM
        New-AzureRmVm -VM $Vm -Location "WestUs" -ResourceGroupName "ResourceGroup01"

        # Checkpoint so that VM creation is not repeated if workflow suspends
        $Cred = $null
        Checkpoint-Workflow
        $Cred = Get-AzureAutomationCredential -Name "MyCredential"
        $null = Connect-AzureRmAccount -Credential $Cred
        }
}

Fontos

Add-AzureRmAccount alias már Connect-AzureRMAccount.Add-AzureRmAccount is now an alias for Connect-AzureRMAccount. Ha a Keresés a szalagtár elemmel, ha nem látja, akkor Connect-AzureRMAccount, használhat Add-AzureRmAccount, vagy frissítheti az a modulokat az Automation-fiókban.When searching your library items, if you do not see Connect-AzureRMAccount, you can use Add-AzureRmAccount, or you can update your modules in your Automation Account.

Ez azonban nem kötelező, ha egy egyszerű szolgáltatással konfigurált futtató fiók használatával hitelesít.This is not required if you are authenticating using a Run As account configured with a service principal.

Az ellenőrzőpontok kapcsolatos további információkért lásd: ellenőrzőpontok felvétele Parancsprogramos munkafolyamatba.For more information about checkpoints, see Adding Checkpoints to a Script Workflow.

További lépésekNext steps