DTLknowsWhy — Guide utilisateur v2.1

Guide pratique pour installer, exécuter et interpréter DTLknowsWhy 2.1 — du premier snapshot local à la comparaison causale complète entre deux machines.

version2.1.0 date7 juin 2026 plateformeWindows 10 / 11 runtimePython 3.10+ languesfr / en licenceMIT

Préface

Ce guide explique comment utiliser DTLknowsWhy pour diagnostiquer des problèmes réseau et SMB sous Windows. Il couvre l'interface graphique, tous les modes en ligne de commande, les trois formats de fichiers de sortie, les outils de diagnostic expert et d'analyse comparative, ainsi qu'un ensemble de procédures pas à pas pour les scénarios de dépannage les plus courants.

Pour la documentation complète des modules et de l'API, consultez le Manuel de référence DTLknowsWhy.

Audience visée

Ce guide s'adresse aux administrateurs systèmes et au personnel de support gérant des postes Windows 10 et 11, ainsi qu'aux administrateurs réseau qui diagnostiquent des problèmes SMB, DNS et de connectivité. Aucune expérience de développement Python n'est requise. Une familiarité de base avec l'invite de commandes Windows est supposée.

Conventions

ConventionSignification
monospaceCommandes, noms de fichiers et texte à saisir exactement tel qu'il est affiché
italiqueTexte variable : substituer la valeur réelle
GrasTerme clé ou emphase importante
[option]Argument facultatif ; ne pas saisir les crochets
Note : toutes les adresses IP et les noms d'hôtes dans les exemples sont fictifs.
Attention : les encadrés de ce type signalent des étapes susceptibles de provoquer une perte de données ou une exposition à des risques de sécurité si elles ne sont pas suivies attentivement.
DocumentDescription
Manuel de référence DTLknowsWhySyntaxe complète des commandes, référence des modules et spécification du format de snapshot
Manuel de référence NetDTLApplication web PHP/MySQL d'inventaire réseau agentless
Manuel de référence DTLsaysWhatOutil d'inventaire système Windows
README.mdRésumé de démarrage rapide à la racine du dépôt

Chapitre 1 — Démarrage

1.1 Vue d'ensemble

DTLknowsWhy est un outil de diagnostic et d'analyse experte pour Windows. La plupart des outils de diagnostic répondent à la question : « Quelle est la configuration de cette machine ? » DTLknowsWhy est conçu pour répondre à : « Pourquoi ce problème se produit-il ? »

Exécutez-le sur une machine pour obtenir immédiatement une image complète de sa configuration : version du système d'exploitation, profil réseau, paramètres IP, services Windows clés et connectivité de base. Pointez-le optionnellement vers une seconde machine pour récupérer son snapshot complet via l'agent intégré, puis comparez les deux configurations pour identifier la cause probable de la différence.

OutilObjectif
DTLknowsWhy.exeGUI : sélecteur de situation, champ cible, sélecteur de langue, volet de résultats
DTLknowsWhy-CLI.exe / agent.pyCLI : même pipeline, sortie console, scriptable
DTLknowsWhy-Agent.exeAgent distant : s'exécute sur la machine cible ; fournit son snapshot via HTTP
expert.pyAnalyse un snapshot unique ; émet des résultats avec étapes de remédiation
compare.pyCompare deux snapshots ; identifie ce qui diffère entre une machine qui fonctionne et une qui ne fonctionne pas

1.2 Nouveautés de la version 2.1

Fonctionne sur toute locale Windows

Les versions précédentes analysaient la sortie texte d'ipconfig /all avec des libellés Windows en français et ne fonctionnaient correctement que sur Windows en français. La version 2.1 remplace entièrement ce moteur par des objets PowerShell et CIM structurés. L'adresse IP, le masque, la passerelle, les serveurs DNS, l'état DHCP et l'état NetBIOS sont désormais collectés de manière fiable sur toute locale Windows.

Compatibilité descendante : la structure du snapshot JSON est inchangée. Les règles expert, rapports et modules d'analyse existants continuent de fonctionner sans modification.

Interface graphique

Le nouvel exécutable DTLknowsWhy.exe présente une liste de situations à cocher, un champ de saisie pour la cible, un sélecteur de langue, un journal de progression en direct et un volet de résultats structurés. Sélectionnez une ou plusieurs situations décrivant votre problème, saisissez optionnellement l'IP ou le nom d'hôte de la machine à diagnostiquer, puis cliquez sur Lancer le diagnostic.

1.3 Prérequis

Aucune dépendance : copiez le dossier du projet sur n'importe quelle machine Windows avec Python et exécutez immédiatement. Aucun environnement virtuel, aucun accès internet requis.

1.4 Installation

Aucun installeur n'est nécessaire. Copiez le dossier du projet sur la machine cible. Les exécutables compilés peuvent être lancés directement. Les fichiers sources Python nécessitent l'installation de Python 3.10+.

Tous les fichiers de sortie sont écrits dans le répertoire depuis lequel l'outil est invoqué. Utilisez un répertoire de travail dédié pour garder les snapshots et rapports organisés.

1.5 Démarrage rapide

ObjectifCommande
Ouvrir l'interface graphiqueDTLknowsWhy.exe
Snapshot local, rapport en françaispython agent.py --snapshot --lang fr
Snapshot local + requête agent distantpython agent.py --target 172.17.7.3 --lang fr
Diagnostic expert sur le dernier snapshotpython expert.py --lang fr
Comparer deux machinespython compare.py REF_snap.json CIBLE_snap.json --lang fr
Démarrer l'agent distant (interactif)DTLknowsWhy-Agent.exe --listen
Installer l'agent distant comme service WindowsDTLknowsWhy-Agent.exe install

1.6 Sélection de la langue

DTLknowsWhy prend en charge le français et l'anglais pour toutes les sorties : libellés des rapports, messages de diagnostic, éléments d'interface et résultats du comparateur.

Dans la GUI : sélectionner la langue dans la liste déroulante du panneau de droite avant de lancer le diagnostic. La sélection s'applique immédiatement à tous les libellés et aux rapports générés. En CLI : passer --lang fr ou --lang en à toute commande. Le défaut est fr pour les fichiers sources Python.

Indépendance du système d'exploitation : la sélection de langue est complètement indépendante de la langue d'affichage de Windows. Un utilisateur avec Windows en anglais peut générer des rapports en français, et vice versa.

Chapitre 2 — Modes de fonctionnement

2.1 — Mode GUI

L'interface graphique est le point de départ recommandé pour le dépannage interactif. Elle fournit un workflow structuré et affiche les résultats dans un format lisible sans nécessiter de connaissance de la ligne de commande.
Lancement
DTLknowsWhy.exe [--target IP_OU_HÔTE] [--lang {fr,en}]
Workflow
Situations
SituationCible requiseDescription
SMB-001NonMachine invisible dans le voisinage réseau malgré un accès SMB fonctionnel
SMB-002Oui\\IP\partage fonctionne mais \\NOM\partage échoue — résolution de nom défaillante
SMB-003OuiAuthentification refusée après réinstallation (erreur 86 ou 1326)
LOCAL-NETWORKNonPasserelle inaccessible, IP incorrecte, panne DHCP ou profil Public
LOCAL-SMBNonLanmanServer ou LanmanWorkstation arrêté
REMOTE-WINDOWSOuiAccès à un partage Windows distant impossible (TCP 445 bloqué ou LanmanServer arrêté)
REMOTE-DEVICEOuiIdentifier et classifier un équipement réseau inconnu
Droits administrateur : si le processus n'est pas élevé, la GUI demande si l'on souhaite continuer sans droits administrateur. Certaines vérifications (configuration SMB, état BitLocker) retourneront des données incomplètes sans droits admin.

2.2 — Snapshot local (CLI)

Collecte une image complète de la machine locale et écrit trois fichiers de sortie. C'est le point de départ de toute session de diagnostic en ligne de commande.
Commande
python agent.py --snapshot [--lang {fr,en}]
Ce qui est collecté
Sortie

Trois fichiers nommés HÔTE_snapshot_HORODATAGE.json, HÔTE_report_HORODATAGE.txt et HÔTE_report_HORODATAGE.html. Les chemins sont affichés dans la console à la fin.

2.3 — Cible distante (CLI)

Exécute un snapshot local plus une batterie de tests de diagnostic distants contre une cible, et si DTLknowsWhy-Agent fonctionne sur cette cible, récupère son snapshot complet et effectue automatiquement une comparaison causale.
Commande
python agent.py --target {IP|nom_hôte} [--lang {fr,en}]
Ce qui est testé sur la cible
Sortie

Mêmes trois fichiers qu'un snapshot local. Si un snapshot de l'agent distant a été récupéré, il est également sauvegardé comme fichier JSON séparé et la comparaison causale est intégrée dans le rapport principal.

Conseil : --target exécute toujours un snapshot local en premier ; inutile de passer aussi --snapshot.
Adresse MAC : la MAC est lue depuis la table ARP locale et ne se résout que si la cible est sur le même segment Layer 2 et a été contactée récemment.
Performance : chaque sondage TCP utilise PowerShell Test-NetConnection avec un délai de 15 secondes. Si les quatre ports expirent, les tests distants prennent jusqu'à 60 secondes.

2.4 — Mode serveur

Démarre un serveur HTTP léger sur le port TCP 5050. Utilisé pour déclencher à distance un snapshot sur cette machine depuis une autre machine (ou depuis l'application d'inventaire NetDTL) sans lancer de commande interactive.
Commande
python agent.py --listen
Point d'accès HTTP
GET http://172.17.7.10:5050/snapshot?key=DTLSECRET&lang=fr

Retourne HTTP 200 avec le corps JSON du snapshot complet. Écrit les fichiers JSON, TXT et HTML localement à chaque requête.

Sécurité : pas de TLS. Clé API (DTLSECRET) stockée en clair dans agent/server.py. Modifier la clé par défaut avant tout déploiement. Réseaux locaux de confiance uniquement. Le port TCP 5050 doit être ouvert dans le pare-feu Windows (voir Annexe C).

2.5 — Agent distant

DTLknowsWhy-Agent s'exécute sur la machine cible et expose le même point d'accès HTTP de snapshot que le mode serveur. Peut fonctionner de manière interactive pour des sessions ponctuelles ou comme service Windows persistant.
Mode interactif
DTLknowsWhy-Agent.exe --listen
Mode service Windows
DTLknowsWhy-Agent.exe install
DTLknowsWhy-Agent.exe start

DTLknowsWhy-Agent.exe stop
DTLknowsWhy-Agent.exe remove
Quand utiliser chaque mode
ModeAdapté pour
Interactif (--listen)Diagnostics distants ponctuels ou occasionnels ; test de l'agent
Service WindowsMachines toujours disponibles pour la collecte distante ; intégration NetDTL
SmartScreen : au premier lancement, Windows Defender SmartScreen peut bloquer l'agent car il n'est pas signé numériquement. Voir Annexe D.

Chapitre 3 — Fichiers de sortie

Chaque collecte écrit trois fichiers dans le répertoire courant. Les fichiers partagent le même nom de base, encodant le nom d'hôte local et un horodatage.

3.1 — Snapshot JSON

Données brutes structurées. Format d'entrée principal pour expert.py et compare.py. Adapté à l'archivage, au scripting ou aux enregistrements de dépannage versionnés.
Nom de fichier
HÔTE_snapshot_AAAAMMJJ_HHMMSS.json
Clés de niveau supérieur (v2.1)
Stabilité du format : les clés principales (system, network, tests, services) sont inchangées par rapport à la v2.0. Les snapshots collectés avec les versions antérieures peuvent être analysés par les outils expert et compare de la v2.1 sans conversion.

3.2 — Rapport texte

Texte brut lisible, encodé en UTF-8, avec des colonnes de libellés à largeur fixe. Tous les libellés de section sont traduits selon le flag --lang. Adapté à l'impression, à l'attachement à un ticket d'incident ou à l'inclusion dans un e-mail.
Nom de fichier
HÔTE_report_AAAAMMJJ_HHMMSS.txt
Sections
Exemple (français)
Rapport technique DTLknowsWhy
==================================================
Rapport généré le : 07/06/2026 09:34:42

==================================================
MACHINE LOCALE
==================================================

Identité
--------------------------------------------------
Nom d'hôte          : PREDATOR
Utilisateur         : didier
Administrateur      : Oui

Système
--------------------------------------------------
Système d'exploitation : Windows 11 Pro 23H2
Build               : 22631

Réseau
--------------------------------------------------
Profil              : Private
Adresse IPv4        : 172.17.7.10
Masque              : 255.255.255.0
Passerelle          : 172.17.7.1
Serveurs DNS        : 172.17.7.1
DHCP                : Non
NetBIOS             : Oui (via DHCP)

3.3 — Rapport HTML

Fichier HTML autonome avec un thème sombre style terminal. À ouvrir dans n'importe quel navigateur — aucun serveur requis. Les valeurs sont codées par couleur : vert pour les positives, rouge pour les négatives, gris pour les inconnues. Les sections services Windows et tests locaux sont repliables.
Nom de fichier
HÔTE_report_AAAAMMJJ_HHMMSS.html
Sections
Logo : le rapport charge netdtl_logo.png depuis le même répertoire via un chemin relatif. Placer le logo à côté du rapport pour qu'il s'affiche correctement.

Chapitre 4 — Outils experts

Les outils experts travaillent sur des snapshots précédemment collectés. Ils ne collectent pas de nouvelles données ; ils analysent ce qui a déjà été capturé et produisent une sortie de diagnostic structurée.

4.1 — Diagnostic expert

Analyse un snapshot unique et produit des résultats structurés avec niveaux et étapes de remédiation. Conçu pour identifier rapidement les problèmes de configuration réseau sur une machine.
Commandes
# Analyser le dernier snapshot automatiquement
python expert.py --lang fr

# Analyser un snapshot spécifique
python expert.py PC-BEN-002_snapshot_20260607_093442.json --lang fr
Détection automatique

Si aucun fichier snapshot n'est spécifié, expert.py sélectionne automatiquement le fichier *_snapshot_*.json modifié le plus récemment dans le répertoire courant. Le workflow CLI typique en deux étapes est : exécuter python agent.py --snapshot, puis python expert.py sans arguments.

Niveaux de résultat
NiveauSignificationAction
[OK]Aucun problème pour cette vérificationAucune
[INFO]Information — à noterAucune
[WARN]Problème potentiel — peut causer des problèmesExaminer la remédiation
[FAIL]Problème confirmé — cause probable du symptômeAppliquer la remédiation immédiatement
Ce qui est analysé

4.2 — Analyse comparative

Compare deux snapshots — un de la machine de référence (qui fonctionne correctement) et un de la machine sous investigation — pour identifier quelles différences de configuration expliquent le plus probablement le problème. Disponible en français et en anglais via --lang.
Commande
python compare.py REF_snap.json CIBLE_snap.json [--lang {fr,en}]
Workflow typique

Le PC B ne peut pas accéder aux partages réseau que le PC A atteint sans difficulté. Collecter un snapshot sur chaque machine, copier les deux fichiers JSON dans le même répertoire et exécuter compare.py. La sortie indiquera si la cause est un profil réseau Public, un service SMB arrêté, un problème de connectivité de passerelle, une différence de produit de sécurité ou un écart de paramètre de configuration.

