PowerShellOnTargetMachines@3 - Tâche PowerShell sur les machines cibles v3

Utilisez cette tâche pour exécuter des scripts PowerShell sur des machines distantes à l’aide de PSSession et de Invoke-Command pour la communication à distance.

Utilisez cette tâche pour exécuter des scripts PowerShell sur des machines distantes. Cette version de la tâche utilise PSSession et Invoke-Command pour la communication à distance.

Syntaxe

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

Entrées

Machines - Machines
string. Obligatoire.

Spécifie une liste séparée par des virgules des noms de domaine complets ou des adresses IP de l’ordinateur, et inclut éventuellement le numéro de port. Valeurs possibles :

  • Nom d’un groupe de ressources Azure.
  • Liste délimitée par des virgules de noms d’ordinateurs. Exemple : dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
  • Variable de sortie d’une tâche précédente.

Si vous ne spécifiez pas de port, le port WinRM par défaut est utilisé. Cela dépend du protocole que vous avez configuré. Pour WinRM 2.0, le port HTTP par défaut est 5985 et le port HTTPS par défaut est 5986.


UserName - Nom d'utilisateur
string.

Spécifie le nom d’utilisateur d’un domaine ou d’un compte d’administration local sur le ou les hôtes cibles.

  • Les formats tels que username, domain\username, machine-name\usernameet .\username sont pris en charge.
  • Les formats UPN tels que username@domain.com et les comptes système intégrés tels que NT Authority\System ne sont pas pris en charge.

UserPassword - Mot de passe
string.

Spécifie le mot de passe pour les machines cibles. Variables définies dans les définitions de build/mise en production telles qu’elles $(passwordVariable) sont acceptées. Vous pouvez marquer le type de variable comme secret pour le sécuriser.


ScriptType - Script Type
string. Valeurs autorisées : FilePath (Chemin du fichier), Inline. Valeur par défaut : Inline.

Spécifie le type de script à exécuter : Inline ou File Path.


ScriptPath - Chemin du fichier de script
string. Obligatoire lorsque ScriptType = FilePath.

Spécifie l’emplacement du script PowerShell sur les machines cibles ou sur un chemin UNC, comme C:\BudgetIT\Web\Deploy\Website.ps1, qui doit être accessible à partir de l’ordinateur cible.


InlineScript - Script
string. Obligatoire lorsque ScriptType = Inline. Valeur par défaut : # Write your powershell commands here.\n\nWrite-Output "Hello World".


ScriptArguments - Script Arguments
string. facultatif. Utilisez quand ScriptType = FilePath.

Spécifie les arguments du script PowerShell. Il peut s’agir de paramètres ordinaux ou nommés, comme -testParam le test. Par exemple : -applicationPath $(applicationPath), -username $(vmusername), -password $(vmpassword).


InitializationScript - Script d’initialisation
string. facultatif. Utilisez quand ScriptType = FilePath.

Spécifie l’emplacement du script de données pour la DSC sur les ordinateurs cibles ou sur un chemin UNC, comme C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1. Il est recommandé d’utiliser des arguments au lieu d’un script d’initialisation.


SessionVariables - Session Variables
string. facultatif. Utilisez quand ScriptType = FilePath.

Utilisé pour configurer les variables de session pour les scripts PowerShell.
Spécifie une liste séparée par des virgules, telle que $varx=valuex, $vary=valuey. Le plus couramment utilisé pour la compatibilité descendante avec les versions antérieures du service de mise en production. Il est recommandé d’utiliser des arguments plutôt que des variables de session.


CommunicationProtocol - Protocole
string. Valeurs autorisées : Http, Https. Valeur par défaut : Https.

Spécifie le protocole à utiliser pour la connexion de service WinRM avec les machines. La valeur par défaut est HTTPS.


AuthenticationMechanism - Authentification
string. Valeurs autorisées : Default, Credssp. Valeur par défaut : Default.

Spécifie le mécanisme d’authentification utilisé pour créer la session PSSession. Pour CredSSP l’authentification, les champs nom d’utilisateur et mot de passe sont obligatoires.


NewPsSessionOptionArguments - Paramètres de l’option de session
string. Valeur par défaut : -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.

Options avancées pour une session distante (New-PSSessionOption). Par exemple, -SkipCACheck, -SkipCNCheck, -SkipRevocationCheck, etc. Pour en savoir plus, consultez la liste complète de toutes les options de session .


ErrorActionPreference - ErrorActionPreference
string. Valeurs autorisées : stop, continue, silentlyContinue. Valeur par défaut : stop.

