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.
Résumé opérationnel
Le pare-feu applique les profils Domain, Private et Public selon le réseau détecté. Une règle correcte pour Domain ne résout rien si le poste utilise Public, et désactiver le pare-feu pour tester modifie trop largement le risque.
Les règles proviennent de plusieurs policy stores : local, GPO, MDM, service hardening ou règles intégrées. Get-NetFirewallRule avec PolicyStoreSourceType et ActiveStore aide à comprendre l’état effectif.
Je reproduis le flux avec source, destination, protocole et port connus, active une journalisation séparée par profil et corrèle les paquets dropped/allowed. Le rollback retire uniquement la règle pilote.
Le pare-feu applique les profils Domain, Private et Public selon le réseau détecté. Une règle correcte pour Domain ne résout rien si le poste utilise Public, et désactiver le pare-feu pour tester modifie trop largement le risque.
Symptôme, contexte et périmètre de l’incident
Get-NetConnectionProfile et Get-NetFirewallProfile établissent le profil réseau et les actions par défaut. Je vérifie aussi le domaine authentifié, le VPN et les changements de profil pendant la reproduction.
Get-NetFirewallRule -PolicyStore ActiveStore montre les règles actives, tandis que PolicyStoreSourceType aide à distinguer local, group policy et autres sources. Le nom d’une règle ne garantit pas qu’elle est applicable.
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.
- Inclus dans l’analyse : Windows Firewall, Intune, Troubleshooting, Network
- Inclus dans l’analyse : postes Windows gérés et services Microsoft officiellement documentés
- Inclus dans l’analyse : validation en laboratoire puis pilote représentatif avant généralisation
Questions à résoudre et méthode de diagnostic
Pour diagnostiquer « Troubleshooting du pare-feu Windows », je pars du symptôme exact et de son horodatage. Je formule plusieurs causes possibles, puis je recherche la preuve qui permet de confirmer ou d’écarter chacune d’elles. Une affectation visible dans le portail, un code isolé ou un état ancien ne suffisent pas à établir la cause.
La première collecte reste en lecture seule : contexte utilisateur ou SYSTEM, version de Windows, version des composants, identifiants de corrélation, événements, journaux et état du registre. Je ne vide pas un cache et je ne supprime ni clé, ni certificat, ni objet avant d’avoir conservé ces éléments.
Je localise ensuite la première phase qui diverge, je corrige une seule cause à la fois et je reproduis le scénario initial. Je distingue le contournement temporaire de la correction causale, puis je valide le retour arrière sur un appareil pilote avant toute extension.
La chronologie est centrale : je rapproche l’heure du portail, celle du poste, les éventuels décalages UTC et les identifiants présents dans plusieurs journaux. Deux messages identiques peuvent appartenir à des tentatives différentes. Je conserve donc une fenêtre avant et après l’incident et j’indique clairement ce qui est confirmé, probable, encore hypothétique ou impossible à vérifier avec les données disponibles.
- Question à trancher : comprendre l’architecture, les dépendances et les limites
- Question à trancher : mettre en œuvre un pilote mesurable et reproductible
- Question à trancher : construire un diagnostic et un rollback utilisables par l’exploitation
Cartographie du flux à diagnostiquer
Get-NetConnectionProfile et Get-NetFirewallProfile établissent le profil réseau et les actions par défaut. Je vérifie aussi le domaine authentifié, le VPN et les changements de profil pendant la reproduction.
Get-NetFirewallRule -PolicyStore ActiveStore montre les règles actives, tandis que PolicyStoreSourceType aide à distinguer local, group policy et autres sources. Le nom d’une règle ne garantit pas qu’elle est applicable.
Une règle combine direction, action, enabled, profile et filtres de programme, service, adresse, port, interface et sécurité. Je récupère les filtres associés au même instance ID pour éviter une lecture partielle.
- NetworkDétermine le profil actif.
- Policy storesLocal, GPO, MDM et règles service.
- FilteringÉvalue direction, app, service et adresse.
- EvidenceLog, event et test du flux.
Chaque étape doit produire sa propre preuve. Un succès en amont ne garantit pas que les étapes suivantes ont terminé leur traitement.
État initial et prérequis de collecte
Je fige l’état du poste avant toute correction : versions, heure, identité, contexte d’exécution, affectations, autorités de gestion et dernier cycle connu. Cette photographie permet de distinguer la cause initiale des effets produits par les essais suivants.
Je vérifie également que le compte, l’appareil, la licence, la connectivité et les composants nécessaires rendent le scénario réellement applicable. Un prérequis absent doit être traité comme une cause potentielle, pas comme un détail de préparation.
- flux exact documenté
- profil réseau reproduit
- droits de lecture firewall
- policies Intune/GPO exportées
- journalisation bornée
- application et service identifiés
- règle de rollback prête
Collecte des preuves : journaux, registre et états
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.
- Identifier profil et actions par défaut.
- Lister les règles actives et sources.
- Lire tous les filtres de la règle candidate.
- Reproduire avec logs par profil.
- Vérifier process et écoute locale
- Créer une règle pilote minimale
- Tester autorisé et refusé
| 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
Je suis l’ordre réel du traitement et je m’arrête à la première divergence démontrée. Poursuivre malgré une preuve manquante créerait des symptômes secondaires et rendrait la chronologie moins fiable.
Pour chaque étape, je note l’action, l’emplacement, le résultat attendu et la méthode de vérification. Les champs Impact et Retour arrière concernent l’éventuelle correction ; la phase d’observation reste en lecture seule autant que possible.
- 01Établir l’état initial
- Emplacement
- Portails Microsoft et poste témoin
- Commande / configuration
Identifier profil et actions par défaut.- 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
Lister les règles actives et sources.- 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
Lire tous les filtres de la règle candidate.- 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
Reproduire avec logs par profil.- 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.
Je ne passe à la correction qu’après avoir isolé une phase et une cause avec des preuves concordantes.
Fonctionnement détaillé et responsabilités
Get-NetConnectionProfile et Get-NetFirewallProfile établissent le profil réseau et les actions par défaut. Je vérifie aussi le domaine authentifié, le VPN et les changements de profil pendant la reproduction.
Get-NetFirewallRule -PolicyStore ActiveStore montre les règles actives, tandis que PolicyStoreSourceType aide à distinguer local, group policy et autres sources. Le nom d’une règle ne garantit pas qu’elle est applicable.
Une règle combine direction, action, enabled, profile et filtres de programme, service, adresse, port, interface et sécurité. Je récupère les filtres associés au même instance ID pour éviter une lecture partielle.
- flux exact documenté
- profil réseau reproduit
- droits de lecture firewall
- policies Intune/GPO exportées
Configuration, exploitation et cas limites
Les paramètres AllowLocalFirewallRules et le merge déterminent si une règle locale participe au résultat. Une policy MDM qui refuse le merge peut rendre invisible l’effet attendu d’une règle créée manuellement.
Les règles block explicites et les règles de service peuvent primer sur une ouverture générale selon le scénario. Je ne tente pas d’inférer la priorité uniquement par ordre d’affichage dans wf.msc.
La journalisation peut enregistrer les paquets dropped et les connexions allowed. Microsoft recommande une taille suffisante et des fichiers distincts pour Domain, Private et Public afin de garder une chronologie exploitable.
- Vérifier process et écoute locale
- Créer une règle pilote minimale
- Tester autorisé et refusé
Interpréter les résultats sans raccourci
Test-NetConnection confirme la capacité TCP mais ne démontre pas quelle règle a décidé. pktmon, netsh trace ou une capture réseau peuvent compléter le diagnostic lorsque le paquet n’atteint pas l’application.
Les événements de Windows Filtering Platform dans le journal Security exigent une audit policy et peuvent être volumineux. Je l’active sur un pilote pour une fenêtre courte, avec stockage et protection des adresses.
La correction crée une règle étroite avec programme ou service, protocole, port, direction, profils et adresses nécessaires. Je teste les flux autorisés et interdits pour éviter une ouverture fonctionnelle mais excessive.
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.
Commandes et scripts de diagnostic en lecture seule
Les commandes de cette section servent à inventorier, corréler ou illustrer. Les scripts de diagnostic sont des exemples non testés de niveau 1 : arrêt sur erreur, gestion globale de l’exception et aucune modification volontaire du poste.
Je vérifie toujours le contexte d’exécution. Une commande lancée dans la session utilisateur n’observe pas forcément les mêmes certificats, variables, chemins ou ruches de registre qu’un processus exécuté sous SYSTEM.
# Exemple pédagogique non testé — niveau 1
$ErrorActionPreference = 'Stop'
try {
Get-NetConnectionProfile | Select-Object Name,NetworkCategory,IPv4Connectivity,IPv6Connectivity
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultInboundAction,DefaultOutboundAction,AllowLocalFirewallRules,LogFileName
Get-NetFirewallRule -PolicyStore ActiveStore -Enabled True |
Select-Object DisplayName,Direction,Action,Profile,PolicyStoreSourceType,PrimaryStatus
} catch { Write-Error "Collecte pare-feu impossible : $($_.Exception.Message)"; exit 1 }Pour une règle précise, compléter par Get-NetFirewallPortFilter, ApplicationFilter, AddressFilter et ServiceFilter.
Arbre de décision : symptômes, causes et corrections
Le symptôme oriente l’enquête, mais ne sélectionne jamais seul une correction. Je n’applique la réponse proposée que lorsque la preuve recherchée confirme la cause et que les autres hypothèses importantes sont écartées.
Après correction, je rejoue exactement le scénario initial avec les mêmes points de mesure. Si le symptôme se déplace vers une autre phase, je poursuis l’analyse au lieu de déclarer l’incident résolu.
| Symptôme | Cause à confirmer | Preuve recherchée | Correction ciblée |
|---|---|---|---|
| Règle présente, flux KO | Mauvais profil/filtre | ActiveStore et filtres | Corriger portée |
| Règle locale ignorée | Merge désactivé | Firewall profile effective | Gérer via l’autorité centrale |
| Port ouvert mais service KO | Process non à l’écoute | Get-NetTCPConnection | Corriger le service |
| Flux intermittent en VPN | Profil ou route change | Chronologie réseau | Adapter profils/adresses |
| Log vide | Logging/path/ACL | Profil et fichier attendu | Corriger la collecte bornée |
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.
Validation de la correction et critères de clôture
Je valide le comportement local, puis la remontée dans le service. Les délais du portail sont pris en compte, mais l’état attendu sur le poste doit être vérifiable immédiatement ou selon le cycle officiellement documenté.
La clôture exige un résultat reproductible, l’absence de régression, une cause documentée et une correction minimale. La généralisation reste NO-GO si le résultat varie entre deux postes comparables ou si le retour arrière n’est pas maîtrisé.
- Identifier profil et actions par défaut.
- Lister les règles actives et sources.
- Lire tous les filtres de la règle candidate.
- Reproduire avec logs par profil.
- Vérifier process et écoute locale
- Créer une règle pilote minimale
- Tester autorisé et refusé
Retour arrière, escalade et points de vigilance
Le rollback restaure l’état ou l’autorité précédente et doit lui aussi être vérifié sur le poste. Retirer une affectation sans confirmer la convergence locale ne constitue pas un retour arrière terminé.
Si la cause reste indéterminée, je conserve la chronologie, les journaux anonymisés, les identifiants de corrélation et la liste des hypothèses déjà écartées avant l’escalade. Je n’efface jamais les preuves pour tenter une réparation générique.
- Rollback : retirer la règle pilote par son identifiant
- Rollback : restaurer les paramètres de logging précédents
- Rollback : réappliquer la policy firewall versionnée
- Vigilance : ne pas désactiver tous les profils
- Vigilance : ne pas créer Any/Any
- Vigilance : protéger les journaux réseau
- Vigilance : tester IPv4 et IPv6
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.