Tags de résultat
Tag (français)Signification
[CAUSE CERTAINE]La différence cause directement le problème (ex. service SMB arrêté sur la cible)
[CAUSE PROBABLE]Une configuration connue pour bloquer la fonctionnalité en question
[CAUSE POSSIBLE]Une différence susceptible de contribuer selon le scénario
[OBSERVÉ]Constat factuel (ex. partages SMB accessibles listés) ; aucun problème impliqué
[À VÉRIFIER]Configuration notable méritant une vérification manuelle
[INFORMATION MANQUANTE]Champ absent du snapshot cible ; aucune conclusion possible
Ce qui est comparé
Directionnel : seules les déviations de la cible par rapport à la référence sont signalées. Exécuter expert.py sur chaque snapshot individuellement pour une analyse absolue de chaque machine.

Chapitre 5 — Procédures de dépannage

Ce chapitre fournit des procédures pas à pas pour les problèmes SMB et réseau Windows les plus courants identifiés lors de l'utilisation opérationnelle de DTLknowsWhy.

5.1 — SMB-001 : Machine invisible dans le voisinage réseau

La machine n'apparaît pas dans le voisinage réseau de l'Explorateur Windows, mais l'accès direct via \\IP ou \\NOM fonctionne. net view peut retourner l'erreur 6118.
Diagnostic

Sélectionner SMB-001 dans la GUI et lancer le diagnostic sur la machine invisible, ou exécuter python agent.py --snapshot --lang fr sur elle.

Cause fréquente

FDResPub (Publication des ressources de découverte) est arrêté. La visibilité dans le voisinage réseau est gérée par FDResPub et fdPHost, qui sont complètement indépendants du protocole SMB. SMB peut fonctionner parfaitement pendant que la machine est invisible dans l'Explorateur.

Résolution
sc config fdrespub start= delayed-auto
net start fdrespub
Note sur l'erreur 6118

L'erreur « La liste des serveurs de ce groupe de travail n'est pas disponible actuellement » (erreur 6118 de net view) est normale et attendue depuis Windows 10 1709. Le service de navigation réseau SMBv1 est désactivé par défaut. Ne pas tenter de réactiver SMBv1. Utiliser directement \\NOM_MACHINE ou \\IP dans l'Explorateur.

5.2 — SMB-002 : L'accès par IP fonctionne, l'accès par nom échoue

\\192.168.x.x\partage fonctionne mais \\NOM_MACHINE\partage échoue ou est très lent. SMB lui-même fonctionne ; seule la résolution de nom est défaillante.
Diagnostic
ping -4 NOM_MACHINE
nslookup NOM_MACHINE
nbtstat -A ADRESSE_IP
Causes fréquentes
Résolution

Si le ping par nom fonctionne mais que l'accès SMB par nom est toujours lent : le délai est généralement causé par Windows qui énumère tous les partages quand on parcourt \\NOM plutôt que d'aller directement vers un partage spécifique. Mapper les partages directement au démarrage pour éviter le délai d'énumération :

net use Z: \\NOM_MACHINE\partage /persistent:yes

Vérifier également le Gestionnaire d'identification pour des jetons périmés susceptibles de provoquer des tentatives d'authentification échouées répétées avant que le bon compte soit essayé.

5.3 — SMB-003 : Authentification refusée (Erreur 86 ou 1326)

Après une réinstallation Windows, les identifiants sont refusés avec « Le mot de passe réseau spécifié est incorrect » (erreur 86) ou « Le nom d'utilisateur ou le mot de passe est incorrect » (erreur 1326), alors que les mêmes identifiants fonctionnent depuis d'autres machines.
Étape 1 : effacer les identifiants mémorisés
net use * /delete /y

Puis ouvrir Panneau de configuration → Gestionnaire d'identification → Informations d'identification Windows et supprimer toutes les entrées liées à la machine cible (y compris les entrées MicrosoftAccount:target=...). Après une réinstallation avec un compte Microsoft, Windows peut mémoriser un jeton MSA qui prend la priorité sur les identifiants locaux ou de domaine.

Étape 2 : utiliser le bon format de compte
net use \\MACHINE\IPC$ /user:DOMAINE\prenom.nom

