Tâches
Les tâches sont le résultat de l'exécution d'un script. Les tâches sont conservées selon les paramètres du script et du serveur.
Consulter les tâches
Les tâches peuvent être consultées en cliquant sur la page Automatisation / Tâches. Cliquez sur le bouton Afficher pour naviguer vers la tâche. Les tâches en cours peuvent aussi être annulées.

Afficher la sortie de la tâche
Les flux PowerShell standards tels que information, host, error, warning et verbose sont affichés dans le volet de sortie.

Afficher la sortie du pipeline de la tâche
La sortie du pipeline des tâches est également stockée dans PowerShell Universal. Tout objet écrit dans le pipeline est stocké en CliXml et peut être consulté dans l'onglet Pipeline Output.
Vous pouvez développer l'arborescence pour voir les objets et les propriétés provenant du pipeline.

Consulter les erreurs
Toute erreur écrite dans le flux d'erreurs sera disponible dans l'onglet Error de la page de la tâche.

Statut
Les tâches retournent différents statuts selon la configuration et le résultat de l'exécution. Les paramètres qui peuvent influencer le statut d'une tâche comprennent :
ErrorActionPreference
WarningActionPreference
Le tableau suivant décrit comment PowerShell Universal traite les statuts.
Error
Un script a subi une erreur non bloquante.
Définir ErrorActionPreference à SilentlyContinue
Warning
Un script a généré un avertissement.
Définir WarningActionPreference à SilentlyContinue
Failed
Un script a subi une erreur bloquante.
Gérer l'erreur bloquante ou l'intercepter.
En attente de rétroaction
Un script attend une rétroaction, comme Read-Host.
Évitez les rappels à l'utilisateur comme read-host.
Running
Le script est en cours d'exécution.
N\A
Queued
Le script est actuellement en file d'attente pour être exécuté.
N\A
Rétroaction
Certaines tâches nécessiteront une rétroaction. Tout script qui contient un appel Read-Host attendra qu'il y ait une interaction de l'utilisateur avec cette tâche. La tâche sera dans l'état Waiting for Feedback, et vous pouvez répondre à cette rétroaction en cliquant sur le bouton Response to Feedback dans la page de la tâche.

