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.
Avant de pouvoir utiliser des paramètres personnalisés pour la conformité avec Microsoft Intune, vous devez créer un script qui détecte les paramètres de conformité personnalisés sur les appareils. Le script que vous utilisez dépend de la plateforme :
- Les appareils Windows utilisent un script PowerShell.
- Linux appareils peuvent exécuter des scripts dans n’importe quelle langue tant que l’interpréteur correspondant est installé et configuré sur l’appareil.
Le script de découverte est déployé sur les appareils dans le cadre de vos stratégies de conformité personnalisées. Lorsque la conformité s’exécute sur un appareil, le script découvre les paramètres définis dans le fichier JSON que vous fournissez lors de la création de la stratégie de conformité.
Tous les scripts de découverte :
- Sont ajoutés à Intune avant de créer une stratégie de conformité. Une fois que vous avez ajouté un script, vous pouvez le sélectionner lorsque vous créez une stratégie de conformité avec des paramètres personnalisés.
- Chaque script de découverte ne peut être utilisé qu’avec une seule stratégie de conformité, et chaque stratégie de conformité ne peut inclure qu’un seul script de découverte.
- Vous ne pouvez pas supprimer les scripts de découverte affectés à une stratégie de conformité tant que vous n’avez pas désaffecté le script de la stratégie.
- Exécutez sur un appareil qui reçoit la stratégie de conformité. Le script évalue les conditions du fichier JSON que vous chargez lors de la création d’une stratégie de conformité personnalisée.
- Identifiez un ou plusieurs paramètres, tels que définis dans le JSON, et retournez une liste de valeurs découvertes pour ces paramètres.
En outre, le script PowerShell pour Windows :
Doit être compressé pour générer les résultats en une seule ligne. Par exemple, le script suivant doit inclure
return $hash | ConvertTo-Json -Compresscomme dernière ligne :$hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent} return $hash | ConvertTo-Json -Compress
Limites
Pour retourner correctement des données de conformité à Intune, vos scripts doivent rester dans les limites suivantes :
- Les scripts ne peuvent pas dépasser 1 mégaoctet (Mo) chacun.
- La sortie générée par chaque script ne peut pas être supérieure à 1 Mo.
- Les scripts doivent avoir une durée d’exécution limitée :
- Sur Linux, l’exécution des scripts doit prendre cinq minutes ou moins.
- Sur Windows, l’exécution des scripts doit prendre 10 minutes ou moins.
Exemple de script de découverte pour Windows
L’exemple suivant est un exemple de script PowerShell que vous pouvez utiliser pour les appareils Windows :
$WMI_ComputerSystem = Get-WMIObject -class Win32_ComputerSystem
$WMI_BIOS = Get-WMIObject -class Win32_BIOS
$TPM = Get-Tpm
$hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent}
return $hash | ConvertTo-Json -Compress
L’exemple suivant montre la sortie de l’exemple de script pour Windows :
{"BiosVersion":"1.24","Manufacturer":"Microsoft Corporation","TPMChipPresent":true}
Exemple de script de découverte pour Linux
Remarque
Sur Linux, les scripts de découverte s’exécutent dans le contexte de l’utilisateur. Ils ne peuvent pas case activée pour les paramètres de niveau système qui nécessitent une élévation. Un exemple de cette limitation est le state/hash du /etc/sudoers fichier .
Les scripts de découverte pour Linux peuvent appeler n’importe quel interpréteur qui répond à vos besoins. Vérifiez que l’interpréteur choisi est correctement installé et configuré sur l’appareil cible avant de déployer le script. Pour spécifier l’interpréteur d’un script, incluez une ligne shebang en haut du script, indiquant le chemin d’accès au binaire de l’interpréteur.
Par exemple, si votre script doit utiliser l’interpréteur de commandes Bash, ajoutez la ligne suivante en haut de votre script :
#!/bin/bash
Pour utiliser Python, spécifiez le chemin d’accès de l’interpréteur. Par exemple, ajoutez la ligne suivante en haut de votre script : #!/usr/bin/python3 ou #!/usr/bin/env python3
Conseil
Pour gérer les interruptions ou les signaux d’annulation, implémentez des mécanismes d’arrêt appropriés dans vos scripts. Lorsqu’un script gère ces signaux, il peut effectuer des tâches de nettoyage et se fermer correctement, garantissant ainsi que les ressources sont correctement libérées. Par exemple, interceptez des signaux tels que SIGINT (signal d’interruption) ou SIGTERM (signal de terminaison) et définissez des actions personnalisées à exécuter lorsqu’ils sont reçus. Ces actions peuvent inclure la fermeture des fichiers ouverts, la libération des verrous acquis ou le nettoyage des ressources temporaires.
Pour plus d’informations, consultez le guide Intune Linux Exemples de conformité personnalisés.
Ajouter un script de découverte à Intune
Avant de déployer votre script en production, testez-le dans un environnement isolé pour vous assurer que la syntaxe que vous utilisez se comporte comme prévu.
Remarque
Le workflow de chargement de script ne prend pas en charge les balises d’étendue. La balise d’étendue par défaut doit vous être affectée pour créer, modifier ou afficher des scripts de découverte de conformité personnalisés.
Connectez-vous au centre d’administration Microsoft Intune et accédez à Sécurité du point de terminaison>Scripts> deconformité> des appareilsAjouter. Choisissez ensuite votre plateforme.
Dans Informations de base, entrez un nom descriptif pour le script.
Dans Paramètres, ajoutez votre script au script de détection. Examinez attentivement votre script. Intune ne valide pas le script pour les erreurs de syntaxe ou de programmation.
Pour Windows uniquement - Dans Paramètres, configurez le comportement suivant pour le script PowerShell :
- Exécuter ce script à l’aide des informations d’identification de connexion : par défaut, le script s’exécute dans le contexte Système sur l’appareil. Définissez cette valeur sur Oui pour qu’elle s’exécute dans le contexte de l’utilisateur connecté. Si l’utilisateur n’est pas connecté, le script revient par défaut au contexte système.
- Appliquer la signature de script case activée : pour plus d’informations, consultez about_Signing dans la documentation PowerShell.
- Exécuter le script dans l’hôte PowerShell 64 bits : par défaut, le script s’exécute à l’aide de l’hôte PowerShell 32 bits. Définissez cette valeur sur Oui pour forcer l’exécution du script à l’aide de l’hôte 64 bits à la place.
Terminez le processus de création de script. Le script apparaît dans le volet Scripts et peut être sélectionné lors de la configuration des stratégies de conformité.