Créer et exécuter des scripts PowerShell à partir de la console Configuration ManagerCreate and run PowerShell scripts from the Configuration Manager console

S’applique à : System Center Configuration Manager (Current Branch)Applies to: System Center Configuration Manager (Current Branch)

System Center Configuration Manager a la capacité intégrée d’exécuter des scripts PowerShell.System Center Configuration Manager has an integrated ability to run Powershell scripts. Powershell a l’avantage de créer des scripts automatisés et sophistiqués, qui sont compris et partagés par une large communauté.Powershell has the benefit of creating sophisticated, automated scripts that are understood and shared with a larger community. Les scripts simplifient la création d’outils personnalisés pour administrer des logiciels et vous permettent d’accomplir des tâches courantes rapidement, plus facilement et de façon plus cohérente.The scripts simplify building custom tools to administer software and let you accomplish mundane tasks quickly, allowing you to get large jobs done more easily and more consistently.

Conseil

Cette fonctionnalité a été introduite dans la version 1706 comme fonctionnalité en préversion.This feature was first introduced in version 1706 as a pre-release feature. À compter de la version 1802, cette fonctionnalité n’est plus en préversion.Beginning with version 1802, this feature is no longer a pre-release feature.

Notes

Par défaut, Configuration Manager n’active pas cette fonctionnalité facultative.Configuration Manager doesn't enable this optional feature by default. Vous devez activer cette fonctionnalité avant de l’utiliser.You must enable this feature before using it. Pour plus d’informations, consultez Activer les fonctionnalités facultatives des mises à jour.For more information, see Enable optional features from updates.

Avec cette intégration dans System Center Configuration Manager, vous pouvez utiliser la fonctionnalité Exécuter les scripts pour effectuer les opérations suivantes :With this integration in System Center Configuration Manager, you can use the Run Scripts functionality to do the following things:

  • Créer et modifier des scripts à utiliser avec System Center Configuration Manager.Create and edit scripts for use with System Center Configuration Manager.
  • Gérer l’utilisation des scripts par le biais de rôles et d’étendues de sécurité.Manage script usage through roles and security scopes.
  • Exécuter des scripts sur des regroupements des PC Windows individuels gérés localement.Run scripts on collections or individual on-premises managed Windows PCs.
  • Obtenir des résultats de script agrégés rapides des appareils clients.Get rapid aggregated script results from client devices.
  • Surveiller l’exécution des scripts et afficher les résultats de la création de rapports à partir de la sortie des scripts.Monitor script execution and view reporting results from script output.

Avertissement

Étant donné la puissance des scripts, nous vous rappelons de les utiliser avec précaution.Given the power of scripts, we remind you to be intentional and careful with their usage. Nous avons intégré des protections supplémentaires pour vous aider, à savoir des rôles et des étendues séparés.We have built in additional safeguards to assist you; segregated roles and scopes. Vérifiez que les scripts sont exacts avant de les exécuter, puis confirmez qu’ils proviennent d’une source approuvée pour empêcher l’exécution involontaire de scripts.Be sure to validate the accuracy of scripts before running them and confirm they are from a trusted source, to prevent unintended script execution. Soyez attentif aux caractères étendus ou toute autre obfuscation et informez-vous sur la sécurisation des scripts.Be mindful of extended characters or other obfuscation and educate yourself about securing scripts. En savoir plus sur la sécurité des scripts PowerShellLearn more about PowerShell script security

PrérequisPrerequisites

  • Pour exécuter des scripts PowerShell, le client doit exécuter PowerShell version 3.0 ou ultérieure.To run PowerShell scripts, the client must be running PowerShell version 3.0 or later. Toutefois, si un script que vous exécutez contient des fonctionnalités d’une version ultérieure de PowerShell, le client sur lequel vous exécutez le script doit exécuter cette version de PowerShell.However, if a script you run contains functionality from a later version of PowerShell, the client on which you run the script must be running that version of PowerShell.
  • Les clients Configuration Manager doivent exécuter le client à partir de la version Release 1706 ou ultérieure pour exécuter des scripts.Configuration Manager clients must be running the client from the 1706 release, or later in order to run scripts.
  • Pour utiliser des scripts, vous devez être membre du rôle de sécurité Configuration Manager approprié.To use scripts, you must be a member of the appropriate Configuration Manager security role.
  • Pour importer et créer des scripts, votre compte doit avoir des autorisations Créer pour les scripts SMS.To import and author scripts - Your account must have Create permissions for SMS Scripts.
  • Pour approuver ou refuser des scripts, votre compte doit avoir des autorisations Approuver pour les scripts SMS.To approve or deny scripts - Your account must have Approve permissions for SMS Scripts.
  • Pour exécuter des scripts, votre compte doit avoir les autorisations Exécuter le script pour les Regroupements.To run scripts - Your account must have Run Script permissions for Collections.

