about_InlineScript
Descrição breve
Descreve a atividade que executa comandos do InlineScript
PowerShell em um fluxo de trabalho.
Descrição longa
A InlineScript
atividade executa comandos no fluxo de trabalho de uma sessão compartilhada do PowerShell. InlineScript
só é válido em fluxos de trabalho.
Sintaxe
InlineScript {<script block>} <ActivityCommonParameters>
Descrição detalhada
A InlineScript
atividade executa comandos em uma sessão compartilhada do PowerShell. Você pode incluí-lo em um fluxo de trabalho para executar comandos que compartilham dados e comandos que não são válidos em um fluxo de trabalho.
O InlineScript
bloco de script pode incluir todos os comandos e expressões válidos do PowerShell. Como os comandos e expressões em um InlineScript
bloco de script são executados na mesma sessão, eles compartilham todos os estados e dados, incluindo módulos importados e os valores das variáveis.
Você pode colocar uma InlineScript
atividade em qualquer lugar em um fluxo de trabalho ou fluxo de trabalho aninhado, inclusive dentro de um loop ou instrução de controle ou um bloco de script Paralelo ou de Sequência.
A InlineScript
atividade tem os parâmetros comuns da atividade, incluindo PSPersist. No entanto, os comandos e expressões em um InlineScript
bloco de script não têm os recursos de fluxo de trabalho, como ponto de verificação ou persistência e parâmetros comuns de fluxo de trabalho ou atividade. Para obter mais informações, consulte about_ActivityCommonParameters.
Variáveis InlineScript
Por padrão, as variáveis definidas em um fluxo de trabalho não são visíveis para os comandos no InlineScript
bloco de script. Para tornar as variáveis de fluxo de trabalho visíveis para o InlineScript
, use o $Using
modificador scope. O $Using
modificador de escopo é necessário apenas uma vez para cada variável no InlineScript
.
Para obter mais informações sobre o modificador de escopo, consulte about_Remote_Variables$Using
.
O exemplo a seguir mostra que o $Using
modificador de escopo disponibiliza o valor da variável de fluxo de trabalho de nível superior para os comandos no InlineScript
bloco de $a
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
Retornando variáveis em InlineScript
InlineScript
Os comandos podem alterar o valor da variável que foi importada do escopo do fluxo de trabalho, mas as alterações não são visíveis no escopo do fluxo de trabalho. Para torná-las visíveis, retorne o valor alterado para o escopo do fluxo de trabalho, conforme exibido no exemplo a seguir.
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
Observação
Uma instrução com o $Using
modificador de escopo deve aparecer antes de qualquer uso da variável no InlineScript
bloco de script.
Execução em processo
Para melhorar a InlineScript
confiabilidade, os comandos no bloco de script são executados em seu próprio processo, separados do processo no qual o fluxo de trabalho é executado e, em seguida, retornam sua saída para o processo de fluxo de trabalho.
Para direcionar o PowerShell para executar a InlineScript
atividade no processo de fluxo de trabalho, remova o InlineScript
valor da propriedade OutOfProcessActivity da configuração da sessão, como usando o New-PSWorkflowExecutionOption
cmdlet.
Exemplo
O InlineScript
fluxo de trabalho a seguir inclui comandos que são válidos no PowerShell, mas não são válidos em fluxos de trabalho. Por exemplo, o New-Object
cmdlet com o parâmetro ComObject .
workflow Test-Workflow
{
$ie = InlineScript {
$ie = New-Object -ComObject InternetExplorer.Application -Property @{navigate2="www.microsoft.com"}
$ie.Visible = $true
}
$ie
}
Test-Workflow
Confira também
- about_ActivityCommonParameters
- about_Remote_Variables
- about_WorkflowCommonParameters
- Cmdlets PSWorkflow
- Guia de fluxos de trabalho
- Writing a Windows PowerShell Workflow (Escrevendo um Fluxo de Trabalho do Windows PowerShell)