Partilhar via


PowerShellOnTargetMachines@3 - Tarefa do PowerShell em máquinas de destino v3

Utilize esta tarefa para executar scripts do PowerShell em máquinas remotas com PSSession e Invoke-Command para remo.

Utilize esta tarefa para executar scripts do PowerShell em máquinas remotas. Esta versão da tarefa utiliza PSSession e Invoke-Command para remo.

Syntax

# 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 - Computadores
string. Obrigatório.

Especifica uma lista separada por vírgulas de FQDNs ou endereços IP do computador 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 não especificar uma porta, é utilizada a porta WinRM predefinida. Isto depende do protocolo que configurou. Para o WinRM 2.0, a porta HTTP predefinida é 5985 e a porta HTTPS predefinida é 5986.


UserName - Nome de utilizador
string.

Especifica o nome de utilizador de um domínio ou de uma conta administrativa local nos anfitriões de destino.

  • São suportados formatos como username, domain\username, machine-name\usernamee .\username .
  • Os formatos UPN, como username@domain.com contas de sistema incorporadas, como NT Authority\System não são suportados.

UserPassword - Palavra-passe
string.

Especifica a palavra-passe dos computadores de destino. Variáveis definidas nas definições de compilação/versão, tal como $(passwordVariable) são aceites. Pode marcar o tipo de variável como secret para o proteger.


ScriptType - Tipo de Script
string. Valores permitidos: FilePath (Caminho do Ficheiro), Inline. Valor predefinido: Inline.

Especifica o tipo de script a executar: Inline ou Caminho de Ficheiro.


ScriptPath - Caminho do Ficheiro de Script
string. Necessário quando ScriptType = FilePath.

Especifica a localização do script do PowerShell nas máquinas de destino ou num caminho UNC, como C:\BudgetIT\Web\Deploy\Website.ps1, que deve estar acessível a partir do computador de destino.


InlineScript - Script
string. Necessário quando ScriptType = Inline. Valor predefinido: # Write your powershell commands here.\n\nWrite-Output "Hello World".


ScriptArguments - Argumentos de Script
string. Opcional. Utilize 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), , -password $(vmpassword)-username $(vmusername).


InitializationScript - Script de inicialização
string. Opcional. Utilize quando ScriptType = FilePath.

Especifica a localização do script de dados para o DSC nos computadores de destino ou num caminho UNC, como C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1. É recomendado utilizar argumentos em vez de um script de inicialização.


SessionVariables - Variáveis de Sessão
string. Opcional. Utilize quando ScriptType = FilePath.

Utilizado 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 frequentemente utilizado para retrocompatibilidade com versões anteriores do serviço de lançamento. É recomendado utilizar argumentos em vez de variáveis de sessão.


CommunicationProtocol - Protocolo
string. Valores permitidos: Http, Https. Valor predefinido: Https.

Especifica o protocolo a utilizar para a ligação do serviço WinRM com os computadores. O valor predefinido é HTTPS.


AuthenticationMechanism - Autenticação
string. Valores permitidos: Default, Credssp. Valor predefinido: Default.

Especifica o mecanismo de autenticação utilizado para criar a PSSession. Para CredSSP autenticação, os campos nome de utilizador e palavra-passe são obrigatórios.


NewPsSessionOptionArguments - Parâmetros da Opção de Sessão
string. Valor predefinido: -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, , continuesilentlyContinue. Valor predefinido: stop.

Prepara a linha $ErrorActionPreference = 'VALUE' na parte superior do script.


failOnStderr - Falha no Erro Padrão
boolean. Valor predefinido: false.

Se definido como true, falha se forem escritos erros no pipeline de erros ou se forem escritos dados 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 predefinido: false.

Se estiver definida como false, a linha if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } é executada no final do script. Isto 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 é executada até ao fim 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 predefinido: true.

Se estiver definido como true, executa os scripts do PowerShell em paralelo nos computadores de destino.


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Utilize esta tarefa para executar scripts do PowerShell em máquinas remotas.

Esta tarefa pode executar scripts do PowerShell e scripts do PowerShell-DSC:

  • Para scripts do PowerShell, os computadores têm de ter o PowerShell 2.0 ou superior instalado.
  • Para scripts do PowerShell-DSC, os computadores têm de ter a versão mais recente do Windows Management Framework instalada. Esta ação é instalada por predefinição em Windows 8.1, Windows Server 2012 R2 e versões subsequentes.

Pré-requisitos

Esta tarefa utiliza a Gestão Remota do Windows (WinRM) para aceder a computadores físicos no local ou a computadores virtuais associados a um domínio ou associados a grupos de trabalho.

Para configurar o WinRM para computadores físicos no local ou máquinas virtuais

Siga os passos descritos na associação a um domínio

Para configurar o WinRM para o Microsoft Azure Máquinas Virtuais

O Azure Máquinas Virtuais exigir que o WinRM utilize o protocolo HTTPS. Pode utilizar um Certificado de Teste autoassinado. Neste caso, o agente de automatização não validará a autenticidade do certificado como sendo emitido por uma autoridade de certificação fidedigna.

  • Azure Classic Máquinas Virtuais. Quando cria uma máquina virtual clássica a partir do portal do Azure, a máquina virtual já está configurada para o WinRM através de HTTPS, com a porta predefinida 5986 já aberta na firewall e um certificado autoassinado instalado no computador. Estas máquinas virtuais podem ser acedidas sem necessidade de configuração adicional. As máquinas virtuais clássicas existentes também podem ser selecionadas com a tarefa implementação do Grupo de Recursos do Azure .

  • Grupo de Recursos do Azure. Se já tiver um Grupo de Recursos do Azure definido no portal do Azure, tem de configurá-lo para utilizar o protocolo HTTPS winRM. Tem de abrir a porta 5986 na firewall e instalar um certificado autoassinado.

Para implementar dinamicamente Grupos de Recursos do Azure que contêm máquinas virtuais, utilize a tarefa Implementação do Grupo de Recursos do Azure . Esta tarefa tem uma caixa de verificação denominada Ativar Pré-requisitos de Implementação. Selecione esta opção para configurar automaticamente o protocolo WINRM HTTPS nas máquinas virtuais, abrir a porta 5986 na firewall e instalar um certificado de teste. As máquinas virtuais estão prontas para serem utilizadas na tarefa de implementação.

Novidades nesta versão de tarefa

  • Utiliza pSSession e invoke-command para executar remoting em máquinas de destino.
  • Foi adicionado suporte para a execução de scripts inline.
  • A autenticação CredSSP e predefinida são suportadas.
  • Foram adicionadas opções para processamento de erros: ErrorActionPreferenceignoreLASTEXITCODE e Falha no Erro Standard.

Requisitos

Requisito Description
Tipos de pipeline YAML, Compilação clássica, Versão clássica
É executado em Agente, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de tabelas definidas Qualquer
Versão do agente 2.134.0 ou superior
Categoria da tarefa Implementação