Utiliser des scripts PowerShell sur des appareils Windows 10/11 dans Intune

Utiliser l’extension de gestion Microsoft Intune pour charger des scripts PowerShell dans Intune. Ensuite, exécutez ces scripts sur des appareils Windows 10. L’extension de gestion améliore la gestion des périphériques GPM Windows et facilite le déplacement vers une gestion moderne.

Importante

Pour prendre en charge les fonctionnalités étendues et les correctifs de bogues, utilisez .NET Framework 4.7.2 ou version ultérieure avec l’extension de gestion Intune sur les clients Windows. Si un client Windows continue d’utiliser une version antérieure du .NET Framework, l’extension de gestion Intune continue de fonctionner. .NET Framework 4.7.2 est disponible à partir de Windows Update depuis le 10 juillet 2018, qui est inclus dans Win10 1809 (RS5) et versions ultérieures. Notez que plusieurs versions du .NET Framework peuvent coexister sur un appareil.

Cette fonctionnalité s’applique à :

  • Windows 10 et ultérieur (à l’exclusion de Windows 10 Famille)

Remarque

Une fois les prérequis de l’extension de gestion Intune remplis, l’extension de gestion Intune est installée automatiquement lorsqu’un script PowerShell ou une application Win32, des applications du Microsoft Store, des paramètres de stratégie de conformité personnalisés ou des corrections proactives sont attribués à l’utilisateur ou à l’appareil. Pour plus d’informations, consultez Extension de gestion Intune Prérequis.

Les scripts PowerShell, qui ne sont pas officiellement pris en charge sur les appareils WPJ (Workplace Join), peuvent être déployés sur des appareils WPJ. Plus précisément, les scripts PowerShell de contexte d’appareil fonctionnent sur les appareils WPJ, mais les scripts PowerShell de contexte utilisateur sont ignorés par conception. Les scripts de contexte utilisateur sont ignorés sur les appareils WPJ et ne sont pas signalés au centre d’administration Microsoft Intune.

Passer à une gestion moderne

L’informatique grand public connaît actuellement une transformation numérique. L’informatique traditionnelle se caractérise par une plateforme d’appareils uniques, par des appareils d’entreprise, par des utilisateurs travaillant à leur bureau au sein de l’entreprise, et par différents processus informatiques manuels et réactifs. L’espace de travail moderne utilise de nombreuses plateformes qui sont aussi bien la propriété de l’utilisateur que celle de l’entreprise. Il permet aux utilisateurs de travailler n’importe où et fournit des processus informatiques automatisés et proactifs.

Les services de gestion des appareils mobiles, tels que Microsoft Intune, peuvent gérer les appareils mobiles et de bureau qui exécutent Windows 10. Le client de gestion Windows 10 intégré communique avec Intune pour effectuer des tâches de gestion d’entreprise. Vous pouvez avoir besoin de certaines tâches, telles que la configuration avancée d’appareils et la résolution de problèmes. Pour la gestion des applications Win32, vous pouvez utiliser la fonctionnalité Gestion des applications Win32 sur vos appareils Windows 10.

L’extension de gestion Intune vient en complément des fonctionnalités intégrées de gestion des appareils mobiles Windows 10. Vous pouvez créer des scripts PowerShell à exécuter sur des appareils Windows 10. Par exemple, créez un script PowerShell qui effectue des configurations avancées d’un appareil. Ensuite, chargez le script dans Intune, affectez le script à un groupe Microsoft Entra, puis exécutez le script. Vous pouvez ensuite superviser l’état d’exécution du script du début à la fin.

