Ao executar o pipeline do Azure abaixo, recebo o erro:
Caracteres detectados em argumentos que podem não ser executados corretamente pelo shell. Por favor, escape caracteres especiais usando backtick (`).
Isso acontece por causa do caractere Unicode £
dentro da senha. Para simplificar, coloquei a senha dentro da variável do script, mas o pipeline real a obtém de seus parâmetros.
Parece ser um erro na tarefa do Azure PowerShell@2
ao gerar o script temporário.
Como permitir que esses caracteres especiais sejam passados?
O script do pipeline:
variables:
- name: password
value: £f1l1
pool:
vmImage: windows-latest
steps:
- task: PowerShell@2
inputs:
filePath: 'someScript.ps1'
arguments: "-password $(password)"
Usar variáveis de ambiente definidas no nível da tarefa é provavelmente a melhor maneira de evitar problemas de escape/codificação. Além disso, é a abordagem recomendada ao lidar com informações sensíveis, como senhas.
Usando um script Powershell com parâmetros
Script de teste:
Pipeline de teste:
Executando o pipeline:
Usando um script Powershell com variáveis de ambiente
Script de teste:
Pipeline de teste:
Executando o pipeline: