Activités PowerShell

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 4 minutes de lecture
  • PowerShell, qui repose sur le Windows .NET Framework, est conçu pour contrôler et automatiser l’administration des machines et des Windows applications.

    PowerShell doit être installé sur tout serveur MID qui utilise ces activités. Les serveurs MID utilisant PowerShell doivent être installés sur un système d’exploitation pris en charge Windows . ServiceNow prend en charge PowerShell 3.0 à 5.1.

    Le module ServiceNow d’extension Orchestration ajoute ces activités PowerShell de base aux workflows. Pour obtenir des instructions sur l’utilisation des activités du pack d’activités PowerShell, consultez Pack d’activité PowerShell

    Activité PowerShell héritée d’exécution

    L’activité Exécuter PowerShell exécute les Windows commandes PowerShell sur un serveur MID.

    Important :
    Cette activité est déconseillée et n’est pas disponible pour les nouveaux workflows. Pour remplacer la fonctionnalité de cette activité, utilisez le modèle d’activité Powershell pour créer une activité personnalisée dans le champ d’application. Les workflows d’une version précédente qui utilisent l’activité Exécuter PowerShell peuvent continuer à le faire.

    Valeurs du résultat

    Le concepteur de workflow peut affecter une valeur de résultat à l’aide de activity.result à partir d’un champ de script de l’activité. Par défaut, la réussite ou l’échec des commandes PowerShell utilisées détermine la valeur de résultat de l’activité Exécuter PowerShell. Les valeurs de résultat possibles sont les suivantes :
    • Succès
    • Échec

    Entrées de bloc-notes

    Les informations écrites dans stdout par le script d’exécution sont capturées et renvoyées à l’activité dans la variable activity.output . Ces informations peuvent être analysées, traitées ou enregistrées (dans une variable de bloc-notes, par exemple) en vue d’un traitement ultérieur dans le script de capteur de l’activité.

    Par exemple, exécutez la commande get-date pour obtenir l’heure actuelle du serveur MID. Ce script de capteur enregistre la sortie complète reçue, mais nous pouvons la traiter pour la retourner et gagner du temps uniquement.
    Figure 1. Activité PowerShell
    Activité PowerShell
    Remarque :
    C’est un exemple trop simplifié. Dans la plupart des cas, le script fonctionne sur un ordinateur distant Windows . Cependant, le principe est le même : tout ce qui est écrit dans stdout est renvoyé dans activity.output et disponible pour traitement.

    Variables d'entrée

    Tableau 1. Variables d'entrée
    Champ Description
    Nom d'hôte Adresse IP de l’ordinateur cible Windows . Cette valeur est mappée à la variable $computer à utiliser dans les commandes (voir l’exemple dans le champ Commande ). Une variable d’informations d’identification PowerShell appelée $cred qui est basée sur les informations contenues dans la table Informations d’identification s’authentifie sur l’ordinateur pointé par le ServiceNownom d’hôte.
    Commande Entrez la commande PowerShell à exécuter. Par exemple, pour exécuter une requête WMI simple sur un ordinateur distant pointé par la variable hostname , la commande est :
    get-wmiobject <class> -computer $computer -credential $cred

    Si aucune information d’identification ne s’authentifie sur l’ordinateur, la commande s’exécute dans le contexte de l’utilisateur du serveur MID.

    Vous ne pouvez pas exécuter à la fois une commande et un fichier de script. La spécification d’une commande masque la variable Fichier script .

    Script de capteur Script à exécuter à l’aide des résultats de la sonde. La sortie de la sonde est contenue dans une variable appelée output. Toute erreur de la sonde est contenue dans une variable appelée error.
    Fichier de script Le champ Activer la synchronisation du fichier de script pour Windows Sécurité renforcée. Vous ne pouvez pas exécuter à la fois un fichier de script et une commande. La sélection d’un fichier de script masque la variable Commande .
    Variables de script PowerShell Paramètres supplémentaires, au format JSON, utilisés par le fichier de script spécifié.

    États

    L’état de l’activité indique au moteur de workflow ce qu’il doit faire de l’activité.
    Tableau 2. États
    État Description
    Exécution Le moteur de workflow sait qu’il doit démarrer la fonction onExecute de l’activité.
    Fermer L'activité s'est terminée. Affichez la valeur de résultat pour connaître le résultat de l'activité.
    Annulé Cette activité, ou le workflow qui contient cette activité, a été annulée.
    Ajoutez des variables de workflow pour la ligne de commande à l’aide de la syntaxe variable de workflow normale. Dans l’exemple ci-dessus, si la < classe > se trouvait dans une variable d’entrée de workflow appelée myclass, la commande ressemblerait à :
    get-wmiobject $ {workflow. inputs. myclass } -computer $computer –credential $cred
    Similarly  if the variable  is a scratchpad variable named myclass , the command would look like :
    get -wmiobject $ {workflow. scratchpad. myclass } -computer $computer –credential $cred

    Codes des résultats RH

    Lorsqu’un script PowerShell rencontre une erreur, l’ordinateur Windows peut renvoyer un code HResult dans le message d’erreur.

    Les activités PowerShell peuvent lire et interpréter ce code. Toutes les erreurs PowerShell n’incluent pas de code HResult. En cas d’échec d’un script PowerShell, vous pouvez utiliser le code HR Esult pour déplacer le workflow selon une condition spécifique.

    Par exemple, lors de la réinitialisation d’un mot de passe Active Directory à un mot de passe qui ne répond pas aux exigences de la politique, telles qu’une longueur ou une complexité minimales, le script PowerShell renvoie le code de résultat RH -2146022651. Pour utiliser ce code, créez une condition d’activité avec la valeur de conditionactivity.hresult = -2146022651. Si le script PowerShell renvoie ce code lors de l’exécution de l’activité, le workflow passe par cette nouvelle condition.