Avant de commencer

  • Lorsque les scripts sont définies sur le contexte de l’utilisateur et que l’utilisateur final a des droits d’administrateur, par défaut, le script PowerShell s’exécute sous le privilège d’administrateur.

  • Les utilisateurs finaux ne sont pas obligés d’être connectés à l’appareil pour exécuter des scripts PowerShell.

  • L’agent d’extension de gestion Intune vérifie après chaque redémarrage les nouveaux scripts ou modifications. Une fois que vous avez affecté la stratégie aux groupes Microsoft Entra, le script PowerShell s’exécute et les résultats de l’exécution sont signalés. Une fois que le script s’exécute, il ne se ré-exécute pas sauf si une modification est apportée au script ou à la stratégie. Si le script échoue, l’agent d’extension de gestion Intune tentera de réexécuter le script trois fois durant les trois prochains check-ins consécutifs de l’agent d’extension de gestion Intune.

  • Pour les appareils partagés, le script PowerShell s’exécute pour chaque nouvel utilisateur qui se connecte.

  • Les scripts PowerShell sont exécutés avant l’exécution des applications Win32. Autrement dit, les scripts PowerShell s’exécutent en premier. Ensuite, les applications Win32 s’exécutent.

  • Les scripts PowerShell expirent au bout de 30 minutes.

Importante

Les meilleures pratiques pour la sensibilisation à la confidentialité lors de l’utilisation de scripts PowerShell et de scripts de correction sont les suivantes :

  • N’incluez aucun type d’informations sensibles dans les scripts (tels que les mots de passe)
  • N’incluez pas d’informations d’identification personnelle (PII) dans les scripts
  • N’utilisez pas de scripts pour collecter des informations d’identification personnelle à partir d’appareils
  • Toujours suivre les meilleures pratiques en matière de confidentialité

Pour plus d’informations, consultez Corrections.

Configuration requise

L’extension de gestion Intune est soumise aux prérequis suivants : Une fois ces prérequis satisfaits, l’extension de gestion Intune s’installe automatiquement quand un script PowerShell ou une application Win32 sont affectés à l’utilisateur ou à l’appareil.

  • Appareils exécutant Windows 10 version 1607 ou ultérieure. Si l’appareil est inscrit à l’aide de l’inscription automatique en bloc, les appareils doivent exécuter Windows 10 version 1709 ou ultérieure. L’extension de gestion Intune n’est pas prise en charge sur Windows 10 en mode S, car le mode S n’autorise pas l’exécution d’applications non-Store.

  • Appareils joints à Microsoft Entra ID, notamment :

  • Microsoft Entra inscrits/joints à l’espace de travail (WPJ) : appareils inscrits dans Microsoft Entra ID, consultez Jonction d’espace de travail en tant qu’authentification par deuxième facteur transparente pour plus d’informations. En règle générale, il s’agit d’appareils BYOD (Bring Your Own Device) dont un compte professionnel ou scolaire a été ajouté via Paramètres>Comptes>Accès professionnel ou scolaire.

  • Appareils inscrits dans Intune, notamment :

    • Appareils inscrits dans une stratégie de groupe. Pour obtenir de l’aide, consultez Inscrire un appareil Windows 10 automatiquement en utilisant la stratégie de groupe.

    • Appareils inscrits manuellement dans Intune, ce qui se fait quand :

      • L’inscription automatique à Intune est activée dans Microsoft Entra ID. Les utilisateurs se connectent aux appareils à l’aide d’un compte d’utilisateur local et joignent manuellement l’appareil à Microsoft Entra ID. Ensuite, ils se connectent à l’appareil à l’aide de leur compte Microsoft Entra.

      OR

      • L’utilisateur se connecte à l’appareil à l’aide de son compte Microsoft Entra, puis s’inscrit dans Intune.
    • Appareils cogérés qui utilisent Configuration Manager et Intune. Lors de l’installation des applications Win32, vérifiez que la charge de travail Applications est définie sur Piloter Intune ou sur Intune. Les scripts PowerShell sont exécutés même si la charge de travail Applications est définie sur Configuration Manager. L’extension de gestion Intune est déployée sur un appareil lorsque vous ciblez un script PowerShell sur l’appareil. N’oubliez pas que l’appareil doit être un appareil Microsoft Entra ID ou Microsoft Entra hybride joint. En outre, il doit exécuter Windows 10 version 1607 ou ultérieure. Consulter les articles suivants pour obtenir des conseils :

  • Les scripts déployés sur les clients exécutant l’extension de gestion Intune ne peuvent pas s’exécuter si l’horloge système de l’appareil n’est pas à l’heure de plusieurs mois ou années. Une fois l’horloge système à l’heure, le script s’exécute comme attendu.