Pour plus d’informations sur les rôles de sécurité Configuration Manager :For more information about Configuration Manager security roles:
Étendues de sécurité pour exécuter des scriptsSecurity scopes for run scripts
Rôles de sécurité pour exécuter des scriptsSecurity roles for run scripts
Principes de base de l’administration basée sur des rôles.Fundamentals of role-based administration.

LimitationsLimitations

La fonctionnalité Exécuter les scripts prend actuellement en charge :Run Scripts currently supports:

  • Langages de script : PowerShellScripting languages: PowerShell
  • Types de paramètres : entier, chaîne et listeParameter types: integer, string, and list.

Avertissement

Notez bien que quand vous utilisez des paramètres, elle ouvre une surface d’exposition à des risques potentiels d’attaque par injection de code PowerShell.Be aware that when using parameters, it opens a surface area for potential PowerShell injection attack risk. Plusieurs moyens de limitation et de contournement existent, comme utiliser des expressions régulières pour valider l’entrée des paramètres ou utiliser des paramètres prédéfinis.There are various ways to mitigate and work around, such as using regular expressions to validate parameter input or using predefined parameters. Une bonne pratique courante est de ne pas inclure de secrets dans vos scripts PowerShell (pas de mots de passe, etc.).Common best practice is not to include secrets in your PowerShell scripts (no passwords, etc.). En savoir plus sur la sécurité des scripts PowerShellLearn more about PowerShell script security

Auteurs et approbateurs de scriptsRun Script authors and approvers

La fonctionnalité Exécuter les scripts utilise les concepts d’auteur de script et d’approbateur de script comme rôles distincts pour l’implémentation et l’exécution d’un script.Run Scripts uses the concept of script authors and script approvers as separate roles for implementation and execution of a script. La distinction des rôles d’auteur et d’approbateur permet à l’outil puissant qu’est la fonctionnalité Exécuter les scripts de bénéficier d’un contrôle de processus important.Having the author and approver roles separated allows an important process check for the powerful tool that Run Scripts is. Il existe un autre rôle d’exécuteurs de script qui permet l’exécution de scripts, mais pas la création ou l’approbation de scripts.There's an additional script runners role that allows execution of scripts, but not creation or approval of scripts. Consultez Créer des rôles de sécurité pour les scripts.See Create security roles for scripts.

Contrôle des rôles des scriptsScripts roles control

Par défaut, les utilisateurs ne peuvent pas approuver un script qu’ils ont créé.By default, users can't approve a script they've authored. Étant donné que les scripts sont puissants et flexibles, et qu’ils peuvent potentiellement être déployés sur de nombreux appareils, vous pouvez séparer les rôles entre la personne qui crée le script et celle qui l’approuve.Because scripts are powerful, versatile, and potentially deployed to many devices, you can separate the roles between the person that authors the script and the person that approves the script. Ces rôles procurent un niveau supplémentaire de sécurité par rapport à l’exécution d’un script sans supervision.These roles give an additional level of security against running a script without oversight. Vous avez la possibilité de désactiver l’approbation secondaire pour faciliter le test.You're able to turn off secondary approval, for ease of testing.

Approuver ou refuser un scriptApprove or Deny a script

Les scripts doivent être approuvés, par le rôle d’approbateur de script, pour pouvoir être exécutés.Scripts must be approved, by the script approver role, before they can be run. Pour approuver un script :To approve a script:

  1. Dans la console Configuration Manager, cliquez sur Bibliothèque de logiciels.In the Configuration Manager console, click Software Library.
  2. Dans l'espace de travail Bibliothèque de logiciels , cliquez sur Scripts.In the Software Library workspace, click Scripts.
  3. Dans la liste Script, sélectionnez le script que vous souhaitez approuver ou refuser puis, dans l’onglet Accueil, sous le groupe Script, cliquez sur Approuver/Refuser.In the Script list, choose the script you want to approve or deny and then, on the Home tab, in the Script group, click Approve/Deny.
  4. Dans la boîte de dialogue Approuver ou refuser le script, sélectionnez Approuver ou Refuser pour le script.In the Approve or deny script dialog box, select Approve, or Deny for the script. Entrez éventuellement un commentaire sur votre décision.Optionally, enter a comment about your decision. Si vous refusez un script, il ne peut pas être exécuté sur les appareils clients.If you deny a script, it can't be run on client devices.
    Script - ApprobationScript - Approval
  5. Effectuez toutes les étapes de l'Assistant.Complete the wizard. Dans la liste Script, la colonne État d’approbation change en fonction de votre action.In the Script list, you see the Approval State column change depending on the action you took.

