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 à : Configuration Manager (Current Branch)Applies to: Configuration Manager (current branch)

Configuration Manager a la capacité intégrée d’exécuter des scripts PowerShell.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.

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 Configuration Manager, vous pouvez utiliser la fonctionnalité Exécuter les scripts pour effectuer les opérations suivantes :With this integration in Configuration Manager, you can use the Run Scripts functionality to do the following things:

  • Créer et modifier des scripts à utiliser avec Configuration Manager.Create and edit scripts for use with 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
  • Certains logiciels anti-programmes malveillants peuvent déclencher par inadvertance des événements sur les fonctionnalités Configuration Manager CMPivot ou Exécuter les scripts.Certain anti-malware software may inadvertently trigger events against the Configuration Manager Run Scripts or CMPivot features. Nous vous recommandons d’exclure %windir%\CCM\ScriptStore de sorte que les logiciels anti-programmes malveillants autorisent l’exécution de ces fonctionnalités sans interférence.It is recommended to exclude %windir%\CCM\ScriptStore so that the anti-malware software permits those features to run without interference.

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

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 Configuration Manager.For more information on using security scopes, see Configure role-based administration for 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 scriptRole 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 LireRead OuiYes
Scripts SMSSMS Scripts LireRead OuiYes

Nom du rôle : Créateurs de scriptRole 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 LireRead OuiYes
Scripts SMSSMS Scripts CréerCreate OuiYes
Scripts SMSSMS Scripts LireRead OuiYes
Scripts SMSSMS Scripts SupprimerDelete OuiYes
Scripts SMSSMS Scripts ModifierModify OuiYes

Nom du rôle : Approbateurs de scriptRole 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 LireRead OuiYes
Scripts SMSSMS Scripts LireRead 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, des améliorations ont été apportées à la fonctionnalité de notification au client qui permettent de redémarrer les appareils.If needed, there are enhancements to the client notification feature that enable restarting devices. 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

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éder 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 de guillemet simple.Parameter values can't contain a single quote.

Un problème connu fait que les valeurs des paramètres qui incluent ou sont placées entre guillemets simples ne sont pas passées correctement au script.There is a known issue where parameter values that include or are enclosed in single quotes don't get passed to the script properly. Lors de la spécification des valeurs de paramètres par défaut contenant un espace dans un script, utilisez des guillemets doubles à la place.When specifying default parameter values containing a space within a script, use double quotes instead. Quand vous spécifiez des valeurs de paramètres par défaut lors de la création ou de l’exécution d’un script, entourer la valeur par défaut avec des guillemets doubles ou simples n’est pas nécessaire, que la valeur contienne ou non un espace.When specifying default parameter values during creation or execution of a Script, surrounding the default value in either double or single quotes is not necessary regardless of whether the value contains a space or not.

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. Changez 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 cliquez sur Fermer quand 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 toute modification supplémentaire nécessaire.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 cliquez sur Fermer quand 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. Vous êtes en mesure de superviser un script en temps réel pendant qu’il s’exécute, et de revenir plus tard à l’état et aux résultats d’une exécution du script donnée.You are able to monitor a script in real time as it executes, and later return to the status and results 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.

    Moniteur de script – Script tronqué

Sortie du scriptScript output

La sortie du script retournée par le client avec une mise en forme JSON se fait via l’utilisation d’un pipe des résultats du script vers l’applet de commande ConvertTo-Json.Client's return script output using JSON formatting by piping the script's results to the ConvertTo-Json cmdlet. Le format JSON retourne toujours une sortie de script lisible.The JSON format consistently returns readable script output. Pour les scripts qui ne retournent pas d’objets en sortie, l’applet de commande ConvertTo-Json convertit la sortie en une chaîne simple que le client retourne à la place du JSON.For scripts that do not return objects as output, the ConvertTo-Json cmdlet converts the output to a simple string that the client returns instead of JSON.

  • 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.

  • 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

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 au format JSON valide ou si la sortie peut être convertie en JSON avec l’applet de commande PowerShell ConvertTo-Json, affichez la sortie détaillée sous forme de Sortie JSON ou de Sortie brute.If the script returns valid JSON-formatted text or the output can be converted to JSON using the ConvertTo-Json PowerShell cmdlet, 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 du script est convertible en JSON valideExample: Script output is convertible to valid JSON

Commande : $PSVersionTable.PSVersionCommand: $PSVersionTable.PSVersion

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

Exemple : La sortie du script n’est pas un fichier 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

Fichiers journauxLog files

  • 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