Je publie les diagnostics en niveau 1 et les exemples de remédiation au minimum en niveau 2. Ils restent pédagogiques, non testés et ne doivent pas être utilisés tels quels. Avant tout essai réel, adaptez-les au contexte, utilisez la simulation quand elle existe et validez le rollback sur un pilote représentatif.
L’essentiel
Une dépendance doit être installée avant l’application parente. Elle peut être installée automatiquement sans ciblage explicite, mais toutes les dépendances doivent être des applications Win32 et le graphe complet est limité.
La supersedence demande un ciblage de l’application qui remplace. Elle peut conserver l’ancienne version ou envoyer sa commande de désinstallation. Une chaîne de supersedence comporte au maximum dix nœuds selon la documentation actuelle.
Supersedence et dépendances peuvent partager un sous-graphe, mais les relations contradictoires produisent des conflits. Je représente le graphe sur papier, contrôle chaque règle de détection et teste les retours de redémarrage avant le déploiement.
Une dépendance doit être installée avant l’application parente. Elle peut être installée automatiquement sans ciblage explicite, mais toutes les dépendances doivent être des applications Win32 et le graphe complet est limité.
Pourquoi cette technologie existe
Le ciblage Required ou Available s’applique à l’application racine. Une dépendance marquée installation automatique peut être installée parce qu’elle est requise par le parent, même sans affectation autonome.
Le graphe de dépendances compte l’application parente et toutes les dépendances transitives. Une dépendance partagée entre plusieurs graphes participe au calcul global documenté et peut rendre la conception trop complexe.
Je définis l’objectif opérationnel avant de choisir le profil ou l’outil. Cette discipline sépare le besoin de sécurité, l’expérience utilisateur, l’autorité de gestion et la preuve attendue. Elle évite aussi qu’un paramètre soit activé uniquement parce qu’il apparaît dans la console.
Je compare toujours l’intention cloud, l’applicabilité, l’état reçu par Windows et le résultat réellement observé. Une affectation réussie, un état vert ou une requête HTTP acceptée ne prouve pas à lui seul que tout le parcours fonctionne.
Pour expliquer « Dépendances et supersedence Win32 », je commence par le besoin auquel la technologie répond, puis je sépare le plan de contrôle, le transport, les composants locaux, les états persistés et les données de résultat. Cette lecture évite d’attribuer au portail une décision prise par Windows ou à l’agent une limitation du service cloud.
Je distingue les interfaces supportées des détails internes observables. Les journaux, tâches et clés de registre aident à comprendre le fonctionnement, mais ils ne deviennent pas automatiquement des contrats stables sur lesquels bâtir une automatisation durable.
Enfin, je relie la théorie au cycle réel : déclenchement, traitement, résultat, nouvelle évaluation et comportement en cas de dérive. L’objectif est de comprendre ce qui se passe, pas seulement de reproduire une configuration.
Je qualifie la nature de chaque état : intention envoyée, valeur effective, inventaire, conformité, télémétrie ou simple cache d’affichage. Ces données n’ont ni la même fraîcheur ni la même autorité. Un résultat cohérent suppose de connaître qui produit l’information, à quel moment, dans quel contexte et selon quel mécanisme elle revient au service.
Je replace aussi la technologie dans son environnement. Les identités, certificats, licences, services réseau, versions clientes et autres outils de gestion peuvent modifier son comportement sans appartenir directement à son moteur. Cette frontière permet de distinguer une limitation intrinsèque d’une dépendance absente ou d’un conflit d’architecture.
Quand une observation terrain complète la documentation, je la présente comme un indice et non comme une garantie de support. Les noms de tâches, fichiers, événements ou rythmes internes peuvent changer. Je m’appuie sur eux pour expliquer et diagnostiquer, tandis que les décisions de conception reposent sur les interfaces et comportements officiellement documentés.
- À comprendre : comprendre l’architecture, les dépendances et les limites
- À comprendre : mettre en œuvre un pilote mesurable et reproductible
- À comprendre : construire un diagnostic et un rollback utilisables par l’exploitation
- Périmètre étudié : Intune, Win32 apps, Dependencies, Supersedence
- Périmètre étudié : postes Windows gérés et services Microsoft officiellement documentés
- Périmètre étudié : validation en laboratoire puis pilote représentatif avant généralisation
Architecture, composants et flux de données
Le ciblage Required ou Available s’applique à l’application racine. Une dépendance marquée installation automatique peut être installée parce qu’elle est requise par le parent, même sans affectation autonome.
Le graphe de dépendances compte l’application parente et toutes les dépendances transitives. Une dépendance partagée entre plusieurs graphes participe au calcul global documenté et peut rendre la conception trop complexe.
Chaque dépendance suit ses propres exigences, règle de détection, commande et codes de retour. Un redémarrage pending ou une détection fausse arrête la progression du parent et doit être lu dans les journaux IME.
- AssignmentDéclenche l’intention Required ou Available.
- GraphRésout dépendances et supersedence.
- IMEÉvalue exigences, détection et commandes.
- StateRemonte succès, conflit, attente ou erreur.
Chaque étape doit produire sa propre preuve. Un succès en amont ne garantit pas que les étapes suivantes ont terminé leur traitement.
Prérequis, compatibilité et limites de support
Je sépare les prérequis nécessaires à l’existence de la fonction de ceux qui ne concernent qu’un scénario d’administration. La présence d’une option dans une console ne prouve ni la prise en charge de la version cliente, ni l’éligibilité de la licence.
Les builds, éditions, rôles, dépendances réseau et contextes d’exécution doivent être confirmés avant d’interpréter un comportement. Les éléments internes observés mais non documentés comme interfaces publiques sont explicitement traités comme tels.
- packages Win32 versionnés
- règles de détection fiables
- codes retour et reboot documentés
- graphe dessiné et sans boucle
- permission Mobile apps Relate
- pilote avec ancien et nouveau états
- package de rollback disponible
Cycle de fonctionnement, étape par étape
Cette séquence décrit ce que font les différents composants, depuis le déclenchement jusqu’au résultat. Elle sert de modèle mental : selon le scénario, certaines étapes peuvent être asynchrones ou exécutées dans un autre contexte.
Je distingue l’action demandée, son transport, son traitement local et son accusé de résultat. Cette distinction explique pourquoi deux écrans peuvent afficher temporairement des états différents sans qu’il y ait nécessairement une panne.
- 01Établir l’état initial
- Emplacement
- Portails Microsoft et poste témoin
- Commande / configuration
Exporter affectations et relations.- Résultat attendu
- Les versions, identités, affectations, autorités et écarts sont documentés.
- Vérification
- Comparer l’inventaire local, les portails et les sources techniques.
- Impact
- Lecture seule.
- Retour arrière
- Aucun.
- 02Configurer le pilote
- Emplacement
- Groupe, profil ou service pilote
- Commande / configuration
Vérifier chaque détection isolément.- Résultat attendu
- Une configuration unique et bornée est appliquée à une audience stable.
- Vérification
- Relire les inclusions, exclusions, filtres, licences et permissions.
- Impact
- Impact limité au pilote.
- Retour arrière
- Retirer l’affectation et restaurer l’état précédent.
- 03Observer le parcours complet
- Emplacement
- Rapports cloud et journaux locaux
- Commande / configuration
Construire le graphe sans conflit.- Résultat attendu
- Chaque couche produit une preuve datée et les écarts sont expliqués.
- Vérification
- Rejouer le scénario nominal et au moins un cas négatif.
- Impact
- Collecte de preuves minimisées.
- Retour arrière
- Aucun pour la collecte.
- 04Décider la vague suivante
- Emplacement
- Dossier de changement et runbook
- Commande / configuration
Tester install, upgrade et absent.- Résultat attendu
- Les critères GO sont atteints ou le changement reste explicitement en NO-GO.
- Vérification
- Contrôler les KPI, les incidents, le support et le rollback.
- Impact
- Extension contrôlée ou arrêt.
- Retour arrière
- Suspendre la vague et appliquer le runbook de retour arrière.
Le but est de comprendre la responsabilité de chaque composant et la preuve qu’il produit.
Fonctionnement détaillé et responsabilités
Le ciblage Required ou Available s’applique à l’application racine. Une dépendance marquée installation automatique peut être installée parce qu’elle est requise par le parent, même sans affectation autonome.
Le graphe de dépendances compte l’application parente et toutes les dépendances transitives. Une dépendance partagée entre plusieurs graphes participe au calcul global documenté et peut rendre la conception trop complexe.
Chaque dépendance suit ses propres exigences, règle de détection, commande et codes de retour. Un redémarrage pending ou une détection fausse arrête la progression du parent et doit être lu dans les journaux IME.
- packages Win32 versionnés
- règles de détection fiables
- codes retour et reboot documentés
- graphe dessiné et sans boucle
Configuration, exploitation et cas limites
La supersedence vise une application Win32 plus ancienne ou différente. L’option Uninstall previous version décide si Intune appelle la commande d’uninstall avant d’installer la nouvelle application ; un installeur capable d’upgrade in-place peut nécessiter No.
L’application superseding doit être ciblée. Si elle atteint un poste où l’ancienne application est détectée, la relation peut s’appliquer même si l’ancienne application n’est plus ciblée. Je documente donc les intentions des deux côtés.
Dans une chaîne A vers B vers C, la version la plus récente peut supersede l’ensemble. Les chaînes profondes compliquent rollback, Company Portal et reporting ; je limite volontairement la profondeur bien avant le maximum technique.
- Tester redémarrages
- Tester Company Portal et reporting
- Valider désinstallation/rollback
Interpréter les résultats sans raccourci
Quand dépendance et supersedence se contredisent, Intune privilégie la logique de supersedence mais peut remonter Conflict. Un exemple classique est une application A qui dépend de B alors qu’une application C supersede B.
Les mises à jour in-place guidées et la création d’une nouvelle application avec supersedence n’ont pas les mêmes capacités. Affectations, scope tags et autres métadonnées ne sont pas automatiquement recopiés dans tous les workflows.
La preuve se construit dans IntuneManagementExtension.log, AppWorkload.log, AppActionProcessor.log, AppIntentEval.log et les fichiers de reporting. Je corrèle applicationId, relation, contexte et détection avant de relancer.
Je distingue une donnée de configuration, une donnée d’inventaire et une preuve d’exécution. La première décrit ce qui devrait arriver, la deuxième décrit un état observé à un instant donné et la troisième montre ce qu’un composant a réellement tenté. Leur horodatage et leur contexte doivent converger avant toute conclusion.
Je documente les états non applicable, pending, conflict, error et success séparément. Un poste absent d’un rapport n’est pas nécessairement sain ou en échec : il peut être hors ligne, non éligible, non ciblé, en retard de télémétrie ou exclu par la politique de collecte.
Pilote, généralisation et maintien en conditions opérationnelles
Le pilote couvre plusieurs modèles matériels, versions de Windows, profils réseau, populations utilisateur et exceptions métier. Je conserve une cohorte témoin afin de différencier l’effet du changement d’une évolution globale du service, d’une mise à jour applicative ou d’un incident réseau.
Les critères GO sont définis avant le début : couverture, taux de succès, délai de convergence, incidents, tickets support, régressions et temps de rollback. Une moyenne satisfaisante ne masque pas un sous-groupe en échec ; les résultats sont donc segmentés par version, modèle, site et mode de gestion.
Les cas négatifs sont testés volontairement : appareil hors ligne, licence absente, identité non éligible, règle non applicable, réseau filtré et retour arrière. Un design exploitable doit échouer de manière visible, sûre et compréhensible pour le support.
Après généralisation, je programme une revue des exceptions, des permissions, des versions de profil et des dépendances. Le service cloud et Windows évoluent ; une décision correcte aujourd’hui doit rester traçable et être revalidée lorsqu’un prérequis ou une interface change.
Interfaces d’observation, commandes et exemples
Les commandes illustrent les objets et états décrits dans l’article. Les exemples de diagnostic restent non testés, en niveau 1 et sans modification volontaire. Ils servent à comprendre les données disponibles, pas à industrialiser une collecte.
Une automatisation durable doit employer une API ou une interface officiellement supportée. Une clé de registre, un fichier ou une tâche interne peut évoluer avec Windows, l’agent ou le service.
# Exemple pédagogique non testé — niveau 1
$ErrorActionPreference = 'Stop'
try {
$root = Join-Path $env:ProgramData 'Microsoft\IntuneManagementExtension\Logs'
$patterns = 'dependency','supersedence','conflict','reboot'
Get-ChildItem -LiteralPath $root -Filter '*.log' |
Select-String -Pattern $patterns -SimpleMatch |
Select-Object Path,LineNumber,Line
} catch { Write-Error "Lecture IME impossible : $($_.Exception.Message)"; exit 1 }Filtrer ensuite sur les identifiants d’application et anonymiser les noms avant partage.
Observabilité : où lire l’état réel
Je construis une chronologie unique avec l’heure de la demande, le check-in, l’événement local, la décision du composant et la remontée dans le portail. Je conserve UTC et heure locale, mais j’anonymise UPN, DeviceId, TenantId, noms internes, certificats, adresses et contenus métiers avant partage.
La collecte initiale reste en lecture seule. Je ne vide pas un cache, ne supprime pas une clé, ne réinitialise pas un agent et ne force pas un enrôlement avant d’avoir capturé les preuves. Ces actions changent l’état et peuvent rendre la cause première impossible à démontrer.
Les scripts publiés ici sont des exemples pédagogiques non testés de niveau 1. Toute remédiation réelle doit être au minimum de niveau 2, proposer une simulation, limiter sa cible, expliquer son impact et restaurer l’état précédent. Les opérations privilégiées ou à grande échelle exigent un niveau supérieur et une approbation formelle.
- Exporter affectations et relations.
- Vérifier chaque détection isolément.
- Construire le graphe sans conflit.
- Tester install, upgrade et absent.
- Tester redémarrages
- Tester Company Portal et reporting
- Valider désinstallation/rollback
| Couche | Question | Preuve | Décision |
|---|---|---|---|
| Ciblage | Le poste devait-il recevoir la configuration ? | Groupe, filtre, licence et affectation | Corriger le ciblage avant le client |
| Transport | La demande a-t-elle atteint sa destination ? | Check-in, événement, request-id ou téléchargement | Traiter identité, réseau ou service |
| Traitement | Le composant a-t-il évalué la demande ? | Journal, état par paramètre ou résultat API | Corriger la valeur ou le composant |
| Résultat | L’objectif final est-il atteint ? | Contrôle fonctionnel et rapport corrélé | Valider ou maintenir NO-GO |
Validation du modèle et cas d’usage
Je vérifie le modèle sur un appareil représentatif en reliant la configuration du service, l’état reçu, le traitement local et la donnée remontée. L’objectif n’est pas de certifier la production, mais de confirmer que l’explication décrit bien le comportement observé.
Un cas d’usage est retenu lorsque la technologie répond au besoin sans ajouter une autorité concurrente, une dépendance non maîtrisée ou un niveau d’opacité incompatible avec l’exploitation.
- Exporter affectations et relations.
- Vérifier chaque détection isolément.
- Construire le graphe sans conflit.
- Tester install, upgrade et absent.
- Tester redémarrages
- Tester Company Portal et reporting
- Valider désinstallation/rollback
Limites, modes de panne et lecture des erreurs
Cette matrice relie les limites du modèle aux symptômes observables. Elle ne transforme pas une technologie en article de dépannage : elle montre où le fonctionnement normal peut diverger et quelles preuves permettent de comprendre cette divergence.
Une erreur isolée doit être replacée dans sa phase et son contexte. Je privilégie les résultats documentés du service et du client avant les détails d’implémentation susceptibles de changer.
| Symptôme | Cause à confirmer | Preuve recherchée | Correction ciblée |
|---|---|---|---|
| Parent non installé | Dépendance failed | IME et état dependency | Corriger la dépendance |
| Conflict | Relation contradictoire | Graphe complet | Simplifier dépendance/supersedence |
| Ancienne version reste | Uninstall No ou détection | Commande et règle | Adapter upgrade ou désinstallation |
| Nouvelle app ignorée | Superseding non ciblée | Affectation effective | Cibler explicitement |
| Boucle de réévaluation | Détection instable | AppIntentEval et registre app | Corriger la règle idempotente |
Une cause reste une hypothèse tant qu’elle n’est pas confirmée par une preuve locale ou une donnée de service corrélée.
Adoption progressive, réversibilité et vigilance
Pour introduire la technologie, je commence par un scénario borné, des appareils pilotes et des critères d’observation définis. L’adoption progresse uniquement si les dépendances, la supervision et les responsabilités de support sont comprises.
Le retour arrière dépend souvent de la propriété de la ressource et du cycle de synchronisation. Je le teste avant généralisation et je ne déduis jamais la réversibilité de la seule disparition d’un profil dans le portail.
- Réversibilité : réaffecter le package stable précédent
- Réversibilité : retirer la relation de supersedence fautive
- Réversibilité : utiliser un package de rollback versionné plutôt qu’une inversion improvisée
- Limite ou vigilance : dix nœuds maximum pour supersedence
- Limite ou vigilance : cent dépendances selon graphe documenté
- Limite ou vigilance : ciblage explicite du superseding
- Limite ou vigilance : ne pas effacer GRS sans preuve
Repères d’utilisation
Cette analyse propose une méthode opérationnelle et un cadre de décision. Avant toute application à grande échelle, vérifiez les versions, les licences et les comportements sur un environnement pilote représentatif de votre contexte.
Références techniques publiques
J’ai privilégié la documentation Microsoft pour les comportements contractuels. Les retours terrain complètent l’observation, sans remplacer la documentation de support.
- MicrosoftAjouter et affecter une application Win32
- MicrosoftConfigurer la supersedence Win32
- MicrosoftGestion des applications Win32