Utiliser le nom de domaine (ex. SC\anne.honnyme), pas le nom de la machine locale (MACHINE\anne). Après une réinstallation en Workgroup, la machine ne résout plus automatiquement le contexte de domaine.

Étape 3 : vérifier LmCompatibilityLevel

Si l'erreur 1326 persiste avec le bon format de compte, vérifier si LmCompatibilityLevel est absent du registre (DTLknowsWhy affichera null dans le snapshot). Une nouvelle installation Windows avec la clé absente utilise le défaut système (NTLMv2 uniquement), que certains serveurs ou configurations Workgroup anciens peuvent rejeter.

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
  -Name LmCompatibilityLevel -Value 1 -Type DWord
# Redémarrage requis

La valeur 1 active la négociation LM+NTLM+NTLMv2. Si cela résout le problème, le serveur cible n'accepte pas NTLMv2 seul.

5.4 — TCP 445 bloqué : net view erreur 53 par IP

Le ping vers l'IP cible réussit, mais net view \\IP retourne « Le chemin réseau n'a pas été trouvé » (erreur 53). Comme l'erreur se produit en utilisant une adresse IP (et non un nom), la résolution de noms n'est pas en cause — c'est un blocage TCP pur sur le port 445.
Confirmer le blocage
Test-NetConnection IP_CIBLE -Port 445

Si TcpTestSucceeded : False, procéder aux vérifications ci-dessous.

Vérifier LanmanServer sur la cible
sc query lanmanserver

Si pas Running : sc start lanmanserver

Vérifier le pare-feu Windows sur la cible

Vérifier que la règle entrante pour le port TCP 445 existe et est activée. Test facile : désactiver temporairement le pare-feu Windows sur la cible et réessayer. Si l'accès est rétabli, le pare-feu est la cause. Réactiver le pare-feu et créer la règle entrante appropriée.

Note sur le ping IPv6

Si ping NOM_MACHINE résout vers une adresse IPv6 link-local (fe80::...), cela ne confirme pas que SMB est accessible sur IPv4. Toujours vérifier avec ping -4 NOM_MACHINE pour obtenir l'adresse IPv4, puis tester Test-NetConnection IP -Port 445.

5.5 — La découverte réseau se désactive toute seule

Le profil réseau est Privé et tous les services de découverte (FDResPub, fdPHost, SSDPSRV, upnphost, Dnscache) sont Running, mais la case « Découverte du réseau » dans les paramètres Windows repasse à désactivée immédiatement après l'avoir cochée.
Vérifier les règles pare-feu
Get-NetFirewallRule | Where-Object {
    $_.DisplayGroup -like '*Network Discovery*' -or
    $_.DisplayGroup -like '*Découverte*'
} | Select-Object DisplayName, DisplayGroup, Enabled

Si seules des règles Wi-Fi Direct apparaissent et qu'aucune règle du groupe « Découverte du réseau » n'est listée, les règles ont été supprimées (pas seulement désactivées). Cela peut se produire après un durcissement de sécurité, une GPO ou un outil de sécurité tiers.

Résolution : réactiver les règles supprimées
# Windows en français
netsh advfirewall firewall set rule group="Découverte du réseau" new enable=Yes

# Windows en anglais
netsh advfirewall firewall set rule group="Network Discovery" new enable=Yes

Si la commande signale « Aucune règle ne correspond aux critères spécifiés », les règles ont été entièrement supprimées. Réinitialiser le pare-feu aux paramètres par défaut ou importer les règles depuis une machine saine. Si les règles réapparaissent mais que la case repasse à désactivée au bout de quelques minutes, un outil de sécurité tiers (ex. un EDR ou antivirus) réapplique une stratégie. Identifier l'outil et configurer une exception.

Vérification GPO

Exécuter gpresult /r. Si « Type de domaine » affiche « Windows NT 4 » ou « Station de travail autonome » sans GPO listée, le problème n'est pas la Stratégie de groupe — c'est le pare-feu local ou un outil de sécurité.

Annexes

Annexe A — Droits administrateur

DTLknowsWhy fonctionne sans droits administrateur, mais certaines données seront incomplètes. Le tableau suivant indique ce qui est affecté.

FonctionnalitéSans droits adminAvec droits admin
Infos système, réseau, tests locauxDonnées complètesDonnées complètes
Requêtes d'état des servicesHabituellement complet ; peut être partiel sur les machines durciesComplet
Configuration SMB client/serveurPeut être inaccessibleComplet
État BitLockernull dans le snapshotComplet
Requêtes Security CenterPeut nécessiter une élévationComplet
Champ is_adminfalse — le moteur expert émet un [WARN]true

Pour exécuter en tant qu'administrateur : cliquer avec le bouton droit sur l'icône de l'invite de commandes ou PowerShell, choisir Exécuter en tant qu'administrateur, puis lancer l'outil depuis cette session élevée.

Annexe B — Classification de la cible

À la fin des tests distants, l'outil attribue un target_type à la machine testée. Les règles sont appliquées dans l'ordre ; la première correspondance l'emporte.

ClassificationBadgeCondition
probable_mobile_appleBleuLe nom d'hôte résolu contient iphone ou ipad
probable_mobile_androidBleuLe nom d'hôte résolu contient android
probable_windowsVertTCP 445 ou TCP 139 ouvert — probablement un poste Windows
probable_deviceOrangeTCP 80 ou TCP 443 ouvert — équipement réseau ou objet connecté
unknown_network_deviceOrangeMAC résolue mais aucun port ouvert reconnaissable
unknown_hostGrisPing réussi mais pas de MAC et pas de port ouvert
unreachableRougePing échoué
Note sur le TTL : si nmap ou un ping en mode verbeux signale un TTL d'environ 62–63 pour une machine supposée être un PC Windows, il s'agit presque certainement d'une appliance Linux ou d'un équipement réseau (TTL initial 64, moins les sauts). Les PC Windows démarrent à un TTL de 128. DTLknowsWhy classifiera selon les ports ouverts (probable_device ou unknown_network_device) ; vérifier avec arp -a pour identifier le fabricant depuis l'adresse MAC.

Annexe C — Configuration du pare-feu pour l'agent distant

DTLknowsWhy-Agent écoute sur le port TCP 5050. Ce port doit être ouvert en entrée dans le pare-feu Windows de la machine cible avant que le poste de diagnostic puisse s'y connecter.

Créer la règle depuis une invite de commandes élevée sur la machine cible :

netsh advfirewall firewall add rule name="DTLknowsWhy Agent" ^
  dir=in action=allow protocol=TCP localport=5050

Ou via l'interface graphique : Pare-feu Windows Defender → Paramètres avancés → Règles de trafic entrant → Nouvelle règle → Port → TCP → 5050 → Autoriser la connexion.

Annexe D — Avertissement SmartScreen

Au premier lancement, Windows Defender SmartScreen peut afficher :

Windows a protégé votre PC.
Microsoft Defender SmartScreen a empêché le démarrage d'une application non reconnue.

Ce comportement est attendu pour les exécutables non signés numériquement. Pour continuer :

Annexe E — Limitations connues

Annexe F — Historique des versions

VersionDateModifications
2.1.07 juin 2026Collecte réseau indépendante de la langue (PowerShell/CIM) ; GUI Tkinter avec sélecteur de langue ; clés collecteurs lm_compatibility_level et bitlocker_status ; comparateur entièrement internationalisé ; 15 règles expert issues de sessions opérationnelles ; plus de 280 clés i18n ; format JSON compatible avec les versions antérieures
2.0.06 juin 2026Agent distant ; mode service Windows ; point d'accès HTTP de snapshot ; comparaison causale locale/distante ; rapports HTML enrichis ; moteur de règles expert
1.2.0Serveur de snapshot distant expérimental
1.0.0Version initiale : diagnostics et rapports locaux