Cet article a pour objectif de fournir une méthode fiable pour détecter la présence d’une application dont le déploiement a été interrompu ou avorté au sein d’une infrastructure SCCM/MECM.
Dans les environnements de production, il arrive fréquemment qu’un déploiement doive être stoppé en urgence, notamment pour des raisons de sécurité (faille critique, incompatibilité, erreur de version, etc.). Or, les métriques de remontée de conformité dans SCCM peuvent présenter un délai non négligeable, rendant difficile une réaction rapide et ciblée.
Détection d’un logiciel spécifique via une baseline MECM/SCCM
Ce guide propose une solution proactive, basée sur une baseline de conformité personnalisée, permettant de :
- Identifier rapidement les machines ayant reçu l’application ciblée
- Classer dynamiquement les postes selon leur état de conformité
- Faciliter la désinstallation ciblée et rapide de l’application concernée
Dans cet article, nous vous guidons pas à pas pour créer une baseline dans MECM/SCCM permettant de détecter la présence d’un logiciel spécifique (nommé ici "test") sur les postes clients. Vous apprendrez à :
- Créer un script PowerShell de détection
- Configurer un élément de configuration (Configuration Item)
- Créer une baseline
- Déployer la baseline
- Créer des collections dynamiques basées sur la conformité
- Utiliser des requêtes WQL pour filtrer les machines

Créer un script PowerShell de détection
Ce script vérifie si un logiciel nommé "test" est présent parmi les programmes installés, en inspectant les chemins de registre classiques de Windows (clés ARP 64 bits et 32 bits). Il retourne :
- 1 si le logiciel est trouvé
- 0 sinon

Configurer un élément de configuration (CI)
Explication : cette étape permet de définir la règle de détection du logiciel. Le CI sert de base à l’évaluation de conformité sur les postes clients via un script personnalisé.
- Ouvrir la console Configuration Manager.
- Aller dans Assets and Compliance > Compliance Settings > Configuration Items.
- Cliquer sur Create Configuration Item.
- Nommer l’élément : CI - Présence logiciel test.
- Cochez Windows Desktops and Servers (custom) ou soit que les desktops ou que les serveurs en fonction des besoins.
- Dans l’onglet Settings, cliquez sur New :
- Name : Détection logiciel test
- Setting type : Script
- Data type : Integer
- Ajouter le script PowerShell ci-dessus.
- Dans l’onglet Compliance Rules, cliquez sur New :
- Rule type : Value
- Equals → 1
- Cochez Report noncompliance if this setting is not met
Créer une baseline
Explication : la baseline regroupe un ou plusieurs éléments de configuration (CI) pour en automatiser l’évaluation sur les postes clients. Elle permet de centraliser la vérification de conformité et de la déployer à grande échelle.
- Aller dans Configuration Baselines.
- Cliquer sur Create Configuration Baseline.
- Nom : Baseline - Vérification logiciel test. (⚠ nommage important, il sera réutilisé en WQL)
- Ajouter l’élément de configuration créé précédemment.
Déployer une baseline
Explication : le déploiement permet d’appliquer la baseline à une ou plusieurs collections de machines. C’est ce qui déclenche l’évaluation automatique de la conformité sur les postes ciblés.
- Clic droit sur la baseline > Deploy.
- Sélectionner une collection cible (ex. : All Workstations).
- Définir une planification (ex. : tous les jours).
- (Optionnel) Cochez Remediate noncompliant rules when supported. Si un script de REM est déjà présent dans le CI (inutile dans notre cas).
Créer des collections dynamiques basées sur la conformité
Explication : les collections dynamiques permettent de regrouper automatiquement les machines selon leur état de conformité. Elles facilitent le ciblage des actions à mener, comme la désinstallation ou le redéploiement.
Machines avec le logiciel (compliant) :

Machines sans le logiciel (non-compliant) :

Annexe 1 : valeurs de ComplianceState
Dans MECM, la valeur de ComplianceState correspond à :
- 0 → Unknown (jamais évalué ou état inconnu)
- 1 → Compliant (conforme)
- 2 → Non-compliant (non conforme)
Donc pour détecter les machines sans le logiciel, on utilise bien ComplianceState = 2.
Annexe 2 : suivi du déploiement dans MECM
Pour surveiller l’état de déploiement d’une baseline dans MECM :
- Accède à Monitoring > Overview > Deployments
- Recherche le nom de la baseline
- Clic droit > View Status
La vue se divise en 4 onglets :
- Compliant : logiciel détecté
- Non-Compliant : logiciel absent
- Error : erreur d’exécution
- Unknown : état non évalué
Chaque onglet affiche un tableau détaillé par machine, utile pour cibler les actions correctives.