Résumé opérationnel
Je relève l’heure, le chemin, l’utilisateur, le parent process et le résultat visible. Puis je liste les politiques actives avec CiTool afin de ne pas analyser uniquement la policy que je pensais avoir déployée.
Les événements CodeIntegrity Operational indiquent le fichier, la signature, le statut et la policy concernée. AppLocker MSI and Script ou EXE and DLL aide pour scripts, installateurs et Managed Installer.
La correction n’est pas automatiquement une règle Allow. Elle peut être une signature corrigée, une chaîne de mise à jour stabilisée, une policy supplémentaire, une règle de déni ajustée ou une application remplacée.
Je relève l’heure, le chemin, l’utilisateur, le parent process et le résultat visible. Puis je liste les politiques actives avec CiTool afin de ne pas analyser uniquement la policy que je pensais avoir déployée.
Symptôme, contexte et périmètre de l’incident
Je reproduis le lancement avec l’utilisateur et le chemin d’origine. Copier le binaire dans un autre répertoire, lancer en administrateur ou utiliser un shell différent peut changer la règle évaluée et masquer la cause.
CiTool -lp liste les politiques actives, leur friendly name, PolicyID, version et mode. Je recherche les politiques inbox, base et supplemental ainsi que les anciennes versions encore présentes.
Le canal CodeIntegrity Operational fournit les événements d’audit et de blocage des exécutables, DLL et drivers. Je filtre autour de l’heure exacte puis conserve le message complet, le hash et les informations de signature.
- App Control, WDAC, Troubleshooting, CodeIntegrity
- Endpoint Lab — Symptom, Policies, Decision, Fix
- heure et scénario de reproduction, accès aux journaux Code Integrity, CiTool et CiDiag disponibles
Questions à résoudre et méthode de diagnostic
Pour Troubleshooting App Control et WDAC, l’enquête suit le parcours Symptom → Policies → Decision → Fix. L’étape utile n’est pas celle qui affiche le dernier message: c’est la première dont le résultat ne correspond plus au fonctionnement attendu.
Les premiers contrôles portent sur Reproduire sans changer le contexte, Lister toutes les policies actives et Exporter CodeIntegrity et AppLocker. Ils permettent de dater le problème et de séparer un défaut de ciblage, de transport ou d’exécution avant d’envisager une correction.
Les symptômes « Aucun événement visible, EXE autorisé, app échoue et Publisher rule inactive » peuvent se ressembler à l’écran tout en provenant de causes différentes. Chaque branche de diagnostic associe donc un signal, une preuve et une action de correction précise.
- Reproduire sans changer le contexte.
- Lister toutes les policies actives.
- Exporter CodeIntegrity et AppLocker.
Cartographie du flux à diagnostiquer
Je reproduis le lancement avec l’utilisateur et le chemin d’origine. Copier le binaire dans un autre répertoire, lancer en administrateur ou utiliser un shell différent peut changer la règle évaluée et masquer la cause.
CiTool -lp liste les politiques actives, leur friendly name, PolicyID, version et mode. Je recherche les politiques inbox, base et supplemental ainsi que les anciennes versions encore présentes.
Le canal CodeIntegrity Operational fournit les événements d’audit et de blocage des exécutables, DLL et drivers. Je filtre autour de l’heure exacte puis conserve le message complet, le hash et les informations de signature.
- SymptomCommande et contexte exacts du blocage.
- PoliciesCiTool liste les PolicyID actives.
- DecisionCode Integrity expose règle et signature.
- FixException minimale, test Audit puis Enforced.
Cette chaîne situe les preuves à rapprocher pour Troubleshooting App Control et WDAC. Le résultat d’une étape ne permet pas de déduire celui de la suivante.
État initial et prérequis de collecte
L’état initial de Troubleshooting App Control et WDAC doit couvrir heure et scénario de reproduction, accès aux journaux Code Integrity, CiTool et CiDiag disponibles, XML source versionné. Cette photographie est prise avant de relancer un traitement ou de modifier une affectation.
Les couches Symptom, Policies, Decision, Fix sont contrôlées séparément. Un prérequis absent devient alors une cause identifiable, au lieu d’être noyé dans les effets des essais suivants.
- heure et scénario de reproduction
- accès aux journaux Code Integrity
- CiTool et CiDiag disponibles
- XML source versionné
- propriétaire applicatif
- poste laboratoire équivalent
- rollback hors ligne testé
Collecte des preuves : journaux, registre et états
La chronologie de Troubleshooting App Control et WDAC relie Symptom, Policies, Decision, Fix. Les heures et identifiants communs permettent de savoir si les états appartiennent à la même tentative.
La collecte commence par Reproduire sans changer le contexte. Lister toutes les policies actives. Exporter CodeIntegrity et AppLocker. Identifier fichier, signature et PolicyID. Ces contrôles conservent l’état qui explique le symptôme avant une nouvelle évaluation.
Les résultats sont lus avec les causes « Mauvais canal ou heure », « DLL ou child process bloqué », « Signature/niveau différents » en tête, sans déduire une correction d’un code ou d’un statut isolé.
- Reproduire sans changer le contexte.
- Lister toutes les policies actives.
- Exporter CodeIntegrity et AppLocker.
- Identifier fichier, signature et PolicyID.
- Créer la règle minimale en copie
- Tester Audit puis Enforced
- Valider l’application et le 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 |
Investigation pas à pas
L’investigation suit l’ordre Symptom → Policies → Decision → Fix. La première divergence confirmée détermine la branche suivante et évite de multiplier les symptômes secondaires.
Pour Troubleshooting App Control et WDAC, les contrôles « Reproduire et horodater le symptôme », « Contrôler la première couche », « Corréler les preuves » précisent à la fois l’emplacement, le résultat attendu et la vérification à effectuer.
01Reproduire et horodater le symptôme
- Emplacement
- Symptom — App Control
- Commande / configuration
Reproduire sans changer le contexte.- Résultat attendu
- Lister toutes les policies actives.
- Vérification
- Exporter CodeIntegrity et AppLocker.
- Impact
- Lecture seule.
- Retour arrière
- Aucun.
02Contrôler la première couche
- Emplacement
- Policies — WDAC
- Commande / configuration
Lister toutes les policies actives.- Résultat attendu
- Exporter CodeIntegrity et AppLocker.
- Vérification
- Identifier fichier, signature et PolicyID.
- Impact
- Impact limité au pilote.
- Retour arrière
- Retirer l’affectation et restaurer l’état précédent.
03Corréler les preuves
- Emplacement
- Decision — Troubleshooting
- Commande / configuration
Exporter CodeIntegrity et AppLocker.- Résultat attendu
- Identifier fichier, signature et PolicyID.
- Vérification
- Créer la règle minimale en copie
- Impact
- Collecte de preuves minimisées.
- Retour arrière
- Aucun pour la collecte.
04Tester la correction ciblée
- Emplacement
- Fix — CodeIntegrity
- Commande / configuration
Identifier fichier, signature et PolicyID.- Résultat attendu
- Créer la règle minimale en copie
- Vérification
- Tester Audit puis Enforced
- Impact
- Extension contrôlée ou arrêt.
- Retour arrière
- Suspendre la vague et appliquer le runbook de retour arrière.
La procédure isole la première phase défaillante de Troubleshooting App Control et WDAC avant d’appliquer une correction.
Fonctionnement détaillé de Troubleshooting App Control et WDAC
Je reproduis le lancement avec l’utilisateur et le chemin d’origine. Copier le binaire dans un autre répertoire, lancer en administrateur ou utiliser un shell différent peut changer la règle évaluée et masquer la cause.
CiTool -lp liste les politiques actives, leur friendly name, PolicyID, version et mode. Je recherche les politiques inbox, base et supplemental ainsi que les anciennes versions encore présentes.
Le canal CodeIntegrity Operational fournit les événements d’audit et de blocage des exécutables, DLL et drivers. Je filtre autour de l’heure exacte puis conserve le message complet, le hash et les informations de signature.
- heure et scénario de reproduction
- accès aux journaux Code Integrity
- CiTool et CiDiag disponibles
- XML source versionné
Traitement, exploitation et cas limites de Troubleshooting App Control et WDAC
Les scripts peuvent produire une information complémentaire dans AppLocker MSI and Script. Pour Managed Installer, le canal AppLocker EXE and DLL doit montrer que le processus d’installation est reconnu avec PolicyName MANAGEDINSTALLER.
Un fichier signé peut être bloqué si la chaîne ne correspond pas au niveau Publisher choisi, si le certificat est expiré sans timestamp acceptable, si le nom de produit diffère ou si une règle Deny l’emporte.
Une DLL manquante apparaît parfois après que l’exécutable principal a démarré. Je collecte toute la séquence et ses processus enfants au lieu d’autoriser seulement le premier fichier visible.
- Créer la règle minimale en copie
- Tester Audit puis Enforced
- Valider l’application et le rollback
Lire les états propres à Troubleshooting App Control et WDAC
Microsoft fournit CiDiag et le guide de debugging pour rassembler policies, événements et AppLocker. Je protège les chemins utilisateurs, éditeurs internes et noms de logiciels sensibles avant transfert.
La règle proposée est générée dans une copie versionnée de la policy. Elle est testée en Audit sur la même reproduction, puis en Enforced sur un appareil de laboratoire; le PolicyID et la version sont contrôlés après déploiement.
Si le poste ne peut plus démarrer ou joindre Intune, le runbook hors ligne prévaut. Il doit avoir été testé avec BitLocker, les clés de récupération et la procédure Microsoft correspondant au type de policy.
- Aucun événement visible — Horloge et logs
- EXE autorisé, app échoue — Séquence complète
- Publisher rule inactive — Signer information
- Policy corrigée sans effet — CiTool PolicyID/version
Pilote et suivi opérationnel de Troubleshooting App Control et WDAC
Le pilote couvre le périmètre App Control, WDAC, Troubleshooting, CodeIntegrity et contrôle Reproduire sans changer le contexte. Lister toutes les policies actives. Exporter CodeIntegrity et AppLocker. Les résultats sont segmentés selon les populations réellement concernées par Troubleshooting App Control et WDAC.
Les cas d’échec « Aucun événement visible », « EXE autorisé, app échoue », « Publisher rule inactive » sont reproduits lorsque c’est possible. Ils vérifient que l’écart reste visible et que la procédure indique une preuve exploitable.
Le suivi après déploiement conserve ne pas passer globalement en Audit en réaction à un ticket, une règle Deny reste prioritaire, analyser les DLL et enfants, ne pas effacer les policies sans plan. Une évolution de version, de licence ou de dépendance déclenche une nouvelle lecture de ces points.
Commandes et scripts de diagnostic en lecture seule
Les exemples ci-dessous contrôlent Reproduire sans changer le contexte. Lister toutes les policies actives. Exporter CodeIntegrity et AppLocker. Identifier fichier, signature et PolicyID. Leur sortie doit être rapprochée de l’heure de l’incident et du contexte d’exécution concerné.
Pour Troubleshooting App Control et WDAC, les données utiles se lisent dans les états locaux, les journaux et les rapports cités dans chaque exemple. Une valeur isolée ne remplace pas cette corrélation.
# Collecte de diagnostic
$ErrorActionPreference = 'Stop'
try {
$since = (Get-Date).AddHours(-2)
CiTool.exe -lp -json
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-CodeIntegrity/Operational';StartTime=$since} | Select-Object TimeCreated,Id,Message
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-AppLocker/MSI and Script';StartTime=$since} | Select-Object TimeCreated,Id,Message
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-AppLocker/EXE and DLL';StartTime=$since} | Select-Object TimeCreated,Id,Message
} catch { Write-Error "Collecte du blocage impossible : $($_.Exception.Message)"; exit 1 }Adapter la fenêtre à la reproduction. Les chemins, éditeurs et noms d’utilisateur sont des données à minimiser.
$ErrorActionPreference = 'Stop'
try {
Get-WinEvent -LogName 'Microsoft-Windows-CodeIntegrity/Operational' -MaxEvents 150 |
Where-Object Id -In 3076,3077,3089 |
Select-Object TimeCreated,Id,LevelDisplayName,Message
if (Get-Command CiTool.exe -ErrorAction SilentlyContinue) {
CiTool.exe --list-policies
}
}
catch {
Write-Error "Collecte impossible : $($_.Exception.Message)"
exit 1
}La sortie fournit un instantané à rapprocher de l’heure du symptôme, de l’affectation et des autres journaux cités dans l’article.
[16:44:08.220] CodeIntegrity EventId=3077 File=C:\Program Files\Example\agent.exe
[16:44:08.221] CodeIntegrity PolicyId=<GUID> Decision=Deny
[16:44:08.222] CodeIntegrity EventId=3089 Signer=<PUBLISHER> Status=Untrusted
[16:44:08.500] Application Launch=Blocked User=<USER>
[16:46:10.050] Review ExpectedPolicy=<GUID> Match=TrueExemple de chronologie attendue. Les valeurs sont fictives; l’ordre des événements et les identifiants communs sont les éléments à reproduire avec les données du poste concerné.
Arbre de décision : symptômes, causes et corrections
La matrice couvre notamment Aucun événement visible, EXE autorisé, app échoue, Publisher rule inactive, Policy corrigée sans effet. Ces symptômes servent de points d’entrée; la preuve indiquée dans la même ligne confirme ou écarte la cause.
Après correction, les contrôles Reproduire sans changer le contexte, Lister toutes les policies actives et Exporter CodeIntegrity et AppLocker sont rejoués dans les mêmes conditions pour vérifier que le problème n’a pas simplement changé de phase.
| Symptôme | Cause à confirmer | Preuve recherchée | Correction ciblée |
|---|---|---|---|
| Aucun événement visible | Mauvais canal ou heure | Horloge et logs | Étendre la fenêtre de collecte |
| EXE autorisé, app échoue | DLL ou child process bloqué | Séquence complète | Traiter la dépendance |
| Publisher rule inactive | Signature/niveau différents | Signer information | Ajuster le niveau minimal |
| Policy corrigée sans effet | Ancienne version active | CiTool PolicyID/version | Corriger le déploiement |
| Managed Installer ignoré | Tag ou AppLocker absent | 8002/8003/8004 | Corriger MI avant l’app |
La matrice relie les symptômes propres à Troubleshooting App Control et WDAC aux preuves qui permettent de choisir une correction ciblée.
Validation de la correction et critères de clôture
La correction de Troubleshooting App Control et WDAC est validée avec les mêmes points de mesure que le diagnostic initial. Le résultat local et l’état remonté dans le service doivent raconter la même chronologie.
- Reproduire sans changer le contexte.
- Lister toutes les policies actives.
- Exporter CodeIntegrity et AppLocker.
- Identifier fichier, signature et PolicyID.
- Créer la règle minimale en copie
- Tester Audit puis Enforced
- Valider l’application et le rollback
Retour arrière, escalade et points de vigilance
Le retour arrière de Troubleshooting App Control et WDAC restaure l’état connu décrit ci-dessous. Sa réussite se vérifie sur le poste et dans le service, pas seulement par la disparition d’une affectation.
Une escalade conserve les preuves correspondant à Reproduire sans changer le contexte. Lister toutes les policies actives. Exporter CodeIntegrity et AppLocker. Identifier fichier, signature et PolicyID. ainsi que les causes déjà écartées.
| Action |
|---|
| retirer uniquement la policy supplémentaire fautive |
| restaurer la version précédente du XML avec son PolicyID maîtrisé |
| utiliser le runbook de récupération hors ligne si la gestion cloud est indisponible |
| Point à contrôler |
|---|
| ne pas passer globalement en Audit en réaction à un ticket |
| une règle Deny reste prioritaire |
| analyser les DLL et enfants |
| ne pas effacer les policies sans plan |
Références et mots-clés
Références techniques publiques
- MicrosoftGuide de debugging App Control
- MicrosoftComprendre les événements App Control
- MicrosoftCiTool : gérer les politiques