Sonde PowerShell

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 2 minutes de lecture
  • La sonde PowerShell exécute les scripts PowerShell V2 sur l’hôte du serveur MID.

    Les scripts PowerShell sont définis comme des paramètres de sonde avec le nom de fichier comme nom de paramètre. Elle est disponible en tant que type de sonde en spécifiant PowerShell comme rubrique de file d’attente ECC de la sonde.

    Paramètres de sonde PowerShell

    Nom de paramètre Description
    source [Obligatoire] L’hôte initial auquel se connecter.

    Par défaut : Aucun

    <script name>.ps1

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

    Par défaut : Aucun

    powershell_command_parameter_passing

    Indique s’il faut transmettre ou non des paramètres de script sur la ligne de commande. Quelle que soit la valeur de ce paramètre, ServiceNow tous les paramètres de script sur la ligne de commande sont automatiquement disponibles pour les scripts PowerShell en tant que variables d’environnement.

    Par défaut : false

    powershell_param_<script parameter name> Transmet des paramètres supplémentaires au script PowerShell à exécuter. Chaque paramètre apparaîtra au 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 chiffrés et sont transmis au script sans être modifiés. Assurez-vous de sélectionner le paramètre approprié entre powershell_param_<script parameter name> et .powershell_<script parameter name> L’utilisation d’un préfixe incorrect entraîne des erreurs dans l’exécution de PowerShell, qui sont renvoyées à 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 au script en tant que variable d’environnement au format $env:SNC_<script parameter name>. Le serveur MID suppose que tout paramètre portant 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 d’un préfixe incorrect entraîne des erreurs dans l’exécution de PowerShell, qui sont renvoyées à l’instance dans l’entrée de file d’attente ECC

    Par défaut : Aucun

    déboguer Active la sortie du journal de débogage pendant la sonde.

    Par défaut : false

    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 true, les informations de dépannage des informations d’identification sont envoyées à la file d’attente ECC, même si les informations d’identification réussissent.

    Par défaut : false

    Exigences de scripting

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

    Param([string]$paramName)

    Devient une variable de script comme suit :

    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 qui doivent être redéfinis en tant que variables de script :

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

    Définir les paramètres non booléens en tant que variables de script donnerait ce type de script :

    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
    }