Pour accepter une SecureString avec un champ de saisie de mot de passe, vous pouvez utiliser le paramètre -AsSecureString de Read-Host.
Appeler des tâches à partir de PowerShell
Vous pouvez utiliser Invoke-PSUScript pour appeler des tâches à partir de la ligne de commande. Vous aurez besoin d'un jeton d'appli valide pour le faire. Les paramètres sont définis à l'aide de paramètres dynamiques sur l'applet de commande Invoke-PSUScript.
Appeler des scripts à partir de scripts
Vous pouvez aussi appeler des scripts UA à partir de scripts UA. Lorsque vous exécutez une tâche dans UA, vous n'avez pas besoin de définir manuellement un jeton d'appli ni le nom de l'ordinateur. Ceux-ci seront définis pour vous. Vous pouvez simplement appeler Invoke-PSUScript dans votre script pour démarrer un autre script. Les deux tâches seront affichées dans l'interface. Si vous voulez attendre la fin du script, utilisez Wait-PSUJob.
Attendre la fin d'un script
Vous pouvez utiliser l'applet de commande Wait-PSUJob pour attendre la fin d'une tâche. Acheminez la valeur de retour de Invoke-PSUScript vers Wait-UAJob pour attendre que la tâche soit terminée. Wait-PSUJob attendra indéfiniment à moins que le paramètre -Timeout ne soit spécifié.
Retourner les données du pipeline
Vous pouvez utiliser l'applet de commande Get-PSUJobPipelineOutput pour retourner la sortie du pipeline produite par une tâche. Cette sortie de pipeline sera constituée d'objets désérialisés qui ont été écrits dans le pipeline pendant la tâche. Vous pouvez accéder à ces données à partir de tout endroit où vous avez accès à l'API de gestion de PowerShell Universal.
Retourner la sortie de la dernière tâche
Il peut être nécessaire de retourner la sortie de la dernière exécution de tâche d'un script. Pour ce faire, vous devrez utiliser une combinaison d'applets de commande pour récupérer le script, l'ID de la dernière tâche, puis retourner la sortie du pipeline ou de l'hôte.
Retourne la sortie de la dernière tâche sous forme d'objet
Par défaut, Get-PSUJobOutput retourne la sortie sous forme de chaîne. Pour retourner la sortie sous forme d'objet contenant de l'information sur la sortie, utilisez -AsObject.
Appeler un script et attendre la sortie
Vous pouvez utiliser le paramètre -Wait de Invoke-PSUScript pour y parvenir.
De plus, l'exemple suivant appelle un script, stocke l'objet de tâche dans une variable $job, attend que la tâche soit terminée, puis retourne la sortie du pipeline et de l'hôte.
Mode intégré
Le mode intégré permet d'appeler ces applets de commande depuis PowerShell Universal sans jeton d'appli ni nom d'ordinateur. Il utilise le canal RPC interne pour communiquer.
Vous pouvez définir le paramètre -Integrated pour passer en mode intégré. Ce paramètre ne fonctionne pas à l'extérieur de PowerShell Universal.
Les applets de commande suivantes prennent en charge le mode intégré.
Get-PSUScript
Invoke-PSUScript
Get-PSUJob
Get-PSUJobOutput
Get-PSUJobPipelineOutput
Get-PSUJobFeedback
Set-PSUJobFeedback
Wait-PSUJob
Appeler des tâches avec REST
Vous pouvez appeler des tâches par REST à l'aide de l'API de gestion de PowerShell Universal. Vous aurez besoin d'un jeton d'appli valide pour appeler des tâches.
Appeler des scripts avec REST
Pour appeler un script, vous effectuez une requête HTTP POST vers le terminal du script avec l'ID du script que vous souhaitez exécuter.
Fournir des paramètres
Vous pouvez fournir des paramètres à la tâche au moyen d'une chaîne de requête. Les paramètres seront fournis à votre script sous forme de chaînes.
Définir l'environnement
Vous pouvez définir l'environnement en passant la propriété d'environnement au contexte de la tâche. La propriété doit être le nom d'un environnement défini dans votre instance PSU.
Définir le compte d'exécution
Vous pouvez définir le compte d'exécution en passant le nom d'une variable PSCredential à la propriété Credential.
Appeler des tâches à partir d'applis
Vous pouvez utiliser les mêmes applets de commande que vous utilisez dans d'autres scripts PowerShell pour exécuter des scripts dans des applis. Vous voudrez peut-être une expérience plus interactive en le faisant. Voici quelques exemples de la façon d'y parvenir à l'aide du cadre d'applis.
Afficher la sortie
Vous pouvez utiliser les applets de commande Invoke-PSUScript et Get-PSUJobOutput pour créer un élément d'interface qui se met à jour pendant l'exécution du script. Supposons que vous avez un script comme celui ci-dessous. Il écrit simplement dans le flux Information toutes les 100 millisecondes, 100 fois.
Dans votre appli, vous pouvez démarrer le script en fonction d'une interaction de l'utilisateur, puis mettre à jour un élément pendant l'exécution du script. L'exemple ci-dessous crée un bouton et un élément de balise pre qui servira de destination pour la sortie du script. Lorsque l'utilisateur clique sur le bouton, la tâche démarre et il attend qu'elle se termine. Dans la boucle, il récupère la sortie du script, puis met à jour l'élément pre avec le contenu de la sortie.
Enfin, il récupère un statut mis à jour de la tâche et attend 100 millisecondes avant de s'exécuter de nouveau.
Afficher la progression
L'hôte PowerShell du cadre d'applis s'interfacera automatiquement avec des fonctionnalités de PowerShell, comme Write-Progress.
Si vous utilisez le paramètre -Wait de Invoke-PSUScript, il affichera automatiquement la progression du script dans un dialogue dans votre appli. Supposons que nous avons un script défini comme ci-dessous. Ce script écrit la progression toutes les 100 millisecondes.
Dans notre appli, nous pouvons simplement appeler le script avec le paramètre -Wait. Lorsque l'utilisateur clique sur le bouton, la progression sera affichée dans l'appli.

Demander une saisie
L'hôte PowerShell du cadre d'applis s'interfacera automatiquement avec des fonctionnalités de PowerShell, comme Read-Host.
Si vous utilisez le paramètre -Wait de Invoke-PSUScript, il demandera automatiquement une saisie à l'utilisateur lorsqu'il rencontrera la commande Read-Host. Supposons que nous avons un script qui demande une saisie de l'utilisateur à l'aide de Read-Host.
Dans votre appli, appelez simplement le script avec le paramètre -Wait.
L'utilisateur sera alors invité à saisir une valeur pendant l'exécution du script.

Variables définies dans les tâches
Les variables définies dans les tâches se trouvent sur la page des variables.
ID d'exécution de tâche
Le comportement par défaut de PowerShell Universal est de suivre les tâches en fonction d'un ID à incrémentation automatique basé sur int64. Chaque fois qu'une nouvelle tâche est exécutée, son ID est supérieur d'une unité à celui de la précédente. En raison de ce comportement, il est facile de deviner les ID d'autres tâches, ce qui peut potentiellement représenter un risque de sécurité.
Afin d'éviter ce problème, vous pouvez activer la fonctionnalité expérimentale JobRunID. Bien qu'à l'interne le système crée toujours des tâches avec des ID numériques croissants, vous ne pouvez pas accéder aux tâches à partir de ces ID. À la place, un nouveau champ appelé RunID est utilisé. RunID utilise un GUID plutôt qu'un ID pour les recherches. Cela réduit grandement la capacité d'un attaquant à devinier un ID de tâche.
Vous devrez activer cette fonctionnalité pour l'utiliser.
API
Mis à jour
Ce contenu vous a-t-il été utile ?