Remarque

Pour plus d’informations sur l’utilisation des machines virtuelles Windows 10, consultez Utilisation de machines virtuelles Windows 10 avec Intune.

Créer une stratégie de script et l’affecter

  1. Connectez-vous au Centre d’administration Microsoft Intune.

  2. Sélectionner Appareils>Scripts>Ajouter>Windows 10 et ultérieures .

    Capture d’écran montrant la création d’un script pour un appareil Windows 10.

  3. Dans Informations de base, entrer les propriétés suivantes, puis sélectionner Suivant :

    • Nom: Entrer un nom pour le script PowerShell.
    • Description: Entrer une description pour le script PowerShell. Ce paramètre est facultatif, mais recommandé.
  4. Dans Paramètres du script, entrer les propriétés suivantes, puis sélectionner Suivant :

    • Emplacement du script: naviguer vers le script PowerShell. La taille du script doit être inférieure à 200 Ko (ASCII).

    • Exécutez ce script à l’aide des informations d’identification de connexion : sélectionnez Oui (par défaut) pour exécuter le script avec les informations d’identification de l’utilisateur sur l’appareil. Choisissez Non pour exécuter le script dans le contexte système. De nombreux administrateurs choisissent Oui. Si le script doit s’exécuter dans le contexte système, choisir Non.

    • Appliquer la signature de script case activée : sélectionnez Oui (par défaut) si le script doit être signé par un éditeur approuvé. Sélectionnez Non si vous n’avez pas besoin que le script soit signé.

    • Exécuter le script dans un hôte PowerShell 64 bits: sélectionner Oui pour exécuter le script dans un hôte PowerShell 64 bits sur une architecture cliente 64 bits. Sélectionner Non (valeur par défaut) pour exécuter le script dans un hôte PowerShell 32 bits.

      Quand vous choisissez Oui ou Non, utiliser le tableau suivant pour connaître le comportement nouveau et existant de la stratégie :

      Exécuter le script dans un hôte 64 bits Architecture cliente Nouveau script Script de la stratégie existante
      Non 32 bits Hôte PowerShell 32 bits pris en charge S’exécute uniquement sur un hôte PowerShell 32 bits qui fonctionne sur les architectures 32 bits et 64 bits.
      Oui 64 bits Exécute le script dans un hôte PowerShell 64 bits pour les architectures 64 bits. Exécuté sur 32 bits, le script s’exécute sur un hôte PowerShell 32 bits. Exécutez le script sur un hôte PowerShell 32 bits. Si ce paramètre passe à 64 bits, le script s’ouvre (il ne s’exécute pas) sur un hôte PowerShell 64 bits, puis signale les résultats. Exécuté sur 32 bits, le script s’exécute sur un hôte PowerShell 32 bits.
  5. Sélectionner Balises d’étendue. Les balises d’étendue sont facultatives. Utiliser le contrôle d’accès en fonction du rôle (RBAC) et les balises d’étendue pour l’informatique distribuée contient plus d’informations.

    Pour ajouter une balise d’étendue :

    1. Choisissez Sélectionner des balises> d’étendue sélectionnez une balise d’étendue existante dans la liste >Sélectionner.

    2. Quand vous avez terminé, sélectionner Suivant.

  6. Sélectionnez Affectations>Sélectionner les groupes à inclure. Une liste existante de groupes Microsoft Entra s’affiche.

    1. Sélectionner un ou plusieurs groupes contenant les utilisateurs dont les appareils reçoivent le script. Choisir Sélectionner. Les groupes que vous avez choisis apparaissent dans la liste ; ils recevront votre stratégie.

      Remarque

      Les scripts PowerShell dans Intune peuvent être ciblés sur Microsoft Entra groupes de sécurité d’appareil ou Microsoft Entra groupes de sécurité d’utilisateurs. Toutefois, lorsque vous ciblez des appareils joints à l’espace de travail (WPJ), seuls Microsoft Entra groupes de sécurité d’appareil peuvent être utilisés (le ciblage utilisateur sera ignoré). Pour plus d’informations, consultez Prise en charge des applications Win32 pour les appareils rattachés à l’espace de travail (Workplace Join, WPJ).

    2. Sélectionnez Suivant.

      Affecter ou déployer un script PowerShell dans des groupes d’appareils dans Microsoft Intune

  7. Dans Passer en revue + ajouter, vous voyez un récapitulatif des paramètres que vous avez configurés. Sélectionnez Ajouter pour enregistrer le script. Quand vous sélectionnez Ajouter, la stratégie est déployée sur les groupes que vous avez choisis.

