Il y a des logiciels de diagnostic partout. J'ai fini par écrire le mien, et il est disponible depuis aujourd'hui : LDI12 Diagnostic. Un seul fichier, gratuit, à copier sur une clé USB.

Pourquoi en écrire un de plus

La plupart des outils que j'ai essayés font une chose que je n'arrive pas à leur pardonner : ils affirment. Un chiffre s'affiche, une jauge passe au rouge, un bouton propose d'optimiser, et rien ne dit d'où sort le chiffre ni ce que le bouton va toucher. Quand quelqu'un me demande pourquoi son ordinateur rame, je n'ai pas envie de lui montrer une jauge. J'ai envie de lui montrer ce que j'ai mesuré.

Le déclencheur, c'est un PC confié par un proche pour un disque plein. L'outil que j'utilisais annonçait quatre-vingt-quinze pour cent d'occupation et proposait un nettoyage. Le vrai problème était ailleurs : quatre profils d'anciens salariés que personne n'avait supprimés, avec leurs photos et leurs archives de courrier. Aucun nettoyage automatique ne devait toucher à ça. Il fallait le voir, le comprendre, et décider avec le client.

La règle que je me suis donnée

Ne jamais affirmer ce que je n'ai pas mesuré. Elle a l'air évidente, elle est en réalité contraignante, et c'est elle qui a décidé de toute l'architecture du logiciel.

Concrètement : quand une information ne peut pas être lue, elle n'est pas remplacée par une estimation. Elle est affichée absente, avec la raison. Sur un Windows 7 qui n'expose pas la santé des disques NVMe, le rapport dit que cette version de Windows ne la donne pas. Sur une machine dont le service qui répond aux requêtes système est cassé, il le dit aussi, au lieu de rendre une page vide qui laisserait croire que tout va bien.

La note sur cent suit la même logique. Un contrôle qui n'a pas pu être mené ne fait pas baisser la note : il sort du calcul, et le nombre de contrôles réellement effectués est affiché à côté. Une machine notée quatre-vingt-dix sur dix-huit contrôles, ce n'est pas la même chose qu'une machine notée quatre-vingt-dix sur cinquante.

Ce qu'il fait pendant les quatre minutes

Trente-neuf modules parcourent la machine : les disques et leur santé réelle, la mémoire, les températures quand le matériel les donne, les erreurs que l'ordinateur a lui-même consignées, le démarrage, les tâches planifiées, les logiciels installés, les comptes, l'horloge, les mises à jour, et tout le réseau jusqu'au chemin qu'emprunte un paquet pour sortir.

Cent quarante-neuf règles transforment ensuite ce relevé en phrases. Pas en codes d'erreur : en phrases. « Le disque système signale des secteurs réalloués » vaut mieux que « SMART 05 = 12 », et le rapport donne quand même la valeur brute pour qui veut la vérifier.

Les réparations, et la ligne que je ne franchis pas

Le logiciel sait réparer dix-sept choses : vider un cache DNS, renouveler une adresse, remettre le fichier hosts dans l'état où Windows le livre, relancer les services qui trouvent les imprimantes du réseau, réinitialiser le pare-feu, contrôler les fichiers système, nettoyer les fichiers temporaires, sauvegarder les dossiers personnels vers un disque externe en vérifiant chaque fichier copié.

Aucune ne part sur un simple clic. Chacune affiche d'abord la commande exacte qu'elle va lancer, ce qu'elle va modifier, ce qu'elle ne touchera pas, et ce qui sera perdu au passage. La réinitialisation du pare-feu prévient que les autorisations accordées depuis l'installation disparaîtront. Le nettoyage montre la liste des fichiers avant d'en supprimer un seul. Et rien ne s'exécute sans qu'un point de restauration puisse être créé d'abord, en un bouton.

C'est aussi pour cette raison qu'il n'y a pas de bouton « tout réparer ». Un outil qui répare tout sans montrer ce qu'il touche est un outil qui vous fera perdre quelque chose un jour, et ce jour-là, personne ne saura quoi.

Avec quoi il est écrit

En C#, avec une interface WPF, sur le .NET Framework 4.6.2. Ce n'est pas la technologie la plus à la mode, et c'est volontaire : cette version est présente d'origine sur tout Windows depuis Windows 10, et s'installe sur un Windows 7 SP1. Un outil de diagnostic qui commencerait par demander d'installer un environnement d'exécution serait inutile sur la moitié des machines qu'on m'apporte, souvent justement celles qui vont mal.

