PowerShellOnTargetMachines@3 – Tarefa do PowerShell em computadores de destino v3
Use essa tarefa para executar scripts do PowerShell em computadores remotos usando PSSession e Invoke-Command para comunicação remota.
Use essa tarefa para executar scripts do PowerShell em computadores remotos. Esta versão da tarefa usa PSSession e Invoke-Command para comunicação remota.
Sintaxe
# PowerShell on target machines v3
# Execute PowerShell scripts on remote machines using PSSession and Invoke-Command for remoting.
- task: PowerShellOnTargetMachines@3
inputs:
Machines: # string. Required. Machines.
#UserName: # string. Username.
#UserPassword: # string. Password.
# Script options
#ScriptType: 'Inline' # 'FilePath' | 'Inline'. Script Type. Default: Inline.
#ScriptPath: # string. Required when ScriptType = FilePath. Script File Path.
InlineScript: # string. Required when ScriptType = Inline. Script.
#ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments.
#InitializationScript: # string. Optional. Use when ScriptType = FilePath. Initialization script.
#SessionVariables: # string. Optional. Use when ScriptType = FilePath. Session Variables.
# PSSession options
#CommunicationProtocol: 'Https' # 'Http' | 'Https'. Protocol. Default: Https.
#AuthenticationMechanism: 'Default' # 'Default' | 'Credssp'. Authentication. Default: Default.
#NewPsSessionOptionArguments: '-SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block' # string. Session Option parameters. Default: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.
# Error handling options
#ErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
# Advanced
#WorkingDirectory: # string. Working Directory.
#RunPowershellInParallel: true # boolean. Run PowerShell in Parallel. Default: true.
# PowerShell on Target Machines v3
# Execute PowerShell scripts on remote machine(s). This version of the task uses PSSession and Invoke-Command for remoting.
- task: PowerShellOnTargetMachines@3
inputs:
Machines: # string. Required. Machines.
#UserName: # string. Username.
#UserPassword: # string. Password.
# Script options
#ScriptType: 'Inline' # 'FilePath' | 'Inline'. Script Type. Default: Inline.
#ScriptPath: # string. Required when ScriptType = FilePath. Script File Path.
InlineScript: # string. Required when ScriptType = Inline. Script.
#ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments.
#InitializationScript: # string. Optional. Use when ScriptType = FilePath. Initialization script.
#SessionVariables: # string. Optional. Use when ScriptType = FilePath. Session Variables.
# PSSession options
#CommunicationProtocol: 'Https' # 'Http' | 'Https'. Protocol. Default: Https.
#AuthenticationMechanism: 'Default' # 'Default' | 'Credssp'. Authentication. Default: Default.
#NewPsSessionOptionArguments: '-SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block' # string. Session Option parameters. Default: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.
# Error handling options
#ErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
# Advanced
#WorkingDirectory: # string. Working Directory.
#RunPowershellInParallel: true # boolean. Run PowerShell in Parallel. Default: true.
Entradas
Machines
- Máquinas
string
. Obrigatórios.
Especifica uma lista separada por vírgulas de FQDNs de computador ou endereços IP e, opcionalmente, inclui o número da porta. Pode ser:
- O nome de um Grupo de Recursos do Azure.
- Uma lista delimitada por vírgulas de nomes de computador. Exemplo:
dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
- Uma variável de saída de uma tarefa anterior.
Se você não especificar uma porta, a porta WinRM padrão será usada. Isso depende do protocolo que você configurou. Para o WinRM 2.0, a porta HTTP padrão é 5985
e a porta HTTPS padrão é 5986
.
UserName
- Username
string
.
Especifica o nome de usuário de um domínio ou uma conta administrativa local nos hostes de destino.
- Há suporte para formatos como
username
,domain\username
,machine-name\username
e.\username
. - Não há suporte para formatos UPN, como
username@domain.com
contas de sistema internas, comoNT Authority\System
.
UserPassword
- Senha
string
.
Especifica a senha para os computadores de destino. Variáveis definidas em definições de build/versão conforme $(passwordVariable)
são aceitas. Você pode marcar o tipo de variável como secret
para protegê-lo.
ScriptType
- Tipo de script
string
. Valores permitidos: FilePath
(Caminho do Arquivo), Inline
. Valor padrão: Inline
.
Especifica o tipo de script a ser executado: Embutido ou Caminho do Arquivo.
ScriptPath
- Caminho do arquivo de script
string
. Obrigatório quando ScriptType = FilePath
.
Especifica o local do script do PowerShell nos computadores de destino ou em um caminho UNC, como C:\BudgetIT\Web\Deploy\Website.ps1
, que deve ser acessível no computador de destino.
InlineScript
- Script
string
. Obrigatório quando ScriptType = Inline
. Valor padrão: # Write your powershell commands here.\n\nWrite-Output "Hello World"
.
ScriptArguments
- Argumentos de script
string
. Opcional. Use quando ScriptType = FilePath
.
Especifica os argumentos para o script do PowerShell. Pode ser parâmetros ordinais ou nomeados, como -testParam
teste. Por exemplo: -applicationPath $(applicationPath)
, -username $(vmusername)
, -password $(vmpassword)
.
InitializationScript
- Script de inicialização
string
. Opcional. Use quando ScriptType = FilePath
.
Especifica o local do script de dados para o DSC nos computadores de destino ou em um caminho UNC, como C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1
. É recomendável usar argumentos em vez de um script de inicialização.
SessionVariables
- Variáveis de sessão
string
. Opcional. Use quando ScriptType = FilePath
.
Usado para configurar as variáveis de sessão para os scripts do PowerShell.
Especifica uma lista separada por vírgulas, como $varx=valuex, $vary=valuey
. Mais comumente usado para compatibilidade com versões anteriores do serviço de lançamento. É recomendável usar argumentos em vez de variáveis de sessão.
CommunicationProtocol
- Protocolo
string
. Valores Permitidos: Http
e Https
. Valor padrão: Https
.
Especifica o protocolo a ser usado para a conexão do serviço WinRM com os computadores. O valor padrão é HTTPS
.
AuthenticationMechanism
- Autenticação
string
. Valores Permitidos: Default
e Credssp
. Valor padrão: Default
.
Especifica o mecanismo de autenticação usado para criar a PSSession. Para CredSSP
autenticação, os campos nome de usuário e senha são obrigatórios.
NewPsSessionOptionArguments
- Parâmetros de opção de sessão
string
. Valor padrão: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block
.
Opções avançadas para uma sessão remota (New-PSSessionOption). Por exemplo, -SkipCACheck
, -SkipCNCheck
, -SkipRevocationCheck
etc. Confira uma lista completa de todas as opções de sessão para saber mais.
ErrorActionPreference
- Erroractionpreference
string
. Valores permitidos: stop
, continue
, silentlyContinue
. Valor padrão: stop
.
Anexa a linha $ErrorActionPreference = 'VALUE'
na parte superior do script.
failOnStderr
- Falha no erro padrão
boolean
. Valor padrão: false
.
Se definido true
como , falhará se algum erro for gravado no pipeline de erro 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.
ignoreLASTEXITCODE
- Ignorar $LASTEXITCODE
boolean
. Valor padrão: false
.
Se definido false
como , a linha if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }
será executada no final do script. Isso faz com que o último código de saída de um comando externo seja propagado como o código de saída do PowerShell. Caso contrário, a linha não será executada até o final do script.
WorkingDirectory
- Diretório de Trabalho
string
.
Especifica o diretório de trabalho em que o script é executado.
RunPowershellInParallel
- Executar o PowerShell em paralelo
boolean
. Valor padrão: true
.
Se definido como true
, executa os scripts do PowerShell em paralelo nos computadores de destino.
Opções de controle de tarefa
Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.
Variáveis de saída
Nenhum.
Comentários
Use essa tarefa para executar scripts do PowerShell em computadores remotos.
Essa tarefa pode executar scripts do PowerShell e scripts do PowerShell-DSC:
- Para scripts do PowerShell, os computadores devem ter o PowerShell 2.0 ou superior instalado.
- Para scripts do PowerShell-DSC, os computadores devem ter a versão mais recente do Windows Management Framework instalada. Isso é instalado por padrão em Windows 8.1, Windows Server 2012 R2 e versões subsequentes.
Pré-requisitos
Essa tarefa usa o WinRM ( Gerenciamento Remoto do Windows ) para acessar computadores físicos locais ou computadores virtuais ingressados no domínio ou ingressados no grupo de trabalho.
Para configurar o WinRM para computadores físicos locais ou máquinas virtuais
Siga as etapas descritas em ingressado no domínio
Para configurar o WinRM para o Microsoft Azure Máquinas Virtuais
O Azure Máquinas Virtuais exigir que o WinRM use o protocolo HTTPS. Você pode usar um Certificado de Teste autoassinado. Nesse caso, o agente de automação não validará a autenticidade do certificado como sendo emitido por uma autoridade de certificação confiável.
Máquinas Virtuais Clássico do Azure. Quando você cria uma máquina virtual clássica do portal do Azure, a máquina virtual já está configurada para WinRM por HTTPS, com a porta padrão 5986 já aberta no firewall e um certificado autoassinado instalado no computador. Essas máquinas virtuais podem ser acessadas sem necessidade de configuração adicional. As máquinas virtuais clássicas existentes também podem ser selecionadas usando a tarefa Implantação do Grupo de Recursos do Azure .
Grupo de recursos do Azure. Se você já tiver um Grupo de Recursos do Azure definido no portal do Azure, configure-o para usar o protocolo HTTPS do WinRM. Você precisa abrir a porta 5986 no firewall e instalar um certificado autoassinado.
Para implantar dinamicamente grupos de recursos do Azure que contêm máquinas virtuais, use a tarefa Implantação do Grupo de Recursos do Azure . Essa tarefa tem uma caixa de seleção chamada Habilitar Pré-requisitos de Implantação. Selecione isso para configurar automaticamente o protocolo HTTPS do WinRM nas máquinas virtuais, abrir a porta 5986 no firewall e instalar um certificado de teste. As máquinas virtuais estão prontas para uso na tarefa de implantação.
Novidades nesta versão da tarefa
- Usa PSSession e invoke-command para executar a comunicação remota em computadores de destino.
- Adicionado suporte para execução de script embutido.
- Há suporte para a autenticação padrão e credSSP.
- Adição de opções para tratamento de erros:
ErrorActionPreference
eignoreLASTEXITCODE
Falha no Erro Padrão.
Requisitos
Requisito | Descrição |
---|---|
Tipos de pipeline | YAML, build clássico, versão clássica |
Executa em | Agent, DeploymentGroup |
Demandas | Nenhum |
Funcionalidades | Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho. |
Restrições de comando | Qualquer |
Variáveis configuráveis | Qualquer |
Versão do agente | 2.134.0 ou superior |
Categoria da tarefa | Implantar |