Fichiers PowerShell de Serveur MID

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 4 minutes de lecture
  • Les fonctions PowerShell sont stockées dans des fichiers de script (*.ps1) qui utilisent une extension de nom de fichier du module de script PowerShell (*.psm1).

    Les fonctions PowerShell sont utilisées par les fichiers de script PowerShell MID Server inclus dans ces packs d’activités :
    • Active Directory
    • Échanger
    • SCCM
    • PowerShell

    PSScript.ps1

    Ce script effectue quelques tâches, telles que le test des informations d’identification, le chiffrement des mots de passe et l’exécution de scripts configurés dans le concepteur d’activités Orchestration ou dans les fichiers de script MID. Toutefois, le présent document se concentre sur la façon dont PSScript.ps1 utilise le module credential.psm1 pour tester l’accès aux hôtes distants.

    Les variables PowerShell sont généralement utilisées directement dans la commande d’exécution PowerShell ou comme arguments dans le fichier de script du Serveur MID que vous spécifiez. Il existe des variables spéciales qui sont transmises à PSScript.ps1, telles que credType.
    Figure 1. Utilisation de credType dans les paramètres d’exécution
    Utilisation de credType dans les paramètres d’exécution

    credTypes PowerShell

    Les types d’informations d’identification PowerShell :

    Type Description
    WMI testCredentialWMI
    Échanger testCredentilExchange
    ANNONCE testCredentilAD
    SCCM de testCredentilSCCM

    Si aucun type d’informations d’identification n’est transmis au script PSScrip.ps1, le MID Server utilise par défaut la fonction de test WMI pour tester l’accès à l’hôte cible. Si un type d’informations d’identification est utilisé, le Serveur MID exécute la fonction de test correspondante pour ce type d’informations d’identification.

    Codes de sortie

    Ces codes de sortie sont renvoyés par le script PSScript.ps1 et consignés dans le fichier journal du Serveur MID.

    Tableau 1. Codes de sortie PSScript.ps1
    Type Fonction de test
    0 La commande/le script PowerShell s’est exécuté avec succès.
    1 Le test s’est terminé avec succès, mais la commande/le script n’a pas pu s’exécuter.
    2 Syntaxe incorrecte transmise au script.
    3 Échec de l’exécution de la commande/du script pour toutes les informations d’identification, y compris le compte de service de Serveur MID.
    4 Test réussi et exécution de l’activité, mais une erreur a été renvoyée. L’exemple d’utilisateur est introuvable.

    DiagnosticsUtil.psm1

    Le serveur MID utilise ce fichier de module pour effectuer une connexion PowerShell qui facilite le débogage de toute activité d’orchestration à l’aide de scripts PowerShell. Vous pouvez également ajouter des instructions de débogage directement aux scripts personnalisés.
    Tableau 2. Utilitaires de diagnostic PowerShell
    Utilitaire Description
    SNCLog-DebugInfo Consignez un message de débogage pour un script PowerShell ou une activité d’orchestration PowerShell. Exemples :
    • SNCLog-DebugInfo -message "Mon message de débogage... "
    • SNCLog-DebugInfo « Mon message de débogage »
    SNCLog-ParameterInfo Consignez une valeur de paramètre de fonction. Pour « function getHostName{ param( [String] $target ) », la première valeur de la table de hachage PowerShell est une chaîne indiquant quelle fonction s’exécute et les valeurs de chacun des paramètres de fonction. Exemples :
    • Fonction avec un seul paramètre : SNCLog-ParameterInfo @(« Running getHostName », $target)
      Remarque :
      Le message de débogage affiche : « Exécution de getHostName $target :[valeur réelle de $target] ».
    • Fonction avec plusieurs paramètres : SNCLog-ParameterInfo @(« Running functionName », $param 1, $param 2, $param 3)
    SNCObfuscate-Valeur Utilisez cet utilitaire pour chiffrer des valeurs à des fins de sécurité. La fonction affiche « $variableName »:***, où *** est la valeur brouillée. Exemple :
    SNCObfuscate-Value $password
    Remarque :
    Le message de débogage se lit comme suit : « $password : *** ».

    Credentials.psm1

    Le MID Server utilise ce fichier de module pour tester l’accès à un hôte cible. Le serveur MID parcourt en boucle toutes les informations d’identification stockées dans sa table d’informations d’identification à l’aide des fonctions de type d’accès suivantes, sauf si un Windows type d’informations d’identification (credType) est défini pour l’activité PowerShell. Toutes les ServiceNow® activités PowerShell créées sont codées en dur pour utiliser un type d’informations d’identification spécifique. Par conséquent, le MID Server teste uniquement l’accès aux informations d’identification par rapport à la fonction désignée.
    Tableau 3. Fonctions de test PowerShell
    Fonction Description
    testCredentialWMI Teste l’utilisateur et le mot de passe donnés sur l’hôte cible à l’aide de l’objet Get-WMI .
    testCredentilAD Teste l’utilisateur et le mot de passe donnés sur l’hôte cible à l’aide de DirectoryEntry l’objet intégré.
    testCredentialExchange Teste l’utilisateur et le mot de passe donnés pour créer une session sur un hôte Exchange. Ce test utilise la fonctionnalité d’accès à distance PowerShell intégrée sur un hôte distant. WinRM est configuré par défaut sur les serveurs Exchange.
    testInformations d’identificationSCCM Teste l’utilisateur et le mot de passe donnés pour créer une session sur un serveur SCCM. Ce test utilise la fonctionnalité d’accès à distance PowerShell intégrée sur un hôte distant. Ce test nécessite la configuration de WinRM.
    testNoCredentialAccessWMI Teste l’utilisateur et le mot de passe donnés sur l’hôte cible, à l’aide de l’objet Get-WMI . Ce test est utilisé lorsqu’aucun credType n’est utilisé.
    Remarque :
    Si le test réussit à l’aide de l’une de ces fonctions, ces informations d’identification sont utilisées pour exécuter le script/la commande PowerShell. Si les tests ne parviennent pas à accéder à l’hôte cible à l’aide de ces fonctions, le Serveur MID exécute le script/la commande PowerShell sous le compte du service du Serveur MID.

    Ce diagramme illustre la dépendance du comportement de sélection des informations d’identification vis-à-vis de l’hôte ciblé par l’activité PowerShell. Si l’hôte cible correspond à l’adresse IP ou au nom d’hôte du serveur MID, le serveur MID contourne toutes les informations d’identification de la table Informations d’identification et utilise le compte du service du serveur MID. Si l’hôte cible n’est pas le MID Server, toutes les Windows informations d’identification sont utilisées en premier. Si toutes les informations d’identification de la table Informations d’identification échouent lors de l’exécution de l’activité PowerShell, le Serveur MID utilise le compte de service du Serveur MID.

    Figure 2. Critères de sélection des informations d’identification PowerShell
    Critères de sélection des informations d’identification PowerShell

    AnnuaireActif.psm1

    Ce fichier de module stocke les fonctions utilisées par les scripts PowerShell fournis avec le pack d’activités Active Directory .

    Échange.psm1

    Ce fichier de module stocke les fonctions utilisées par les scripts PowerShell fournis avec le pack d’activités Exchange .

    SCCM.psm1

    Ce fichier de module stocke les fonctions utilisées par les scripts PowerShell fournis avec le pack d’activités SCCM .