Autoriser les utilisateurs à approuver leurs propres scriptsAllow users to approve their own scripts

Cette approbation est principalement utilisée pour la phase de test du développement de scripts.This approval is primarily used for the testing phase of script development.

  1. Dans la console Configuration Manager, cliquez sur Administration.In the Configuration Manager console, click Administration.
  2. Dans l'espace de travail Administration , développez Configuration du site, puis cliquez sur Sites.In the Administration workspace, expand Site Configuration, and then click Sites.
  3. Dans la liste des sites, sélectionnez votre site, puis, dans l’onglet accueil, sous le groupe Sites, cliquez sur Paramètres de hiérarchie.In the list of sites, choose your site and then, on the Home tab, in the Sites group, click Hierarchy Settings.
  4. Sous l’onglet Général de la boîte de dialogue Propriétés des paramètres de hiérarchie, décochez la case Les auteurs de script nécessitent un approbateur de script supplémentaire.On the General tab of the Hierarchy Settings Properties dialog box, clear the checkbox Script authors require additional script approver.

Important

En tant que bonne pratique, vous ne devriez pas autoriser un auteur de script à approuver ses propres scripts.As a best practice, you shouldn't allow a script author to approve their own scripts. Ceci ne devrait être autorisé que dans un environnement de laboratoire.It should only be allowed in a lab setting. Mesurez minutieusement l’impact qu’aurait la modification de ce paramètre dans un environnement de production.Carefully consider the potential impact of changing this setting in a production environment.

Étendues de sécuritéSecurity scopes

(Fonctionnalité introduite avec la version 1710)(Introduced with version 1710)
La fonctionnalité Exécuter les scripts utilise des étendues de sécurité, fonctionnalité de Configuration Manager, pour contrôler la création et l’exécution des scripts par le biais d’étiquettes représentant des groupes d’utilisateurs.Run Scripts uses security scopes, an existing feature of Configuration Manager, to control scripts authoring and execution through assigning tags that represent user groups. Pour plus d’informations sur l’utilisation des étendues de sécurité, consultez Configurer l’administration basée sur des rôles pour System Center Configuration Manager.For more information on using security scopes, see Configure role-based administration for System Center Configuration Manager.

Créer des rôles de sécurité pour les scriptsCreate security roles for scripts

Les trois rôles de sécurité utilisés pour exécuter des scripts ne sont pas créés par défaut dans Configuration Manager.The three security roles used for running scripts aren't created by default in Configuration Manager. Pour créer les rôles d’exécuteurs de scripts, de créateurs de scripts et d’approbateurs de scripts, suivez les étapes indiquées.To create the script runners, script authors, and script approvers roles, follow the outlined steps.

  1. Dans la console Configuration Manager, accédez à Administration >Sécurité >Rôles de sécuritéIn the Configuration Manager console, go to Administration >Security >Security Roles
  2. Cliquez avec le bouton droit sur un rôle, puis cliquez sur Copier.Right-click on a role and click Copy. Des autorisations sont déjà affectées au rôle que vous copiez.The role you copy has permissions already assigned. Veillez à ne prendre que les autorisations souhaitées.Make sure you take only the permissions that you want.
  3. Donnez un Nom et une Description au rôle personnalisé.Give the custom role a Name and a Description.
  4. Affectez les autorisations décrites ci-dessous au rôle de sécurité.Assign the security role the permissions outlined below.

Autorisations du rôle de sécuritéSecurity Role Permissions

Nom du rôle : Exécuteurs de scriptsRole Name: Script Runners

  • Description : ces autorisations permettent à ce rôle d’exécuter seulement des scripts qui ont été précédemment créés et approuvés par d’autres rôles.Description: These permissions enable this role to only run scripts that were previously created and approved by other roles.
  • Autorisations : vérifiez que les éléments suivants sont définis sur Oui.Permissions: Ensure the following are set to Yes.
