Compartir vía


PowerShellOnTargetMachines@3: tarea de PowerShell en máquinas de destino v3

Use esta tarea para ejecutar scripts de PowerShell en máquinas remotas mediante PSSession y Invoke-Command para la comunicación remota.

Use esta tarea para ejecutar scripts de PowerShell en máquinas remotas. Esta versión de la tarea usa PSSession y Invoke-Command para la comunicación remota.

Sintaxis

# 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. Obligatorio.

Especifica una lista separada por comas de FQDN de máquina o direcciones IP y, opcionalmente, incluye el número de puerto. Puede ser:

  • Nombre de un grupo de recursos de Azure.
  • Lista delimitada por comas de nombres de máquina. Ejemplo: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
  • Variable de salida de una tarea anterior.

Si no especifica un puerto, se usa el puerto winRM predeterminado. Esto depende del protocolo que haya configurado. Para WinRM 2.0, el puerto HTTP predeterminado es 5985 y el puerto HTTPS predeterminado es 5986.


UserName - Nombre de usuario
string.

Especifica el nombre de usuario de un dominio o una cuenta administrativa local en los hosts de destino.

  • Se admiten formatos como username, domain\username, machine-name\usernamey .\username .
  • No se admiten formatos UPN, como username@domain.com y cuentas del sistema integradas, como NT Authority\System .

UserPassword - Contraseña
string.

Especifica la contraseña de las máquinas de destino. Las variables definidas en las definiciones de compilación o versión tal como $(passwordVariable) se aceptan. Puede marcar el tipo de variable como secret para protegerlo.


ScriptType - Tipo de script
string. Valores permitidos: FilePath (Ruta de acceso del archivo), Inline. Valor predeterminado: Inline.

Especifica el tipo de script que se va a ejecutar: Ruta de acceso de archivo o insertada.


ScriptPath - Ruta de acceso del archivo de script
string. Obligatorio cuando ScriptType = FilePath.

Especifica la ubicación del script de PowerShell en las máquinas de destino o en una ruta de acceso UNC, como C:\BudgetIT\Web\Deploy\Website.ps1, que debe ser accesible desde la máquina de destino.


InlineScript - Guión
string. Obligatorio cuando ScriptType = Inline. Valor predeterminado: # Write your powershell commands here.\n\nWrite-Output "Hello World".


ScriptArguments - Argumentos de script
string. Opcional. Use cuando ScriptType = FilePath.

Especifica los argumentos del script de PowerShell. Puede ser parámetros ordinales o con nombre, como -testParam test. Por ejemplo: -applicationPath $(applicationPath), -username $(vmusername), -password $(vmpassword).


InitializationScript - Script de inicialización
string. Opcional. Use cuando ScriptType = FilePath.

Especifica la ubicación del script de datos para el DSC en las máquinas de destino o en una ruta de acceso UNC, como C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1. Se recomienda usar argumentos en lugar de un script de inicialización.


SessionVariables - Variables de sesión
string. Opcional. Use cuando ScriptType = FilePath.

Se usa para configurar las variables de sesión para los scripts de PowerShell.
Especifica una lista separada por comas, como $varx=valuex, $vary=valuey. Se usa normalmente para la compatibilidad con versiones anteriores del servicio de versión. Se recomienda usar argumentos en lugar de variables de sesión.


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

Especifica el protocolo que se va a usar para la conexión del servicio WinRM con las máquinas. El valor predeterminado es HTTPS.


AuthenticationMechanism - Autenticación
string. Valores permitidos: Default, Credssp. Valor predeterminado: Default.

Especifica el mecanismo de autenticación que se usa para crear la PSSession. Para CredSSP la autenticación, los campos nombre de usuario y contraseña son obligatorios.


NewPsSessionOptionArguments - Parámetros de opción de sesión
string. Valor predeterminado: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.

Opciones avanzadas para una sesión remota (New-PSSessionOption). Por ejemplo, , -SkipCACheck-SkipCNCheck, -SkipRevocationCheck, etc. Consulte una lista completa de todas las opciones de sesión para obtener más información.


