Mon expérience sur la fonctionnalité scripts PowerShell utilisant MS Graph

J’ai eu du mal à comprendre les cas d’usage de la fonctionnalité PowerShell Scripts au début.

Techniquement, je comprends. Cela me donne la possibilité d’effectuer des tâches sur des postes de travail gérés à distance à l’aide d’un script PowerShell.

Cependant, depuis le portail Intune, je n’ai pas trouvé de moyen approprié d’exploiter la fonctionnalité avec un reporting pertinent allant au-delà de « Succès » ou « Échec ». D’autant plus qu’il n’y a aucun moyen de relancer le script manuellement, alors quel est l’intérêt ?

Je ne trouvais pas d’autres cas d’usage que des actions ponctuelles (oneshots). C’était avant que j’appelle l’API.

Mon script simple

Je déploie un script PS sur mes postes de travail gérés pour obtenir les utilisateurs locaux :

J’utilise un script très simple ici, mais vous en comprendrez le potentiel à la fin.

Obtenir le résultat avec l’API Graph

Naviguons dans l’API des scripts PowerShell dans Microsoft Intune : https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts

Vous pouvez récupérer l’ID du script PowerShell soit via le Graph Explorer, soit directement dans l’URL.

Creusons un peu plus en ajoutant l’ID du script. Je veux aussi en savoir plus sur le déploiement du script.

Ma requête donne : https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts/$scriptid/deviceRunStates

Utilisation de la commande Invoke-RestMethod dans un script PowerShell :

Oui en effet, j’obtiens mon résultat avec : $scriptresults.value.resultmessage !

En exploitant le « resultmessage », vous pouvez obtenir n’importe quel résultat : vos messages d’erreur, les résultats de commandes, les valeurs de clés de registre, le contenu de fichiers et bien plus encore.

Je suis juste déçu de ne pas pouvoir le faire directement depuis le portail Intune. Mais c’est quand même un moyen d’obtenir mon résultat et c’est cool !

Autre astuce pour la fonctionnalité des scripts PowerShell

Je voulais en savoir plus sur le déploiement de mon script PS sur chaque poste de travail.

Je suis allé plus loin dans l’API en utilisant ceci : https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts/7ccbd36e-2f90-4ea6-b792-3ab8e9ad1518/deviceRunStates?$expand=managedDevice

En utilisant le « expand », je peux récupérer les détails des postes de travail et l’état de déploiement du script PS associé :

Utilisé dans un script Powershell :

Vous obtenez des détails sur l’état du déploiement et les postes de travail ciblés par le script. C’est bon à savoir !

À mon avis, cette fonctionnalité de scripts PowerShell atteint son plein potentiel en utilisant Microsoft Graph. Autrement, c’est un bon moyen d’exécuter des actions ponctuelles.

Laisser un commentaire

En savoir plus sur Poem to MDM

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Poursuivre la lecture