CatégorieCategory AutorisationPermission ÉtatState
CollectionCollection Exécuter un scriptRun Script OuiYes
SiteSite LectureRead OuiYes
Scripts SMSSMS Scripts LectureRead OuiYes

Nom du rôle : Créateurs de scriptsRole Name: Script Authors

  • Description : ces autorisations permettent à ce rôle de créer des scripts, mais pas de les approuver ou de les exécuter.Description: These permissions enable this role to author scripts, but they can’t approve or run them.
  • Autorisations : vérifiez que les autorisations suivantes sont définies.Permissions: Ensure the following permissions are set.
CatégorieCategory AutorisationPermission ÉtatState
CollectionCollection Exécuter un scriptRun Script NonNo
SiteSite LectureRead OuiYes
Scripts SMSSMS Scripts CréerCreate OuiYes
Scripts SMSSMS Scripts LectureRead OuiYes
Scripts SMSSMS Scripts SupprimerDelete OuiYes
Scripts SMSSMS Scripts ModifierModify OuiYes

Nom du rôle : Approbateurs de scriptsRole Name: Script Approvers

  • Description : ces autorisations permettent à ce rôle d’approuver des scripts, mais pas de les créer ou de les exécuter.Description: These permissions enable this role to approve scripts, but they can’t create or run them.
  • Autorisations : vérifiez que les autorisations suivantes sont définies.Permissions: Ensure the following permissions are set.
CatégorieCategory AutorisationPermission ÉtatState
CollectionCollection Exécuter un scriptRun Script NonNo
SiteSite LectureRead OuiYes
Scripts SMSSMS Scripts LectureRead OuiYes
Scripts SMSSMS Scripts ApprouverApprove OuiYes
Scripts SMSSMS Scripts ModifierModify OuiYes

Exemple d’autorisations de scripts SMS pour le rôle de créateurs de scriptExample of SMS Scripts permissions for the script authors role

Exemple d’autorisations de scripts SMS pour le rôle de créateurs de script

Créer un scriptCreate a script

  1. Dans la console Configuration Manager, cliquez sur Bibliothèque de logiciels.In the Configuration Manager console, click Software Library.
  2. Dans l'espace de travail Bibliothèque de logiciels , cliquez sur Scripts.In the Software Library workspace, click Scripts.
  3. Dans l'onglet Accueil , dans le groupe Créer , cliquez sur Créer un script.On the Home tab, in the Create group, click Create Script.
  4. Dans la page Script de l’assistant Créer un script, configurez les paramètres éléments suivants :On the Script page of the Create Script wizard, configure the following settings:
    • Nom de script : entrez un nom pour le script.Script Name - Enter a name for the script. Vous pouvez créer plusieurs scripts portant le même nom, mais utiliser des noms en double complique la recherche d’un script spécifique dans la console Configuration Manager.Although you can create multiple scripts with the same name, using duplicate names makes it harder for you to find the script you need in the Configuration Manager console.
    • Langage de script : seuls les scripts PowerShell sont pris en charge.Script language - Currently, only PowerShell scripts are supported.
    • Importer : importez un script PowerShell dans la console.Import - Import a PowerShell script into the console. Le script s’affiche dans le champ Script.The script is displayed in the Script field.
    • Effacer : supprime le script en cours du champ Script.Clear - Removes the current script from the Script field.
    • Script : affiche le script actuellement importé.Script - Displays the currently imported script. Vous pouvez modifier le script dans ce champ si nécessaire.You can edit the script in this field as necessary.
  5. Effectuez toutes les étapes de l'Assistant.Complete the wizard. Le nouveau script s’affiche dans la liste Script avec l’état En attente d’approbation.The new script is displayed in the Script list with a status of Waiting for approval. Avant de pouvoir exécuter ce script sur les appareils clients, vous devez l’approuver.Before you can run this script on client devices, you must approve it.

Important

