J’ai récemment eu besoin d’automatiser un scénario très concret pour un client :
> identifier les postes de travail où une application est installée depuis + de 30 jours
> générer un rapport CSV
> l’archiver dans Azure Blob Storage
> et ajouter automatiquement ces appareils dans un groupe Entra ID pour appliquer des actions, ici la désinstallation d’un produit obsolète.

Voici comment j’ai construit ce pipeline d’automatisation, étape par étape. Pour l’exécuter, j’ai fait confiance à Azure Automation, un de mes fidèles partenaires 🙂

1. Authentification via une Managed Identity

Plus d’infos sur la managed identity : Using a system-assigned managed identity for an Azure Automation account | Microsoft Learn

Le script utilise Connect-AzAccount -Identity pour s’authentifier automatiquement.
Ensuite, il génère un token Graph et initialise la session Microsoft Graph.

Points techniques importants :

  • Pas de secret utilisé ici → sécurité renforcée grâce à la managed identity.
  • Les permissions sont gérées par rôle.

2. Export du rapport Intune via l’API exportJobs

L’API exportJobs (/beta/deviceManagement/reports/exportJobs) permet d’obtenir un rapport CSV complet sur notamment le statut de déploiement d’une application.

Plus d’infos : Use Graph APIs to Export Intune Reports – Microsoft Intune | Microsoft Learn

Le script va : créer un job d’export, poller l’état du job jusqu’à ce qu’il soit « completed », télécharger le ZIP généré et finir par extraire le CSV.

Exemple en image :

3. Filtrage des appareils ou l’application est installée

Une fois le CSV extrait, nous allons travailler sur celui-ci pour obtenir la liste des postes ayant le statut « Installed » et ayant une LastModifiedDateTime supérieur à 29j. Nous gardons une trace de ce CSV « filtré » sur un azure blob storage.

4. Ajout dans un groupe Entra ID

Le script lit le CSV filtré et, pour chaque appareil trouvé : Résout son deviceId, vérifie s’il est déjà membre du groupe, l’ajoute si nécessaire.

Comme indiqué en intro, ce groupe sera ensuite utilisé pour désinstaller une application obsolète que l’application cible a remplacé.

Si le script vous intéresse, vous le trouverez par ici :

Intune-AutomationScripts/GetAppInstalled30j/GetAppInstalledUp30days.ps1 at main · LeblogModernWorkplace/Intune-AutomationScripts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *