Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Configuration Manager (branche actuelle)
Configuration Manager a une capacité intégrée d’exécuter des scripts PowerShell. PowerShell présente l’avantage de créer des scripts automatisés sophistiqués qui sont compris et partagés avec une communauté plus large. Les scripts simplifient la création d’outils personnalisés pour administrer les logiciels et vous permettent d’accomplir rapidement des tâches banales, ce qui vous permet d’effectuer des travaux volumineux plus facilement et de manière plus cohérente.
Remarque
Dans la version 2006 et les versions antérieures, le Configuration Manager n’active pas cette fonctionnalité facultative par défaut. Vous devez activer cette fonctionnalité avant de l’utiliser. Pour plus d’informations, voir Activer des fonctionnalités facultatives à partir des mises à jour.
Avec cette intégration dans le Configuration Manager, vous pouvez utiliser la fonctionnalité Exécuter des scripts pour effectuer les opérations suivantes :
- Créez et modifiez des scripts à utiliser avec le Configuration Manager.
- Gérez l’utilisation des scripts par le biais de rôles et d’étendues de sécurité.
- Prise en charge des dossiers pour les scripts.
- Exécutez des scripts sur des collections ou des PC Windows gérés localement individuels.
- Planifier l’exécution des scripts au format UTC sur des collections ou des PC Windows individuels gérés localement.
- Obtenez des résultats de script agrégés rapides à partir d’appareils clients.
- Surveillez l’exécution des scripts et affichez les résultats des rapports à partir de la sortie du script.
Avertissement
- Compte tenu de la puissance des scripts, nous vous rappelons d’être intentionnel et prudent dans leur utilisation. Nous avons intégré des mesures de protection supplémentaires pour vous aider ; Rôles et étendues séparés. Assurez-vous de valider la précision des scripts avant de les exécuter et de confirmer qu’ils proviennent d’une source approuvée, afin d’éviter l’exécution involontaire de scripts. Faites attention aux caractères étendus ou à d’autres obfuscations et renseignez-vous sur la sécurisation des scripts. En savoir plus sur la sécurité des scripts PowerShell
- Certains logiciels anti-programme malveillant peuvent déclencher par inadvertance des événements sur les fonctionnalités Exécuter des scripts de Configuration Manager ou CMPivot. Il est recommandé d’exclure %windir %\CCM\ScriptStore afin que le logiciel anti-programme malveillant permette à ces fonctionnalités de s’exécuter sans interférence.
Configuration requise
- Pour exécuter des scripts PowerShell, le client doit exécuter PowerShell version 3.0 ou ultérieure. 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.
- Les clients Configuration Manager doivent exécuter le client à partir de la version 1706 ou ultérieure pour pouvoir exécuter les scripts.
- Pour utiliser des scripts, vous devez être membre du rôle de sécurité Configuration Manager approprié.
- Pour importer et créer des scripts : votre compte doit disposer des autorisations de création pour les scripts SMS.
- Pour approuver ou refuser les scripts : votre compte doit disposer des autorisations d’approbation pour les scripts SMS.
- Pour exécuter des scripts : votre compte doit disposer des autorisations Run Script pour les collections.
Pour plus d’informations sur Configuration Manager Rôles de sécurité :
Étendues de sécurité pour les scripts
d’exécution Rôles de sécurité pour les scripts
d’exécution Principes de base de l’administration en fonction du rôle.
Limitations
Run Scripts prend actuellement en charge :
- Langages de script : PowerShell
- Types de paramètres : entier, chaîne et liste.
Avertissement
N’oubliez pas que l’utilisation de paramètres ouvre une grande surface à un risque potentiel d’attaque par injection PowerShell. Il existe différentes façons d’atténuer et de contourner, telles que l’utilisation d’expressions régulières pour valider l’entrée de paramètres ou l’utilisation de paramètres prédéfinis. Une bonne pratique courante consiste à ne pas inclure de secrets dans vos scripts PowerShell (aucun mot de passe, etc.). En savoir plus sur la sécurité des scripts PowerShell
Exécuter les auteurs et approbateurs de scripts
Run Scripts utilise le concept d’auteurs et d’approbateurs de script en tant que rôles distincts pour l’implémentation et l’exécution d’un script. La séparation des rôles d’auteur et d’approbateur permet une case activée importante du processus pour l’outil puissant qu’est Run Scripts. Il existe un rôle supplémentaire d’exécuteur de scripts qui permet l’exécution de scripts, mais pas la création ou l’approbation de scripts. Voir Création de rôles de sécurité pour les scripts.
Scripts Rôles Contrôle
Par défaut, les utilisateurs ne peuvent pas approuver un script qu’ils ont créé. Étant donné que les scripts sont puissants, polyvalents et potentiellement déployés sur de nombreux appareils, vous pouvez séparer les rôles entre la personne qui écrit le script et la personne qui approuve le script. Ces rôles offrent un niveau de sécurité supplémentaire contre l’exécution d’un script sans surveillance. Vous pouvez désactiver l’approbation secondaire pour faciliter les tests.
Approuver ou refuser un script
Les scripts doivent être approuvés par le rôle d’approbateur de script avant de pouvoir être exécutés. Pour approuver un script :
- Dans la console Configuration Manager, cliquez sur Bibliothèque de logiciels.
- Dans l’espace de travail Bibliothèque logicielle , cliquez sur Scripts.
- Dans la liste Script , choisissez le script que vous souhaitez approuver ou refuser, puis, sous l’onglet Accueil , dans le groupe Script , cliquez sur Approuver/Refuser.
- Dans la boîte de dialogue Approuver ou refuser le script , sélectionnez Approuver ou Refuser pour le script. Si vous le souhaitez, entrez un commentaire sur votre décision. Si vous refusez un script, il ne peut pas être exécuté sur les appareils clients.
- Suivez les instructions de l’Assistant. Dans la liste Script , la colonne État d’approbation change en fonction de l’action que vous avez effectuée.
Autoriser les utilisateurs à approuver leurs propres scripts
Cette approbation est principalement utilisée pour la phase de test du développement de scripts.
- Dans la console Configuration Manager, cliquez sur Administration.
- Dans l’espace de travail de l’administration , développez Configuration du site, puis cliquez sur Sites.
- Dans la liste des sites, sélectionnez votre site, puis, dans l’onglet Accueil , dans le groupe Sites , cliquez sur Paramètres de la hiérarchie.
- Dans 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.
Importante
Il est recommandé de ne pas autoriser un auteur de script à approuver ses propres scripts. Il ne doit être autorisé que dans un laboratoire. Étudiez attentivement l’impact potentiel de la modification de ce paramètre dans un environnement de production.
Étendues de sécurité
L’exécution des scripts utilise des étendues de sécurité, une fonctionnalité existante de Configuration Manager, pour contrôler la création et l’exécution des scripts en attribuant des étiquettes qui représentent les groupes d’utilisateurs. Pour plus d’informations sur l’utilisation des étendues de sécurité, voir Configurer l’administration basée sur les rôles pour Configuration Manager.
Créer des rôles de sécurité pour les scripts
Les trois rôles de sécurité utilisés pour exécuter des scripts ne sont pas créés par défaut dans le Configuration Manager. Pour créer les rôles d’exécuteurs de scripts, d’auteurs de scripts et d’approbateurs de scripts, suivez les étapes décrites.
- Dans la console Configuration Manager, accédez à Administration>Sécurité>Sécurité Rôles
- Cliquez avec le bouton droit sur un rôle, puis cliquez sur Copier. Le rôle que vous copiez a déjà des autorisations attribuées. Veillez à ne prendre que les autorisations souhaitées.
- Donnez un nom et une description au rôle personnalisé.
- Attribuez au rôle de sécurité les autorisations décrites ci-dessous.
Autorisations du rôle de sécurité
Nom du rôle : Exécuteurs de scripts
- Description : ces autorisations permettent à ce rôle d’exécuter uniquement des scripts précédemment créés et approuvés par d’autres rôles.
- Autorisations : Assurez-vous que les éléments suivants sont définis sur Oui.
| Catégorie | Autorisation | État |
|---|---|---|
| Collection | Exécuter le script | Oui |
| Site | Lire | Oui |
| SMS Scripts | Lire | Oui |
Nom du rôle : Auteurs de scripts
- Description : ces autorisations permettent à ce rôle de créer des scripts, mais il ne peut pas les approuver ou les exécuter.
- Autorisations : vérifiez que les autorisations suivantes sont définies.
| Catégorie | Autorisation | État |
|---|---|---|
| Collection | Exécuter le script | Non |
| Site | Lire | Oui |
| SMS Scripts | Créer | Oui |
| SMS Scripts | Lire | Oui |
| SMS Scripts | Supprimer | Oui |
| SMS Scripts | Modifier | Oui |
Nom du rôle : Approbateurs de script
- Description : ces autorisations permettent à ce rôle d’approuver des scripts, mais il ne peut pas les créer ou les exécuter.
- Autorisations : Vérifiez que les autorisations suivantes sont définies.
| Catégorie | Autorisation | État |
|---|---|---|
| Collection | Exécuter le script | Non |
| Site | Lire | Oui |
| SMS Scripts | Lire | Oui |
| SMS Scripts | Approuver | Oui |
| SMS Scripts | Modifier | Oui |
Exemple d’autorisations de scripts SMS pour le rôle d’auteurs de scripts
Prise en charge des dossiers pour les scripts
À compter de la version 2403, vous pouvez organiser les scripts à l’aide de dossiers. Cette modification permet une meilleure catégorisation et gestion des scripts.
Ouvrez la console du Configuration Manager et accédez à l’espace de travail de la bibliothèque de logiciels. Dans le ruban ou le menu contextuel, dans les scripts, sélectionnez l’une des options suivantes :
- Créer un dossier
- Supprimer le dossier
- Renommer le dossier
- Déplacer des dossiers
- Définir des étendues de sécurité
Créer un script
- Dans la console Configuration Manager, cliquez sur Bibliothèque de logiciels.
- Dans l’espace de travail Bibliothèque logicielle , cliquez sur Scripts.
- Sous l’onglet Accueil , dans le groupe Créer , cliquez sur Créer un script.
- Dans la page Script de l’Assistant Créer un script , configurez les paramètres suivants :
- Nom du script : entrez un nom pour le script. Bien que vous puissiez créer plusieurs scripts avec le même nom, l’utilisation de noms en double vous empêche de trouver le script dont vous avez besoin dans la console du Configuration Manager.
- Langage de script : seuls les scripts PowerShell sont pris en charge pour le moment.
- Importer - Importez un script PowerShell dans la console. Le script s’affiche dans le champ Script .
- Effacer : supprime le script actuel du champ Script.
- Script : affiche le script actuellement importé. Vous pouvez modifier le script de ce champ si nécessaire.
- Suivez les instructions de l’Assistant. Le nouveau script s’affiche dans la liste Script avec le status En attente d’approbation. Avant de pouvoir exécuter ce script sur les appareils clients, vous devez l’approuver.
Importante
Évitez de scripter un redémarrage du périphérique ou de l’agent Configuration Manager lors de l’utilisation de la fonctionnalité Exécuter des scripts. Cela peut conduire à un état de redémarrage continu. Si nécessaire, des améliorations sont apportées à la fonctionnalité de notification du client qui permettent de redémarrer les appareils. La colonne Redémarrage en attente permet d’identifier les appareils nécessitant un redémarrage.
Paramètres de script
L’ajout de paramètres à un script offre une flexibilité accrue pour votre travail. Vous pouvez inclure jusqu’à 10 paramètres. Ce qui suit décrit la capacité actuelle de la fonctionnalité Exécuter des scripts avec des paramètres de script pour ; Chaîne, type de données Entier. Des listes de valeurs prédéfinies sont également disponibles. Si votre script contient des types de données non pris en charge, vous recevez un avertissement.
Dans la boîte de dialogue Créer un script , cliquez sur Paramètres de script sous Script.
Chacun des paramètres de votre script possède sa propre boîte de dialogue pour ajouter des détails supplémentaires et une validation. S’il existe un paramètre par défaut dans le script, il est énuméré dans l’interface utilisateur des paramètres et vous pouvez le définir. Configuration Manager ne remplace pas la valeur par défaut, car il ne modifie jamais directement le script. Vous pouvez considérer cela comme des « valeurs suggérées préremplies » sont fournies dans l’interface utilisateur, mais Configuration Manager ne donne pas accès aux valeurs « par défaut » au moment de l’exécution. Vous pouvez contourner ce problème en modifiant le script pour obtenir les valeurs par défaut correctes.
Importante
Les valeurs des paramètres ne peuvent pas contenir un guillemet unique.
Il existe un problème connu dans lequel les valeurs de paramètre qui incluent ou sont placées entre guillemets simples ne sont pas transmises correctement au script. Lorsque vous spécifiez des valeurs de paramètre par défaut contenant un espace dans un script, utilisez plutôt des guillemets. Lors de la spécification de valeurs de paramètre par défaut lors de la création ou de l’exécution d’un script, il n’est pas nécessaire d’entourer la valeur par défaut entre guillemets doubles ou simples, que la valeur contienne ou non un espace.
Validation des paramètres
Chaque paramètre de votre script comporte une boîte de dialogue Propriétés des paramètres de script qui vous permet d’ajouter une validation pour ce paramètre. Après avoir ajouté la validation, vous devriez obtenir des erreurs si vous entrez une valeur pour un paramètre qui ne répond pas à sa validation.
Exemple : Prénom
Dans cet exemple, vous pouvez définir les propriétés du paramètre de chaîne, FirstName.
La section Validation de la boîte de dialogue Propriétés des paramètres de script contient les champs suivants à votre disposition :
- Longueur minimale : nombre minimal de caractères du champ Prénom .
- Longueur maximale : nombre maximal de caractères du champ Prénom
- RegEx : abréviation de Regular Expression. Pour plus d’informations sur l’utilisation de l’expression régulière, consultez la section suivante, Utilisation de la validation d’expression régulière.
- Erreur personnalisée : utile pour ajouter votre propre message d’erreur personnalisé qui remplace tout message d’erreur de validation système.
Utilisation de la validation d’expression régulière
Une expression régulière est une forme compacte de programmation permettant de vérifier une chaîne de caractères par rapport à une validation codée. Par exemple, vous pouvez case activée l’absence de caractère alphabétique majuscule dans le champ Prénom en le plaçant [^A-Z] dans le champ RegEx.
Le traitement des expressions régulières pour cette boîte de dialogue est pris en charge par .NET Framework. Pour obtenir des instructions sur l’utilisation des expressions régulières, voir Expression régulière .NET et langage d’expression régulière.
Exemples de script
Voici quelques exemples illustrant des scripts que vous souhaiterez peut-être utiliser avec cette fonctionnalité.
Créer un dossier et un fichier
Ce script crée un dossier et un fichier dans le dossier, en fonction de votre entrée de nom.
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’exploitation
Ce script utilise WMI pour interroger l’ordinateur pour connaître sa version du système d’exploitation.
Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption
Modifier ou copier des scripts PowerShell
Vous pouvez modifier ou copier un script PowerShell existant utilisé avec la fonctionnalité Exécuter les scripts . Au lieu de recréer un script que vous devez modifier, modifiez-le maintenant directement. Les deux actions utilisent la même expérience d’Assistant que lorsque vous créez un script. Lorsque vous modifiez ou copiez un script, le Gestionnaire de Configuration Manager ne conserve pas l’état d’approbation.
Conseil
Ne modifiez pas un script qui s’exécute activement sur les clients. Ils n’auront pas fini d’exécuter le script d’origine et vous risquez de ne pas obtenir les résultats escomptés de la part de ces clients.
Modifier un script
- Accédez au nœud Scripts sous l’espace de travail Bibliothèque de logiciels .
- Sélectionnez le script à modifier, puis cliquez sur Modifier dans le ruban.
- Modifiez ou réimportez votre script dans la page Détails du script .
- Cliquez sur Suivant pour afficher le résumé , puis sur Fermer lorsque vous avez terminé la modification.
Copier un script
- Accédez au nœud Scripts sous l’espace de travail Bibliothèque de logiciels .
- Sélectionnez le script à copier, puis cliquez sur Copier dans le ruban.
- Renommez le script dans le champ Nom du script et apportez les modifications supplémentaires nécessaires.
- Cliquez sur Suivant pour afficher le résumé , puis sur Fermer lorsque vous avez terminé la modification.
Exécuter un script
Une fois qu’un script est approuvé, il peut être exécuté sur un seul appareil ou sur une collection. Une fois l’exécution de votre script commencée, il est lancé rapidement via un système de haute priorité qui expire dans une heure. Les résultats du script sont ensuite renvoyés à l’aide d’un système de messages d’état.
Pour sélectionner une collection de cibles pour votre script :
- Dans la console du Configuration Manager, cliquez sur Ressources et conformité.
- Dans l’espace de travail Ressources et conformité, cliquez sur Collections d’appareils.
- Dans la liste Collections de périphériques , cliquez sur le groupe de périphériques sur lequel vous souhaitez exécuter le script.
- Sélectionnez une collection de votre choix, cliquez sur Exécuter le script.
- Sur la page Script de l’Assistant Exécuter un script , choisissez un script dans la liste. Seuls les scripts approuvés sont affichés.
- Cliquez sur Suivant, puis terminez l’Assistant.
Importante
Si un script ne s’exécute pas, par exemple parce qu’un périphérique cible est éteint pendant la période d’une heure, vous devez l’exécuter à nouveau.
Planifier l’exécution des scripts
À partir de la version 2309 de la branche actuelle du Configuration Manager, vous pouvez désormais planifier l’exécution des scripts au format UTC.
Planifier l’exécution de scripts sur une collection :
Dans la console du Configuration Manager, cliquez sur Ressources et conformité.
Dans l’espace de travail Ressources et conformité, cliquez sur Collections d’appareils.
Dans la liste Collections de périphériques , cliquez sur le groupe de périphériques sur lequel vous souhaitez planifier le script.
Sélectionnez une collection de votre choix, cliquez sur Exécuter le script.
Sur la page Planification, cochez la case Planifier l’exécution du script et spécifiez l’heure de planification au format UTC.
Vérifiez les détails affichés sur la page de résumé.
Cliquez sur Suivant, puis terminez l’Assistant.
Remarque
Un maximum de vingt-cinq scripts planifiés seront traités toutes les 5 minutes.
Exécution de la machine cible
Le script est exécuté en tant que compte système ou ordinateur sur le ou les clients ciblés. Ce compte dispose d’un accès réseau limité. Tout accès aux systèmes et aux emplacements distants par le script doit être approvisionné en conséquence.
Surveillance des scripts
Après avoir lancé l’exécution d’un script sur un ensemble de périphériques, suivez la procédure suivante pour surveiller l’opération. Vous pouvez surveiller un script en temps réel au fur et à mesure de son exécution, et revenir ultérieurement au status et aux résultats d’une exécution de script d’exécution donnée. Les données de status du script sont nettoyées dans le cadre de la tâche de maintenance Supprimer les opérations du client vieillissant ou de la suppression du script.
Dans la console Configuration Manager, cliquez sur Surveillance.
Dans l’espace de travail Surveillance , cliquez sur État du script.
Dans la liste État du script , vous affichez les résultats pour chaque script que vous avez exécuté sur les périphériques clients. Un code de sortie de script de 0 indique généralement que le script s’est exécuté correctement.
Planifier la surveillance du script sur une collection
Dans la console Configuration Manager, cliquez sur Surveillance.
Dans l’espace de travail Supervision, cliquez sur le nœud Scripts planifiés.
Une nouvelle ligne s’affiche dans la liste des scripts planifiés.
Vérifiez qu’une nouvelle ligne a été affichée dans la liste des scripts planifiés. La colonne état doit avoir la valeur Programmé. La colonne ClientOperationId doit être vide. Vérifiez que les autres colonnes telles que Nom du script, Heure du calendrier, etc. ont des valeurs appropriées.
Après l’heure de planification, actualisez le nœud Scripts planifiés . La colonne état doit avoir la valeur Opération client initiée avec succès. La colonne ClientOperationId doit être une valeur entière.
Dans l’espace de travail Surveillance, cliquez sur le nœud État du script. Vérifiez que la nouvelle ligne a été affichée dans la liste et que ClientOperationId est égal à ClientOperationId du nœud Scripts planifiés .
Cliquez sur Afficher l’état et assurez-vous que la sortie du script s’affiche.
Sortie du script
Sortie du script de retour du client à l’aide de la mise en forme JSON en redirigeant les résultats du script vers l’applet de commande ConvertTo-Json . Le format JSON renvoie systématiquement une sortie de script lisible. Pour les scripts qui ne renvoient pas d’objets en tant que sortie, l’applet de commande ConvertTo-Json convertit la sortie en une chaîne simple que le client retourne au lieu de JSON.
Les scripts qui obtiennent un résultat inconnu, ou où le client était hors connexion, ne s’affichent pas dans les graphiques ou le jeu de données.
Évitez de renvoyer une sortie de script volumineuse car elle est tronquée à 4 Ko.
Convertir un objet enum en valeur de chaîne dans les scripts afin qu’ils s’affichent correctement au format JSON.
Vous pouvez afficher la sortie détaillée du script au format JSON brut ou structuré. Cette mise en forme facilite la lecture et l’analyse de la sortie. Si le script renvoie du texte au format JSON valide ou si la sortie peut être convertie en JSON à l’aide de l’applet de commande PowerShell ConvertTo-Json , affichez la sortie détaillée sous la forme d’une sortie JSON ou d’une sortie brute. Sinon, la seule option est Sortie de script.
Exemple : la sortie du script est convertible en JSON valide
Commande : $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 16299 551
Exemple : la sortie du script n’est pas valide JSON
Commande : Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption
Microsoft Windows 10 Enterprise
Fichiers journaux
Sur le client, par défaut dans C :\Windows\CCM\logs :
- Scripts.log
- CcmMessaging.log
Sur le MP, par défaut dans C :\SMS_CCM\Logs :
- MP_RelayMsgMgr.log
Sur le serveur du site, par défaut dans C :\Program Files\ Configuration Manager\Logs :
- SMS_Message_Processing_Engine.log
Automatiser avec Windows PowerShell
Vous pouvez utiliser les applets de commande PowerShell suivantes pour automatiser certaines de ces tâches :
- Approuver-CMScript
- Deny-CMScript
- Get-CMScript
- Invoke-CMScript
- New-CMScript
- Remove-CMScript
- Set-CMScript