L'exécutable est compilé en AnyCPU et embarque ses dépendances : un seul fichier, qui tourne en 64 bits sur un système 64 bits et en 32 bits ailleurs. Les mesures viennent des interfaces de Windows, appels natifs en premier, et la sortie d'un outil en ligne de commande seulement quand il n'y a pas d'autre chemin. Les modules qui peuvent bloquer sur une machine abîmée s'exécutent dans un second processus, pour qu'un blocage n'emporte pas l'application. Neuf cents tests automatisés accompagnent le tout.

Le code est lisible par qui veut, sur GitHub, avec les documents de conception qui vont avec. Ce n'est pas un logiciel libre au sens où l'on pourrait en tirer sa propre version, la licence ne le permet pas, mais un outil de diagnostic qui affirme des choses sur votre machine devrait au moins pouvoir être lu.

Le cas de la température, et de votre antivirus

Il y a un point que je préfère expliquer avant qu'il ne surprenne quelqu'un. Windows ne permet à aucun programme ordinaire de lire la température d'un processeur. Ni le capteur d'Intel ni celui d'AMD ne sont accessibles sans un pilote qui s'adresse directement au matériel. Tous les outils qui affichent cette température en installent un : HWMonitor, HWiNFO, Core Temp, Afterburner, et les autres.

Ces pilotes ouvrent un accès très large au matériel, et Microsoft en a placé plusieurs sur sa liste de pilotes vulnérables. Quand un tel pilote est chargé, Defender le signale, sous un nom qui désigne le pilote et pas le logiciel qui l'utilise. L'alerte est donc réelle, elle est connue, et elle ne dit rien de mauvais sur l'outil qui l'a chargé.

Ma réponse tient en une ligne : dans LDI12 Diagnostic, cette lecture est désactivée par défaut. Aucun pilote n'est chargé tant que vous n'avez pas actionné vous-même l'interrupteur prévu dans les réglages, et l'écran vous dit ce que cela engage avant que vous le fassiez. Tout le reste du diagnostic fonctionne sans, y compris les températures des disques et de la carte graphique, qui se lisent, elles, sans rien installer.

Ce qu'il ne fait pas

Ce n'est pas un antivirus : il regarde si les protections sont actives et à jour, il ne cherche rien et ne retire rien. Il ne promet pas d'accélérer la machine, il montre ce qui la ralentit. Il ne supprime aucune donnée personnelle de lui-même. Et il n'envoie rien de sa propre initiative : pas de compte, pas d'inscription, pas de statistiques d'usage.

Deux connexions existent, et toutes les deux se demandent. La première est la vérification de mise à jour : proposée au premier lancement, refusable d'un clic, elle ne transmet que le numéro de version installée. Sans réseau, il ne se passe rien, ni message d'erreur ni attente.

La seconde est l'envoi d'un dossier vers Klarvi, l'application avec laquelle je suis mes interventions. Une fois l'analyse faite, le rapport peut se ranger directement à côté de la fiche du client, ce qui m'évite de le recopier et évite au client d'attendre. Sans configuration d'atelier, cette option n'existe nulle part dans l'interface. Avec, elle affiche d'abord la liste exacte de ce qui quitterait la machine : le nom du poste, la référence du dossier, la note, une empreinte qui sert à reconnaître le même ordinateur d'une fois sur l'autre, et les documents tels que le client les reçoit. Ni le diagnostic brut, ni les comptes Windows, ni les réseaux sans fil du logement. C'est un geste volontaire, pas un réglage par défaut, et cela le restera.

Le télécharger, et vérifier que c’est bien lui

Le fichier est sur la fiche du logiciel. Il n'est pas encore signé numériquement, donc Windows annoncera un éditeur inconnu au premier lancement. C'est pour cela que l'empreinte SHA-256 est affichée à côté du téléchargement : lancez Get-FileHash dans PowerShell sur le fichier téléchargé et comparez les deux chaînes. Si elles sont identiques, le fichier est exactement celui que j'ai publié.

Le certificat de signature viendra. En attendant, je préfère afficher une empreinte vérifiable plutôt que demander qu'on me fasse confiance.

La suite

Le logiciel continue d'avancer au rythme des machines que je répare, parce que c'est là que se trouvent les vrais cas. La prochaine étape est la signature du fichier, puis la vérification sur six machines de générations différentes, Windows 7 en premier. Si vous l'essayez et qu'il se trompe sur votre matériel, écrivez-moi : un rapport qui affirme quelque chose de faux m'intéresse plus qu'un compliment.