Ajoute la ligne $ErrorActionPreference = 'VALUE' en haut de votre script.


failOnStderr - Échec en cas d’erreur standard
boolean. Valeur par défaut : false.

Si la valeur est définie truesur , échoue si des erreurs sont écrites dans le pipeline d’erreur ou si des données sont écrites dans le flux d’erreur standard. Sinon, la tâche s’appuie sur le code de sortie pour déterminer l’échec.


ignoreLASTEXITCODE - Ignorer $LASTEXITCODE
boolean. Valeur par défaut : false.

Si la valeur est définie falsesur , la ligne if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } est exécutée à la fin de votre script. Cela entraîne la propagation du dernier code de sortie d’une commande externe en tant que code de sortie de PowerShell. Sinon, la ligne n’est pas exécutée à la fin de votre script.


WorkingDirectory - Répertoire de travail
string.

Spécifie le répertoire de travail dans lequel le script est exécuté.


RunPowershellInParallel - Exécuter PowerShell en parallèle
boolean. Valeur par défaut : true.

Si la valeur est définie truesur , exécute les scripts PowerShell en parallèle sur les machines cibles.


Options de contrôle des tâches

Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâche. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.

Variables de sortie

Aucun.

Notes

Utilisez cette tâche pour exécuter des scripts PowerShell sur des machines distantes.

Cette tâche peut exécuter à la fois des scripts PowerShell et des scripts PowerShell-DSC :

  • Pour les scripts PowerShell, PowerShell 2.0 ou version ultérieure doit être installé sur les ordinateurs.
  • Pour les scripts PowerShell-DSC, la dernière version du Windows Management Framework doit être installée sur les ordinateurs. Il est installé par défaut sur Windows 8.1, Windows Server 2012 R2 et les versions ultérieures.

Prérequis

Cette tâche utilise la Gestion à distance Windows (WinRM) pour accéder à des ordinateurs physiques locaux ou des ordinateurs virtuels joints à un domaine ou joints à un groupe de travail.

Pour configurer WinRM pour les ordinateurs physiques locaux ou les machines virtuelles

Suivez les étapes décrites dans Joint à un domaine

Pour configurer WinRM pour Microsoft Azure Machines Virtuelles

Azure Machines Virtuelles exiger que WinRM utilise le protocole HTTPS. Vous pouvez utiliser un certificat de test auto-signé. Dans ce cas, l’agent automation ne valide pas l’authenticité du certificat comme étant émis par une autorité de certification approuvée.

  • Azure Classic Machines Virtuelles. Lorsque vous créez une machine virtuelle classique à partir du Portail Azure, la machine virtuelle est déjà configurée pour WinRM sur HTTPS, avec le port par défaut 5986 déjà ouvert dans le pare-feu et un certificat auto-signé installé sur l’ordinateur. Ces machines virtuelles sont accessibles sans configuration supplémentaire requise. Vous pouvez également sélectionner des machines virtuelles classiques existantes à l’aide de la tâche De déploiement de groupe de ressources Azure .

  • Groupe de ressources Azure. Si vous avez déjà défini un groupe de ressources Azure dans le Portail Azure, vous devez le configurer pour utiliser le protocole HTTPS WinRM. Vous devez ouvrir le port 5986 dans le pare-feu et installer un certificat auto-signé.

Pour déployer dynamiquement des groupes de ressources Azure qui contiennent des machines virtuelles, utilisez la tâche De déploiement de groupe de ressources Azure . Cette tâche comporte une case à cocher nommée Activer les prérequis de déploiement. Sélectionnez cette option pour configurer automatiquement le protocole HTTPS WinRM sur les machines virtuelles, ouvrir le port 5986 dans le pare-feu et installer un certificat de test. Les machines virtuelles sont ensuite prêtes à être utilisées dans la tâche de déploiement.

Nouveautés de cette version de tâche

  • Utilise PSSession et invoke-command pour effectuer la communication à distance sur les machines cibles.
  • Ajout de la prise en charge de l’exécution de script inline.
  • L’authentification par défaut et CredSSP sont prises en charge.
  • Ajout d’options pour la gestion des erreurs : ErrorActionPreferenceet ignoreLASTEXITCODEÉchec en cas d’erreur standard.

Spécifications

Condition requise Description
Types de pipelines YAML, build classique, version classique
S’exécute sur Agent, DeploymentGroup
Demandes None
Capabilities Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail.
Restrictions de commandes Quelconque
Variables settables Quelconque
Version de l’agent 2.134.0 ou supérieur
Catégorie de la tâche Déployer