Évitez de créer un script pour une réinitialisation de l’appareil ou un redémarrage de l’agent Configuration Manager lors de l’utilisation de la fonctionnalité Exécuter les scripts.Avoid scripting a device reboot or a restart of the Configuration Manager agent when using the Run Scripts feature. Cela peut entraîner un état de redémarrage continu.Doing so could lead to a continuous rebooting state. Si nécessaire, il existe des améliorations apportées à la fonctionnalité de notification au client qui permettent de redémarrer les appareils, à compter de Configuration Manager version 1710.If needed, there are enhancements to the client notification feature that enable restarting devices, starting in Configuration Manager version 1710. La colonne en attente de redémarrage peut aider à identifier les appareils qui nécessitent un redémarrage.The pending restart column can help identify devices that need a restart.

Paramètres de scriptScript parameters

(Fonctionnalité introduite avec la version 1710)(Introduced with version 1710)
L’ajout de paramètres à un script offre une flexibilité accrue à votre travail.Adding parameters to a script provides increased flexibility for your work. Vous pouvez inclure jusqu’à 10 paramètres.You can include up to 10 parameters. Voici les possibilités actuelles de la fonctionnalité Exécuter les scripts avec des paramètres de script pour des types de données Chaîne et Entier.The following outlines the Run Scripts feature's current capability with script parameters for; String, Integer data types. Les listes des valeurs prédéfinies sont également disponibles.Lists of preset values are also available. Si votre script comporte des types de données non pris en charge, vous obtenez un avertissement.If your script has unsupported data types, you get a warning.

Dans la boîte de dialogue Créer un script, cliquez sur Paramètres de script sous Script.In the Create Script dialog, click Script Parameters under Script.

Chacun des paramètres de votre script a sa propre boîte de dialogue pour l’ajout d’autres informations et la validation.Each of your script's parameters has its own dialog for adding further details and validation. S’il existe un paramètre par défaut dans le script, il apparaîtra dans l’interface utilisateur et vous pouvez le définir.If there's a default parameter in the script, it will be enumerated in the parameter UI and you can set it. Configuration Manager ne remplacera pas la valeur par défaut car il ne modifiera jamais directement le script.Configuration Manager won't overwrite the default value since it will never modify the script directly. Vous pouvez considérer ces valeurs comme des « valeurs suggérées préremplies» fournies dans l’interface utilisateur, mais Configuration Manager ne permet pas d’accès aux valeurs « par défaut » lors de l’exécution.You can think of this as “pre-populated suggested values” are provided in the UI, but Configuration Manager doesn't provide access to “default” values at run-time. Pour contourner le problème, vous pouvez modifier le script en spécifiant les valeurs par défaut correctes.This can be worked around by editing the script to have the correct defaults.

Important

Les valeurs des paramètres ne peuvent pas contenir d’apostrophe.Parameter values can't contain an apostrophe.
Il existe un problème connu dans Configuration Manager version 1802 qui empêche la bonne transmission des paramètres contenant des espaces au script.There is a known issue in Configuration Manager version 1802 where parameters with spaces don't get passed to the script properly. Si un espace est utilisé dans un paramètre, seul le premier élément du paramètre est transmis au script et tout ce qui se trouve après cet espace n’est pas transmis.If a space is used in the parameter, only the first item in the parameter is passed to the script and everything after the space is not passed. Les administrateurs peuvent contourner ce problème en remplaçant les espaces par d’autres caractères pour les convertir par la suite, ou à en utilisant d’autres méthodes.Admins can script around this by substituting alternate characters for spaces and converting them, or with other methods.

Validation du paramètreParameter validation

Chaque paramètre inclus dans votre script a une boîte de dialogue Propriétés du paramètre de script qui vous permet d’ajouter la validation de ce paramètre.Each parameter in your script has a Script Parameter Properties dialog for you to add validation for that parameter. Après avoir ajouté la validation, vous devez obtenir des erreurs si vous entrez une valeur pour un paramètre qui ne satisfait pas à sa validation.After adding validation, you should get errors if you're entering a value for a parameter that doesn't meet its validation.

Exemple : FirstNameExample: FirstName

Dans cet exemple, vous êtes en mesure de définir les propriétés du paramètre de chaîne FirstName.In this example, you're able to set the properties of the string parameter, FirstName.

Paramètres de script - chaîne

