Sonde PowerShell

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 2 minutes de lecture
  • La sonde PowerShell exécute les scripts PowerShell V2 sur l'hôte du MID Server.

    Les scripts PowerShell sont définis en tant que paramètres de sonde avec le nom de fichier comme nom de paramètre. Ils sont disponibles en tant que type de sonde en spécifiant PowerShell comme sujet de file d'attente ECC de la sonde.

    Paramètres de sonde PowerShell

    Nom de paramètre Description
    source [Requis] Hôte initial auquel se connecter.

    Par défaut : Aucun

    <script name>.ps1

    [Requis] Nom de fichier du script PowerShell à exécuter. Remplacez <script name> par un préfixe de nom de fichier valide.

    Par défaut : Aucun

    powershell_command_parameter_passing

    Spécifie s'il faut transmettre les paramètres de script sur la ligne de commande. Quelle que soit la valeur de ce paramètre, ServiceNow met automatiquement tous les paramètres de script de la ligne de commande à disponibilité des scripts PowerShell en tant que variables d'environnement.

    Valeur par défaut : faux

    powershell_param_<script parameter name> Transmet des paramètres supplémentaires au script PowerShell à exécuter. Chaque paramètre apparaîtra dans le script en tant que variable d'environnement au format $env:SNC_<script parameter name>. Les paramètres avec ce préfixe ne sont pas considérés comme étant chiffrés et sont transmis intacts au script. Assurez-vous de sélectionner le paramètre approprié entre powershell_param_<script parameter name> et powershell_<script parameter name>. L'utilisation du préfixe incorrect entraîne des erreurs dans l'exécution du script PowerShell, qui est renvoyé à l'instance dans l'entrée de file d'attente ECC.

    Par défaut : Aucun

    powershell_<script parameter name>

    Transmet des paramètres supplémentaires au script PowerShell à exécuter. Chaque paramètre apparaîtra dans le script en tant que variable d'environnement au format $env:SNC_<script parameter name>. Le MID Server part du principe que tout paramètre avec ce préfixe est chiffré, et tente de le déchiffrer. Assurez-vous de sélectionner le paramètre approprié entre powershell_param_<script parameter name> et powershell_<script parameter name>. L'utilisation du préfixe incorrect entraîne des erreurs dans l'exécution du script PowerShell, qui est renvoyé à l'instance dans l'entrée de file d'attente ECC.

    Par défaut : Aucun

    debug Active la génération du journal de débogage pendant l'exécution de la sonde.

    Valeur par défaut : faux

    credentials_debug Affiche une section <credentials_debug> dans la file d'attente ECC, qui peut vous aider à résoudre les problèmes liés aux informations d'identification. Si vous définissez cette propriété sur vrai, les informations de dépannage des informations d'identification sont générées dans la file d'attente ECC, même si les informations d'identification sont correctes.

    Valeur par défaut : faux

    Exigences en matière de scripting

    Tous les scripts PowerShell personnalisés doivent utiliser des variables d'environnement pour transmettre les paramètres de ligne de commande non booléens. Remplacez les paramètres non booléens dans la portion Param() du script par des variables de script du même nom. Définissez la variable de script dans le cadre de l'environnement avec un préfixe SNC_. Ainsi, un paramètre de chaîne tel que celui-ci :

    Param([string]$paramName)

    est converti en variable de script telle que celle-ci :

    if(test-path env:\SNC_paramName) {
        $paramName = $env:SNC_paramName
    }

    Par exemple, cette définition de paramètre du script PSScript.ps1 contient plusieurs paramètres de chaîne devant être redéfinis en tant que variables de script :

    Param([string]$computer, [string]$script, [string]$user, [string]$password, [boolean]$useCred, [boolean]$isDiscovery, [boolean]$debug)

    La définition des paramètres non booléens en tant que variables de script entraînerait le type de script suivant :

    Param([boolean]$useCred, [boolean]$isDiscovery, [boolean]$debug)
     
    # Copy the environment variables to the params
    if(test-path env:\SNC_computer) {
      $computer=$env:SNC_computer
    }
     
    if(test-path env:\SNC_script) {
      $script=$env:SNC_script
    }
     
    if(test-path env:\SNC_user) {
      $user=$env:SNC_user
      $password=$env:SNC_password
    }