ErrorActionPreference - ErrorActionPreference
string. Valores permitidos: stop, continue y silentlyContinue. Valor predeterminado: stop.

Antepone la línea $ErrorActionPreference = 'VALUE' en la parte superior del script.


failOnStderr - Error en el error estándar
boolean. Valor predeterminado: false.

Si se establece trueen , se produce un error si se escriben errores en la canalización de errores o si se escriben datos en el flujo de error estándar. De lo contrario, la tarea se basa en el código de salida para determinar el error.


ignoreLASTEXITCODE - Omitir $LASTEXITCODE
boolean. Valor predeterminado: false.

Si se establece en false, la línea if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } se ejecuta al final del script. Esto hace que el último código de salida de un comando externo se propague como código de salida de PowerShell. De lo contrario, la línea no se ejecuta al final del script.


WorkingDirectory - Directorio de trabajo
string.

Especifica el directorio de trabajo donde se ejecuta el script.


RunPowershellInParallel - Ejecución de PowerShell en paralelo
boolean. Valor predeterminado: true.

Si se establece trueen , ejecuta los scripts de PowerShell en paralelo en las máquinas de destino.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

Use esta tarea para ejecutar scripts de PowerShell en máquinas remotas.

Esta tarea puede ejecutar scripts de PowerShell y scripts de PowerShell-DSC:

  • En el caso de los scripts de PowerShell, los equipos deben tener Instalado PowerShell 2.0 o posterior.
  • En el caso de los scripts de PowerShell-DSC, los equipos deben tener instalada la versión más reciente del Windows Management Framework. Se instala de forma predeterminada en Windows 8.1, Windows Server 2012 R2 y versiones posteriores.

Requisitos previos

Esta tarea usa la administración remota de Windows (WinRM) para acceder a equipos físicos locales o equipos virtuales unidos a un dominio o unidos a grupos de trabajo.

Para configurar WinRM para equipos físicos locales o máquinas virtuales

Siga los pasos descritos en Unión a un dominio.

Para configurar WinRM para Microsoft Azure Virtual Machines

Azure Virtual Machines requiere Que WinRM use el protocolo HTTPS. Puede usar un certificado de prueba autofirmado. En este caso, el agente de automatización no validará la autenticidad del certificado como emitido por una entidad de certificación de confianza.

  • Virtual Machines clásico de Azure. Al crear una máquina virtual clásica a partir de la Azure Portal, la máquina virtual ya está configurada para WinRM a través de HTTPS, con el puerto predeterminado 5986 ya abierto en el firewall y un certificado autofirmado instalado en la máquina. Se puede acceder a estas máquinas virtuales sin que se requiera ninguna configuración adicional. Las máquinas virtuales clásicas existentes también se pueden seleccionar mediante la tarea Implementación del grupo de recursos de Azure .

  • Grupo de recursos de Azure. Si ya tiene un grupo de recursos de Azure definido en el Azure Portal, debe configurarlo para usar el protocolo HTTPS de WinRM. Debe abrir el puerto 5986 en el firewall e instalar un certificado autofirmado.

Para implementar dinámicamente grupos de recursos de Azure que contienen máquinas virtuales, use la tarea Implementación del grupo de recursos de Azure . Esta tarea tiene una casilla denominada Habilitar requisitos previos de implementación. Seleccione esta opción para configurar automáticamente el protocolo HTTPS de WinRM en las máquinas virtuales, abra el puerto 5986 en el firewall e instale un certificado de prueba. Las máquinas virtuales están listas para su uso en la tarea de implementación.

Novedades de esta versión de tarea

  • Usa PSSession y invoke-command para realizar la comunicación remota en las máquinas de destino.
  • Se ha agregado compatibilidad con la ejecución de scripts insertados.
  • Se admite la autenticación Predeterminada y CredSSP.
  • Se agregaron opciones para el control de errores: ErrorActionPreferencey ignoreLASTEXITCODEError en error estándar.

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente 2.134.0 o superior
Categoría de la tarea: Implementación