La section de validation de la boîte de dialogue Propriétés du paramètre de script contient les champs suivants que vous pouvez utiliser :The validation section of the Script Parameter Properties dialog contains the following fields for your use:

  • Longueur minimale : nombre minimal de caractères du champ FirstName.Minimum Length - minimum number of characters of the FirstName field.
  • Longueur maximale : nombre maximal de caractères du champ FirstName.Maximum Length- maximum number of characters of the FirstName field
  • RegEx : forme raccourcie d’Expression régulière.RegEx - short for Regular Expression. Pour plus d’informations sur l’utilisation de l’Expression régulière, consultez la section suivante, Utilisation de la validation Expression régulière.For more information on using the Regular Expression, see the next section, Using Regular Expression validation.
  • Erreur personnalisée : utile pour ajouter votre propre message d’erreur personnalisé qui remplace les messages d’erreur de validation système.Custom Error - useful for adding your own custom error message that supersedes any system validation error messages.

Utilisation de la validation Expression régulièreUsing Regular Expression validation

Une expression régulière est une forme compacte de programmation permettant de valider une chaîne de caractères par rapport à une validation encodée.A regular expression is a compact form of programming for checking a string of characters against an encoded validation. Vous pouvez, par exemple, vérifier l’absence d’un caractère alphabétique en majuscule dans le champ FirstName en plaçant [^A-Z] dans le champ RegEx.For example, you could check for the absence of a capital alphabetic character in the FirstName field by placing [^A-Z] in the RegEx field.

Le traitement de l’expression régulière pour cette boîte de dialogue est pris en charge par .NET Framework.The regular expression processing for this dialog is supported by the .NET Framework. Pour obtenir des conseils sur l’utilisation des expressions régulières, consultez expression régulière .net et langage des expressions régulières.For guidance on using regular expressions, see .NET Regular Expression and Regular Expression Language.

Exemples de scriptsScript examples

Voici quelques exemples de scripts utilisables avec cette fonctionnalité.Here are a couple examples that illustrate scripts you might want to use with this capability.

Créer un dossier et un fichierCreate a new folder and file

Ce script crée un dossier et un fichier dans le dossier, en fonction du nom entré.This script creates a new folder and a file within the folder, given your naming input.

Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)

New-Item $FolderName -type directory
New-Item $FileName -type file

Obtenir la version du système d’exploitationGet OS Version

Ce script utilise WMI pour interroger l’ordinateur sur sa version du système d’exploitation.This script uses WMI to query the machine for its OS version.

Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption

Modifier ou copier des scripts PowerShellEdit or copy PowerShell scripts

(Fonctionnalité introduite avec la version 1902)(Introduced with version 1902)
Vous pouvez Modifier ou Copier un script PowerShell existant utilisé avec la fonctionnalité Exécuter les scripts.You can Edit or Copy an existing PowerShell script used with the Run Scripts feature. Désormais, au lieu de recréer un script que vous devez changer, modifiez-le directement.Instead of recreating a script that you need to change, now directly edit it. Les deux actions utilisent la même expérience d’Assistant que lors de la création d’un script.Both actions use the same wizard experience as when you create a new script. Quand vous modifiez ou copiez un script, Configuration Manager ne conserve pas l’état d’approbation.When you edit or copy a script, Configuration Manager doesn't persist the approval state.

Conseil

Ne modifiez pas un script qui est en cours d’exécution sur des clients.Don't edit a script that's actively running on clients. Ils ne terminent pas l’exécution du script d’origine, et vous pouvez ne pas obtenir les résultats escomptés à partir de ces clients.They won't finish running the original script, and you may not get the intended results from these clients.

Modifier un scriptEdit a script

  1. Accédez au nœud scripts sous l’espace de travail bibliothèque de logiciels .Go to the Scripts node under the Software Library workspace.
  2. Sélectionnez le script à modifier, puis cliquez sur modifier dans le ruban.Select the script to edit, then click Edit in the ribbon.
  3. Modifiez ou réimportez votre script dans la page Détails du script .Change or reimport your script in the Script Details page.
  4. Cliquez sur suivant pour afficher le Résumé , puis sur Fermer lorsque vous avez terminé la modification.Click Next to view the Summary then Close when you're finished editing.

Copier un scriptCopy a script

  1. Accédez au nœud scripts sous l’espace de travail bibliothèque de logiciels .Go to the Scripts node under the Software Library workspace.
  2. Sélectionnez le script à copier, puis cliquez sur copier dans le ruban.Select the script to copy, then click Copy in the ribbon.
  3. Renommez le script dans le champ nom du script et apportez les modifications supplémentaires éventuellement nécessaires.Rename the script in the Script name field and make any additional edits you may need.
  4. Cliquez sur suivant pour afficher le Résumé , puis sur Fermer lorsque vous avez terminé la modification.Click Next to view the Summary then Close when you're finished editing.

