Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use essa tarefa para executar um script do PowerShell no Linux, macOS ou Windows.
Observação
Por padrão, o PowerShell v2 usa o PowerShell Core para agentes do Linux e o Windows PowerShell para agentes do Windows. Para usar a versão mais recente do PowerShell em agentes do Windows, defina o parâmetro pwsh
como true
. Em vez disso, o PowerShell Core será usado.
Sintaxe
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
# Preference Variables
#errorActionPreference: 'stop' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#warningPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. WarningPreference. Default: default.
#informationPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. InformationPreference. Default: default.
#verbosePreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. VerbosePreference. Default: default.
#debugPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. DebugPreference. Default: default.
#progressPreference: 'silentlyContinue' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. ProgressPreference. Default: silentlyContinue.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#showWarnings: false # boolean. Show warnings as Azure DevOps warnings. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
#runScriptInSeparateScope: false # boolean. Run script in the separate scope. Default: false.
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
# Preference Variables
#errorActionPreference: 'stop' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#warningPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. WarningPreference. Default: default.
#informationPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. InformationPreference. Default: default.
#verbosePreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. VerbosePreference. Default: default.
#debugPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. DebugPreference. Default: default.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#showWarnings: false # boolean. Show warnings as Azure DevOps warnings. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
#runScriptInSeparateScope: false # boolean. Run script in the separate scope. Default: false.
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
#errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#showWarnings: false # boolean. Show warnings as Azure DevOps warnings. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
#errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
Entradas
targetType
-
tipo
string
. Valores permitidos: filePath
(Caminho do Arquivo), inline
. Valor padrão: filePath
.
Especifica o tipo de script para a tarefa a ser executada: um script embutido ou um caminho para um arquivo .ps1
.
filePath
-
caminho de script
string
. Necessário quando targetType = filePath
.
Especifica o caminho do script a ser executado. Deve ser um caminho totalmente qualificado ou relativo a $(System.DefaultWorkingDirectory)
.
argumentos arguments
-
string
. Opcional. Use quando targetType = filePath
.
Especifica os argumentos passados para o script do PowerShell. Os argumentos podem ser parâmetros ordinais ou parâmetros nomeados. Por exemplo, -Name someName -Path -Value "Some long string value"
.
arguments
não é usado quando targetType
é definido como inline
.
de Script script
-
string
. Necessário quando targetType = inline
. Valor padrão: # Write your PowerShell commands here.\n\nWrite-Host "Hello World"
.
Especifica o conteúdo do script. O comprimento máximo de script embutido com suporte é de 20000 caracteres. Use um script de um arquivo se quiser usar um script mais longo.
ErrorActionPreference errorActionPreference
-
string
. Valores permitidos: default
, stop
, continue
, silentlyContinue
. Valor padrão: stop
.
Acrescenta a linha $ErrorActionPreference = 'VALUE'
na parte superior do script.
ErrorActionPreference errorActionPreference
-
string
. Valores permitidos: stop
, continue
, silentlyContinue
. Valor padrão: stop
.
Acrescenta a linha $ErrorActionPreference = 'VALUE'
na parte superior do script.
warningPreference
-
WarningPreference
string
. Valores permitidos: default
, stop
, continue
, silentlyContinue
. Valor padrão: default
.
Quando não definido como Default
, acrescenta a linha $WarningPreference = 'VALUE'
na parte superior do script.
informationPreference
-
InformationPreference
string
. Valores permitidos: default
, stop
, continue
, silentlyContinue
. Valor padrão: default
.
Quando não definido como Default
, acrescenta a linha $InformationPreference = 'VALUE'
na parte superior do script.
verbosePreference
-
VerbosePreference
string
. Valores permitidos: default
, stop
, continue
, silentlyContinue
. Valor padrão: default
.
Quando não definido como Default
, acrescenta a linha $VerbosePreference = 'VALUE'
na parte superior do script.
de DebugPreference debugPreference
-
string
. Valores permitidos: default
, stop
, continue
, silentlyContinue
. Valor padrão: default
.
Quando não definido como Default
, acrescenta a linha $DebugPreference = 'VALUE'
na parte superior do script.
progressPreference
-
ProgressPreference
string
. Valores permitidos: default
, stop
, continue
, silentlyContinue
. Valor padrão: silentlyContinue
.
Quando não definido como Default
, acrescenta a linha $ProgressPreference = 'VALUE'
na parte superior do script.
failOnStderr
-
falha no de erro padrão
boolean
. Valor padrão: false
.
Se o valor desse booliano for true
, a tarefa falhará se algum erro for gravado no pipeline de erros ou se algum dado for gravado no fluxo de Erro Padrão. Caso contrário, a tarefa depende do código de saída para determinar a falha.
showWarnings
-
Mostrar avisos como avisos do Azure DevOps
boolean
. Valor padrão: false
.
Se o valor estiver definido como true
e o script gravar avisos, os avisos aparecerão como avisos nos logs do Pipeline.
ignoreLASTEXITCODE
-
ignorar $LASTEXITCODE
boolean
. Valor padrão: false
.
Se o valor for definido como false
, a linha if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }
será acrescentada ao final do script. Isso fará com que o último código de saída de um comando externo seja propagado como o código de saída de powershell
. Caso contrário, a linha não será acrescentada ao final do script.
pwsh
-
usar o PowerShell Core
boolean
. Valor padrão: false
.
Se isso for verdadeiro, as tarefas em execução em agentes do Windows usarão pwsh.exe
do seu caminho em vez de powershell.exe
.
do Diretório de Trabalho do
string
.
Especifica o diretório de trabalho em que o script é executado. Se um valor não for especificado, o diretório de trabalho será $(Build.SourcesDirectory)
.
runScriptInSeparateScope
-
Executar script no escopo separado
boolean
. Valor padrão: false
.
Essa entrada permite a execução de scripts do PowerShell usando &
operador em vez do .
padrão. Se essa entrada estiver definida como true
, o script será executado em um escopo separado e as variáveis do PowerShell com escopo global não serão atualizadas.
Opções de controle de tarefa
Todas as tarefas têm opções de controle além das suas entradas de tarefas. Para obter mais informações, consulte as opções de Controle de e as propriedades comuns da tarefa.
Variáveis de saída
Nenhum.
Observações
Cada sessão do PowerShell dura apenas a duração do trabalho no qual ela é executada. As tarefas que dependem do que foi inicializado devem estar no mesmo trabalho que a inicialização.
Atalhos de tarefa
PowerShell@2
tem dois atalhos no YAML: steps.powershell e steps.pwsh.
-
powershell
é executado usando o Windows PowerShell (no Windows) oupwsh
(Linux e macOS). -
pwsh
executa o PowerShell Core, a edição multiplataforma do PowerShell criada no .NET Core.
steps:
- powershell: # Run a script in Windows PowerShell on Windows, and pwsh on Linux and macOS.
- pwsh: # Run a script in PowerShell Core on Windows, macOS, and Linux.
Definir uma variável para que ela possa ser lida por scripts e tarefas subsequentes
Para saber mais sobre como definir variáveis de build em um script, consulte Definir e modificar suas variáveis de build em um script.
Para saber mais sobre como definir variáveis de versão em um script, consulte Definir e modificar suas variáveis de versão em um script.
Passar segredos de pipeline no script, mas o segredo não é mascarado em logs de pipeline
Lembre-se de que o PowerShell corta mensagens de erro, portanto, se você usar segredos de pipeline em um script, os segredos poderão ser cortados e expostos. Por exemplo, no script embutido abaixo:
./script.ps1 --arg1 value1 --arg2 <some_secret_which_will_be_masked_here>
Pode haver uma exceção como: At <path_to_temp_script_file>:4 char:3
:
+ ./script.ps1 --arg1 value1 --arg2 <unmasked_part_of_original_secret> ...
+ ~~~~~~~~~~
+ <Additional exception details>
Para evitar esse problema, você pode lidar com essas exceções em um nível de script ou evitar casos em que segredos de pipeline possam aparecer em linhas de código-fonte dentro de mensagens de erro.
Exemplos
- invocar um script de um arquivo
- escrever um aviso
- escrever um erro
- chamar script do PowerShell com vários argumentos
Invocar um script de um arquivo
Veja a seguir um arquivo de exemplo do PowerShell chamado test.ps1
localizado na raiz do repositório.
Write-Host "Hello World from $Env:AGENT_NAME."
Write-Host "My ID is $Env:AGENT_ID."
Write-Host "AGENT_WORKFOLDER contents:"
gci $Env:AGENT_WORKFOLDER
Write-Host "AGENT_BUILDDIRECTORY contents:"
gci $Env:AGENT_BUILDDIRECTORY
Write-Host "BUILD_SOURCESDIRECTORY contents:"
gci $Env:BUILD_SOURCESDIRECTORY
Write-Host "Over and out."
Você pode invocar esse script em seu pipeline assim.
steps:
- task: PowerShell@2
inputs:
targetType: 'filePath'
filePath: 'test.ps1'
Escrever um aviso
- task: PowerShell@2
inputs:
targetType: 'inline'
script: Write-Host "##vso[task.LogIssue type=warning;]This is the warning"
# Writes a warning to build summary and to log in yellow text
Escrever um erro
- task: PowerShell@2
inputs:
targetType: 'inline'
script: Write-Host "##vso[task.LogIssue type=error;]This is the error"
# Writes an error to build summary and to log in red text
Se você quiser que esse erro falhe no build, adicione exit 1
ao script.
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "##vso[task.LogIssue type=error;]This is the error"
exit 1
# Writes an error to build summary and to log in red text
Chamar script do PowerShell com vários argumentos
Criar test2.ps1
de script do PowerShell:
param ($input1, $input2)
Write-Host "$input1 $input2"
No pipeline do YAML, chame:
- task: PowerShell@2
inputs:
targetType: 'filePath'
filePath: $(System.DefaultWorkingDirectory)\test2.ps1
arguments: > # Use this to avoid newline characters in multiline string
-input1 "Hello"
-input2 "World"
displayName: 'Print Hello World'
Requisitos
Requisito | Descrição |
---|---|
Tipos de pipeline | YAML, build clássico, versão clássica |
Execuções em | Agent, DeploymentGroup |
de demandas | Nenhum |
recursos | Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho. |
restrições de comando | Qualquer |
variáveis settable | Qualquer |
Versão do agente | 2.115.0 ou superior |
Categoria de tarefa | Utilidade |
Consulte também
- usar um script do PowerShell para personalizar o pipeline – ApplyVersionToAssemblies.ps1
- Saiba mais sobre scripts do PowerShell