Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Use esta tarefa para executar scripts do PowerShell em máquinas remotas usando 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.
Insumos
Machines
-
Máquinas
string. Obrigatório.
Especifica uma lista separada por vírgulas de FQDNs ou endereços IP da máquina 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 máquinas. 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
-
Nome de utilizador
string.
Especifica o nome de usuário de um domínio ou de uma conta administrativa local no(s) host(s) de destino.
- São suportados formatos como
username,domain\username,machine-name\usernamee.\username. - Formatos UPN, como
username@domain.come contas de sistema internas, comoNT Authority\Systemnão são suportados.
UserPassword
-
Palavra-passe
string.
Especifica a senha para as máquinas de destino. As variáveis definidas nas definições de compilação/versão como $(passwordVariable) são aceitas. Você pode marcar o tipo de variável como secret para protegê-la.
ScriptType
-
Tipo de script
string. Valores permitidos: FilePath (Caminho do arquivo), Inline. Valor padrão: Inline.
Especifica o tipo de script a ser executado: Inline ou File Path.
ScriptPath
-
caminho do arquivo de script
string. Necessário quando ScriptType = FilePath.
Especifica o local do script do PowerShell nas máquinas de destino ou em um caminho UNC, como C:\BudgetIT\Web\Deploy\Website.ps1, que deve ser acessível a partir da máquina de destino.
InlineScript
-
Guião
string. Necessá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. Podem 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 nas máquinas de destino ou em um caminho UNC, como C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1. Recomenda-se 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írgula, como $varx=valuex, $vary=valuey. Mais comumente usado para compatibilidade com versões anteriores do serviço de lançamento. Recomenda-se usar argumentos em vez de variáveis de sessão.
CommunicationProtocol
-
Protocolo
string. Valores permitidos: Http, Https. Valor padrão: Https.
Especifica o protocolo a ser usado para a conexão de serviço do WinRM com a(s) máquina(s). O valor predefinido é HTTPS.
de autenticação AuthenticationMechanism -
string. Valores permitidos: Default, Credssp. Valor padrão: Default.
Especifica o mecanismo de autenticação usado para criar o PSSession. Para CredSSP autenticação, os campos de nome de utilizador e palavra-passe 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. Veja 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.
Precede a linha $ErrorActionPreference = 'VALUE' na parte superior do script.
failOnStderr
-
falha no erro padrão
boolean. Valor padrão: false.
Se definido como true, 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.
ignoreLASTEXITCODE
-
Ignorar $LASTEXITCODE
boolean. Valor padrão: false.
Se definido como false, a linha if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } é 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 onde 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 nas máquinas de destino.
Opções de controlo de tarefas
Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle de e propriedades de tarefas comuns.
Variáveis de saída
Nenhum.
Observações
Use esta tarefa para executar scripts do PowerShell na(s) máquina(s) remota(s).
Esta tarefa pode executar scripts do PowerShell e scripts PowerShell-DSC:
- Para scripts do PowerShell, os computadores devem ter o PowerShell 2.0 ou superior instalado.
- Para PowerShell-DSC scripts, os computadores devem ter a versão mais recente do Windows Management Framework instalada. Isso é instalado por padrão no Windows 8.1, Windows Server 2012 R2 e versões subsequentes.
Pré-requisitos
Esta tarefa utiliza WinRM ( de Gestão Remota do Windows) para aceder a computadores físicos no local ou a computadores virtuais associados a domínios ou a grupos 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 Máquinas Virtuais do Microsoft Azure
As Máquinas Virtuais do Azure requerem o WinRM para utilizar 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ássicas do Azure. Quando você cria uma máquina virtual clássica a partir do portal do Azure, a máquina virtual já está configurada para o WinRM sobre HTTPS, com a porta padrão 5986 já aberta no firewall e um certificado autoassinado instalado na máquina. 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 de Implantação do Grupo de Recursos do Azure.
Grupo de Recursos do Azure. Se você tiver um Grupo de Recursos do Azure já definido no portal do Azure, deverá configurá-lo para usar o protocolo HTTPS do WinRM. Você precisa abrir a porta 5986 no firewall e instalar um certificado autoassinado.
Para implantar dinamicamente os Grupos de Recursos do Azure que contêm máquinas virtuais, use a tarefa de Implantação do Grupo de Recursos do Azure. Esta tarefa tem uma caixa de seleção chamada Habilitar pré-requisitos de implantação. Selecione esta opção 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 então prontas para uso na tarefa de implantação.
O que há de novo nesta versão da tarefa
- Usa PSSession e invoke-command para executar comunicação remota em máquinas de destino.
- Adicionado suporte para execução de script embutido.
- A autenticação padrão e CredSSP são suportadas.
- Opções adicionadas para tratamento de erros:
ErrorActionPreference,ignoreLASTEXITCODEe Fail on Standard Error.
Requerimentos
| Requisito | Descrição |
|---|---|
| Tipos de pipeline | YAML, Construção clássica, Versão clássica |
| Funciona em | Agente, DeploymentGroup |
| Exigências | Nenhum |
| Capacidades | Esta tarefa não satisfaz quaisquer exigências 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 de tarefa | Desplegar |