Exécuter un scriptRun a script

Une fois approuvé, un script peut être exécuté sur un seul appareil ou une collection.After a script is approved, it can be run against a single device or a collection. Une fois que l’exécution de votre script commence, il est lancé rapidement via un système de priorité élevée qui expire dans un délai d’une heure.Once execution of your script begins, it's launched quickly through a high priority system that times-out in one hour. Les résultats du script sont alors retournés à l’aide d’un système de message d’état.The results of the script are then returned using a state message system.

Pour sélectionner une collection de cibles pour votre script :To select a collection of targets for your script:

  1. Dans la console Configuration Manager, cliquez sur Ressources et Conformité.In the Configuration Manager console, click Assets and Compliance.
  2. Dans l’espace de travail Ressources et Conformité, cliquez sur Regroupements de périphériques.In the Assets and Compliance workspace, click Device Collections.
  3. Dans la liste Collections d’appareils, cliquez sur la collection d’appareils sur laquelle vous souhaitez exécuter le script.In the Device Collections list, click the collection of devices on which you want to run the script.
  4. Sélectionnez une collection de votre choix, cliquez sur Exécuter le script.Select a collection of your choice, click Run Script.
  5. Sur la page Script de l’assistant Exécuter le Script, choisissez un script dans la liste.On the Script page of the Run Script wizard, choose a script from the list. Seuls les scripts approuvés sont affichés.Only approved scripts are shown.
  6. Cliquez sur Suivant, puis complétez l’Assistant.Click Next, and then complete the wizard.

Important

Si un script ne s’exécute pas dans le délai d’une heure, parce qu’un appareil cible est par exemple désactivé, vous devez le réexécuter.If a script does not run, for example because a target device is turned off during the one hour time period, you must run it again.

Exécution de la machine cibleTarget machine execution

Le script est exécuté en tant que compte système ou d’ordinateur sur les clients ciblés.The script is executed as the system or computer account on the targeted client(s). Ce compte dispose d’un accès réseau limité.This account has limited network access. L’accès à des emplacements et systèmes distants par le script doit être provisionné en conséquence.Any access to remote systems and locations by the script must be provisioned accordingly.

Surveillance des scriptsScript monitoring

Une fois que vous avez lancé l’exécution d’un script sur un regroupement d’appareils, utilisez la procédure suivante pour surveiller l’opération.After you have initiated running a script on a collection of devices, use the following procedure to monitor the operation. Depuis la version 1710, vous êtes en mesure de surveiller un script en temps réel pendant qu’il s’exécute et vous pouvez également revenir au rapport d’une exécution du script donnée.Beginning with version 1710, you're both able to monitor a script in real time as it executes, and you can also return to a report for a given Run Script execution. Les données d’état du script sont nettoyées dans le cadre de la tâche de maintenance Supprimer les anciennes opérations des clients ou la suppression du script.Script status data is cleaned up as part of the Delete Aged Client Operations maintenance task or deletion of the script.

Surveillance de script - État de l’exécution du script

  1. Dans la console Configuration Manager, cliquez sur Surveillance.In the Configuration Manager console, click Monitoring.

  2. Dans la liste Surveillance, cliquez sur État du script.In the Monitoring workspace, click Script Status.

  3. Dans la liste État du script, vous pouvez voir les résultats pour chaque script que vous avez exécuté sur des appareils clients.In the Script Status list, you view the results for each script you ran on client devices. Un code de sortie de script de 0 indique généralement que le script a été exécuté avec succès.A script exit code of 0 generally indicates that the script ran successfully.

    • À compter de Configuration Manager 1802, la sortie du script est tronquée à 4 Ko pour permettre une meilleure expérience d’affichage.Beginning in Configuration Manager 1802, script output is truncated to 4 KB to allow for better display experience.

    Moniteur de script – Script tronqué

Sortie du script dans la version 1810Script output in 1810

La sortie de script détaillée est disponible au format JSON brut ou structuré.You can view detailed script output in raw or structured JSON format. Cette mise en forme rend la sortie plus facile à lire et à analyser.This formatting makes the output easier to read and analyze. Si le script retourne du texte dans un format JSON valide, affichez la sortie détaillée en tant que sortie JSON ou en tant que sortie brute.If the script returns valid JSON-formatted text, then view the detailed output as either JSON Output or Raw Output. Sinon, la seule option est la sortie de script.Otherwise the only option is Script Output.