Échec d’exécution de script

8 h

  • Archivage
  • Exécuter le script ConfigScript01
  • Échec du script

9h

  • Archivage
  • Exécuter le script ConfigScript01
  • Échec du script (nombre de nouvelles tentatives = 1)

10h

  • Archivage
  • Exécuter le script ConfigScript01
  • Échec du script (nombre de nouvelles tentatives = 2)

11h

  • Archivage
  • Exécuter le script ConfigScript01
  • Échec du script (nombre de nouvelles tentatives = 3)

12h

  • Archivage
  • Aucune tentative supplémentaire n’est effectuée pour exécuter le script ConfigScript01.
  • Si aucune modification supplémentaire n’est apportée au script, aucune autre tentative n’est effectuée pour l’exécuter.

Superviser l’état de l’exécution

Vous pouvez surveiller l’état de l’exécution des scripts PowerShell pour les utilisateurs et les appareils dans le portail.

Dans Scripts PowerShell, sélectionner le script à surveiller, choisir Surveiller, puis choisir l’un des rapports suivants :

  • État de l’appareil
  • État de l’utilisateur

Journaux de l’extension de gestion Intune

Les journaux de l’agent sur l’ordinateur client se trouvent généralement dans C:\ProgramData\Microsoft\IntuneManagementExtension\Logs. Vous pouvez utiliser CMTrace.exe pour afficher ces fichiers journaux.

Capture d’écran ou exemples de journaux de l’agent cmtrace dans Microsoft Intune

Supprimer un script

Dans Scripts PowerShell, cliquer avec le bouton droit sur le script, puis sélectionner Supprimer.

Problèmes courants et leur résolution

Problème : Impossible de télécharger l’extension de gestion Intune

Solutions possibles:

  • L’appareil n’est pas joint à Microsoft Entra ID. Vérifiez que les appareils répondent aux prérequis (de cet article).
  • Aucun script PowerShell ou aucune application Win32 ne sont affectés aux groupes auxquels appartient l’utilisateur ou l’appareil.
  • L’appareil ne peut pas effectuer un check-in auprès du service Intune. Par exemple, il n’y a pas d’accès Internet, pas d’accès aux services de notifications Push Windows (WNS), etc.
  • L’appareil est en mode S. L’extension de gestion Intune n’est pas prise en charge sur les appareils s’exécutant en mode S.

Pour voir si l’appareil est inscrit automatiquement, vous pouvez :

  1. Accéder à Paramètres>Comptes>Accès scolaire ou professionnel.
  2. Sélectionnez les informations du compte > joint.
  3. Sous le rapport Diagnostics avancés, sélectionner Créer un rapport.
  4. Ouvrez le MDMDiagReport dans un navigateur web.
  5. Recherchez la propriété MDMDeviceWithAAD. Si la propriété existe, c’est que l’appareil est inscrit automatiquement. Si cette propriété n’existe pas, c’est que votre appareil n’est pas inscrit automatiquement.

Activer l’inscription automatique Windows 10 inclut les étapes pour configurer l’inscription automatique dans Intune.

