Partager via


about_InlineScript

Description courte

Décrit l’activité InlineScript , qui exécute des commandes PowerShell dans un flux de travail.

Description longue

L’activité InlineScript exécute des commandes dans le flux de travail d’une session PowerShell partagée. InlineScript n’est valide que dans les flux de travail.

Syntaxe

InlineScript {<script block>} <ActivityCommonParameters>

Description détaillée

L’activité InlineScript exécute des commandes dans une session PowerShell partagée. Vous pouvez l’inclure dans un flux de travail pour exécuter des commandes qui partagent des données et des commandes qui ne sont pas valides dans un flux de travail.

Le InlineScript bloc de script peut inclure toutes les commandes et expressions PowerShell valides. Étant donné que les commandes et les expressions d’un InlineScript bloc de script s’exécutent dans la même session, ils partagent tous les états et données, y compris les modules importés et les valeurs des variables.

Vous pouvez placer une InlineScript activité n’importe où dans un flux de travail ou un flux de travail imbriqué, notamment à l’intérieur d’une boucle ou d’une instruction de contrôle ou d’un bloc de script parallèle ou séquence.

L’activité InlineScript a les paramètres communs d’activité, y compris PSPersist. Toutefois, les commandes et les expressions d’un InlineScript bloc de script ne disposent pas des fonctionnalités de flux de travail telles que case activée pointage ou persistance, ainsi que des paramètres courants de flux de travail ou d’activité. Pour plus d’informations, consultez about_ActivityCommonParameters.

InlineScript Variables

Par défaut, les variables définies dans un flux de travail ne sont pas visibles par les commandes du bloc de InlineScript script. Pour rendre les variables de flux de travail visibles par le InlineScriptmodificateur d’étendue, utilisez le modificateur d’étendue $Using . Le $Using modificateur d’étendue n’est requis qu’une seule fois pour chaque variable dans le InlineScript.

Pour plus d’informations sur le modificateur d’étendue $Using , consultez about_Remote_Variables.

L’exemple suivant montre que le $Using modificateur d’étendue rend la valeur de la $a variable de flux de travail de niveau supérieur disponible pour les commandes du bloc de InlineScript script.

workflow Test-Workflow {
  $a = 3

  ## Without $Using, the $a workflow variable isn't visible
  ## in inline script.
  InlineScript {"Inline A0 = $a"}

  ## $Using imports the variable and its current value.
  InlineScript {"Inline A1 = $Using:a"}
}

Test-Workflow
Inline A0 =
Inline A1 = 3

Retour de variables dans InlineScript

InlineScript Les commandes peuvent modifier la valeur de la variable importée à partir de l’étendue du flux de travail, mais les modifications ne sont pas visibles dans l’étendue du flux de travail. Pour les rendre visibles, renvoyez la valeur modifiée dans la portée du workflow, comme illustré dans l'exemple ci-dessous.

workflow Test-Workflow {
  $a = 3

  ##  Changes to the InlineScript variable value don't
  ##  change the workflow variable.
  InlineScript {
    $a = $Using:a+1;
    "Inline A = $a"
  }
  "Workflow A = $a"

  ##  To change the variable in workflow scope, return the
  ##  new value.
  $a = InlineScript {$b = $Using:a+1; $b}
  "Workflow New A = $a"
}

Test-Workflow
Inline A = 4
Workflow A = 3
Workflow New A = 4

Remarque

Une instruction avec le modificateur d’étendue $Using doit apparaître avant toute utilisation de la variable dans le bloc de InlineScript script.

Exécution en cours d’exécution

Pour améliorer la fiabilité, les commandes du InlineScript bloc de script s’exécutent dans leur propre processus, séparées du processus dans lequel le flux de travail s’exécute, puis retournent leur sortie au processus de flux de travail.

Pour diriger PowerShell pour exécuter l’activité InlineScript dans le processus de flux de travail, supprimez la InlineScript valeur de la propriété OutOfProcessActivity de la configuration de session, par exemple à l’aide de l’applet New-PSWorkflowExecutionOption de commande.

Exemple

Le InlineScript flux de travail suivant inclut des commandes valides dans PowerShell, mais qui ne sont pas valides dans les flux de travail. Par exemple, l’applet New-Object de commande avec le paramètre ComObject .

workflow Test-Workflow
{
  $ie = InlineScript {
    $ie = New-Object -ComObject InternetExplorer.Application -Property @{navigate2="www.microsoft.com"}

    $ie.Visible = $true
  }

  $ie
}

Test-Workflow

Voir aussi