Exemple : la sortie de script correspond à un format JSON valideExample: Script output is valid JSON

Commande : $PSVersionTable.PSVersionCommand: $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      16299  551

Exemple : la sortie de script ne correspond pas à un format JSON valideExample: Script output isn't valid JSON

Commande : Write-Output (Get-WmiObject -Class Win32_OperatingSystem).CaptionCommand: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption

Microsoft Windows 10 Enterprise
  • Les clients 1810 retournent une sortie de moins de 80 Ko au site via un canal de communication rapide.1810 clients return output less than 80 KB to the site over a fast communication channel. Cette modification améliore les performances d’affichage de la sortie de script ou de requête.This change increases the performance of viewing script or query output.

    • Si la sortie de script ou de requête est supérieure à 80 Ko, le client envoie les données via un message d’état.If the script or query output is greater than 80 KB, the client sends the data via a state message.
    • Les clients antérieurs à la version 1802 continuent d’utiliser des messages d’état.Pre-1802 clients continue to use state messages.

Sortie du script avant la version 1810Script output pre-1810

  • À compter de Configuration Manager version 1802, les scripts retournent un résultat au format JSON.Starting in Configuration Manager version 1802, script output returns using JSON formatting. Ce format retourne toujours une sortie de script lisible.This format consistently returns a readable script output.

  • Les scripts qui obtiennent un résultat inconnu, ou dans le cas où le client était hors connexion, ne s’affichent pas dans les graphiques ou les jeux de données.Scripts that get an unknown result, or where the client was offline, won't show in the charts or data set.

  • Évitez de retourner une sortie de script longue, car elle est tronquée à 4 Ko.Avoid returning large script output since it's truncated to 4 KB.

  • Certaines fonctionnalités de mise en forme de la sortie des scripts ne sont pas disponibles lors de l’exécution de Configuration Manager version 1802 ou ultérieure avec une version d’un niveau inférieur du client.Some functionality with script output formatting isn't available when running Configuration Manager version 1802 or later with a down-level version of the client.

    • Quand vous disposez d’un client Configuration Manager antérieur à la version 1802, vous obtenez une sortie de type chaîne.When you have a pre-1802 Configuration Manager client, you get a string output.
    • Pour le client Configuration Manager versions 1802 et ultérieures, vous obtenez une sortie au format JSON.For Configuration Manager client version 1802 and above, you get JSON formatting.
      • Par exemple, vous pouvez obtenir des résultats qui indiquent TEXT sur une version du client et "TEXT" (sortie incluse entre guillemets doubles) sur une autre version, auquel cas ces résultats se présentent dans le graphique sous la forme de deux catégories différentes.For example, you might get results that say TEXT on one client version and "TEXT" (the output is surrounded in double quotes) on other version, which will be put in chart as two different categories.
      • Si vous devez éviter ce comportement, exécutez le script sur deux regroupements différents :If you need to work around this behavior, consider running script against two different collections. un avec des clients antérieurs à la version 1802 et un autre avec des clients 1802 et ultérieurs.One with pre-1802 clients and another with 1802 and higher clients. Vous pouvez également convertir un objet enum en valeur de chaîne dans les scripts pour que ces derniers s’affichent correctement au format JSON.Or, you can convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.
  • Convertissez un objet enum en valeur de chaîne dans les scripts pour que ces derniers s’affichent correctement au format JSON.Convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.

    Convertir un objet enum en valeur de chaîne

Fichiers journauxLog files

À compter de la version 1810, une journalisation supplémentaire a été ajoutée à des fins de dépannage.Starting in version 1810, additional logging was added for troubleshooting.

  • Sur le client, par défaut dans C:\Windows\CCM\logs :On the client, by default in C:\Windows\CCM\logs:

    • Scripts.logScripts.log
    • CcmMessaging.logCcmMessaging.log
  • Dans le pack d’administration, par défaut dans C:\SMS_CCM\Logs :On the MP, by default in C:\SMS_CCM\Logs:

    • MP_RelayMsgMgr.logMP_RelayMsgMgr.log
  • Sur le serveur de site, par défaut dans C:\Program Files\Configuration Manager\Logs :On the site server, by default in C:\Program Files\Configuration Manager\Logs:

    • SMS_Message_Processing_Engine.logSMS_Message_Processing_Engine.log

Voir aussiSee Also