Problème: les scripts PowerShell ne s’exécutent pas

Solutions possibles:

  • Les scripts PowerShell ne s’exécutent pas à chaque connexion. Ils s’exécutent :

    • Quand le script est affecté à un appareil

    • Si vous modifiez le script, chargez-le et affectez-le à un utilisateur ou à un appareil

      Conseil

      L’extension de gestion Microsoft Intune est un service qui s’exécute sur l’appareil, tout comme n’importe quel autre service listé dans l’application Services (services.msc). Après le redémarrage d’un appareil, ce service peut également redémarrer et rechercher des scripts PowerShell affectés avec le service Intune. Si le service Extension de gestion Microsoft Intune est défini sur Manuel, le service ne peut pas redémarrer après un redémarrage de l’appareil.

  • Assurez-vous que les appareils sont joints à Microsoft Entra ID. Les appareils qui ne sont joints qu’à votre espace de travail ou organization (inscrits dans Microsoft Entra ID) ne recevront pas les scripts.

  • Vérifier que l’extension de gestion Intune a été téléchargée à l’emplacement suivant %ProgramFiles(x86)%\Microsoft Intune Management Extension.

  • Les scripts ne s’exécutent pas sur les appareils Surface Hub ou Windows 10 en mode S.

  • Examiner les éventuelles erreurs dans les journaux. Consultez Journaux de l’extension de gestion Intune (dans cet article).

  • En cas de problème lié aux autorisations, vérifier que les propriétés du script PowerShell sont bien définies sur Run this script using the logged on credentials. Vérifier également que l’utilisateur connecté dispose des autorisations nécessaires pour exécuter le script.

  • Pour isoler les problèmes des scripts, procédez comme suit :

    • Examiner la configuration de l’exécution de PowerShell sur vos appareils. Pour obtenir de l’aide, consultez Stratégie d’exécution de PowerShell.

    • Exécutez un exemple de script en utilisant l’extension de gestion Intune. Par exemple, créer le répertoire C:\Scripts et accorder à tout le monde un contrôle complet. Exécutez le script suivant :

      write-output "Script worked" | out-file c:\Scripts\output.txt
      

      Si cela réussit, le fichier output.txt doit être créé et doit inclure le texte « Script worked » (Le script a fonctionné).

    • Pour tester l’exécution des scripts sans Intune, exécuter les scripts localement dans le compte système avec l’outil psexec :

      psexec -i -s

    • Si le script signale qu’il a réussi, mais qu’il n’a pas réussi, il est possible que votre service antivirus place AgentExecutor dans le bac à sable (sandbox). Le script suivant signale toujours une défaillance dans Intune. En guise de test, vous pouvez utiliser ce script :

      Write-Error -Message "Forced Fail" -Category OperationStopped
      mkdir "c:\temp" 
      echo "Forced Fail" | out-file c:\temp\Fail.txt
      

      Si le script signale une réussite, examinez AgentExecutor.log pour confirmer la sortie de l’erreur. Si le script s’exécute, la longueur doit être >de 2.

    • Pour capturer les fichiers .error et .output, l’extrait de code suivant exécute le script via AgentExecutor sur PowerShell x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0). Il conserve les journaux pour que vous puissiez les vérifier. N’oubliez pas que l’extension de gestion Intune nettoie les journaux après l’exécution du script :

      $scriptPath = read-host "Enter the path to the script file to execute"
      $logFolder = read-host "Enter the path to a folder to output the logs to"
      $outputPath = $logFolder+"\output.output"
      $errorPath =  $logFolder+"\error.error"
      $timeoutPath =  $logFolder+"\timeout.timeout"
      $timeoutVal = 60000 
      $PSFolder = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0"
      $AgentExec = "C:\Program Files (x86)\Microsoft Intune Management Extension\agentexecutor.exe"
      &$AgentExec -powershell  $scriptPath $outputPath $errorPath $timeoutPath $timeoutVal $PSFolder 0 0
      

Prochaines étapes

Supervisez et dépannez vos profils.