J’avais besoin d’exporter mes clés Wi-Fi à la suite de mon changement de portable. Par réflexe, j’ai lancé une recherche Google et je suis tombé sur cette page :
Mais cela ne fonctionne pas, et je ne sais pas pourquoi.
Pas le temps de faire d’autres recherches : je demande à ChatGPT 4o.
j'ai besoin d'exporter en powershell la liste des wifi et du contenu de la clé avec un windows français
Voici le script qu’il me propose. Je le teste, et cela fonctionne.
Créer un fichier de sortieCréer un fichier de sortie
$output = "Profils-WiFi.txt"
"Liste des profils Wi-Fi et mots de passe enregistrés :`n" | Out-File -Encoding utf8 $output
# Lister tous les profils enregistrés
$profils = netsh wlan show profiles | Select-String "Profil Tous les utilisateurs"
foreach (profil in $profils) { # Extraire le nom du profil $nomProfil = (profil -split ":")[1].Trim()
# Extraire les détails du profil avec le mot de passe
$details = netsh wlan show profile name="$nomProfil" key=clear
# Extraire le mot de passe
$mdp = ($details | Select-String "Contenu de la clé") -replace ".*:\s*", ""
# Écrire dans le fichier
"SSID : $nomProfil`nMot de passe : $mdp`n---" | Out-File -Encoding utf8 -Append $output
}
Il faut vraiment que je perde l’habitude de commencer par Google quand j’ai besoin d’un script.
Je voulais une ligne de commande. Une seule. Sauf que je ne l’avais pas dit à ChatGPT.
Ce que j’ai demandé
Ma demande : « j’ai besoin d’un script powershell pour planifier un reboot du serveur à 19h ce soir ».
Ce que j’ai reçu
Un vrai script, propre et commenté : on définit l’heure, on la convertit en date, on crée une action, un déclencheur, un compte d’exécution, et on enregistre une tâche planifiée « Reboot à 19h ». Une bonne dizaine de lignes.
Pas du tout ce que j’attendais. Et pourtant, relisez ma demande : j’ai écrit « script ». ChatGPT m’a donné un script. Il a fait exactement ce que je lui ai dit, pas ce que j’avais en tête.
C’est comme demander à un collègue de « préparer la commande » : vous pensez à la liste des fournitures, lui prépare les cartons. Même mot, pas le même résultat en tête.
Le mot qui manquait : monoligne
Je relance avec le format voulu : « peux tu me faire une version monoligne ».
Et là, une seule ligne Register-ScheduledTask, exactement ce que je voulais. Je la teste d’abord sur un serveur de test, évidemment : un redémarrage planifié au mauvais endroit, ça ne pardonne pas.
Bref
Avec une IA, le format de la réponse fait partie de la demande. Une ligne, un tableau, trois puces, un script : dites-le dès la première phrase. Ça évite un aller-retour, et un script entier à relire pour rien.
« Cédric, on attend, on ne sait pas ce qui se passe. »
C’est par cette phrase qu’un client m’a parlé de son logiciel de gestion. Tous les jours, ses utilisateurs validaient une action, puis attendaient. Sans savoir pourquoi.
L’application tourne sur SQL Server. Je suis donc allé voir dans le moniteur d’activité. Le 31 juillet, il affichait 15 tâches en attente… pour 3 utilisateurs connectés.
Un problème de verrou. Imaginez trois personnes qui attendent le même dossier : tant que l’une le garde, les autres ne peuvent rien faire. Ce n’était pas le seul problème du serveur, mais c’est celui qui expliquait l’attente à chaque validation.
D’abord, remettre de l’ordre dans l’atelier
J’ai commencé par une analyse de performance, pour faire baisser la charge du processeur et le nombre de requêtes : des index ajoutés, des paramètres du serveur revus, la base temporaire réorganisée.
Ensuite, le matériel
J’ai fait ajouter de la mémoire, avec une règle simple : assez de mémoire pour que la base tienne entière en mémoire. Et j’ai déplacé les fichiers de la base temporaire (tempdb) sur un disque SSD, ce que Microsoft recommande d’ailleurs : la base temporaire doit être sur un stockage rapide.
Le lendemain matin, la capture du moniteur affichait 6 tâches en attente.
Le client a vu la différence sur beaucoup d’actions. Mais l’attente à la validation, elle, persistait. On avait de meilleurs outils, le dossier restait bloqué.
Changement de casquette
Un verrou dans un logiciel du commerce, ce n’est plus mon terrain : c’est celui de l’éditeur. Encore fallait-il prouver à son prestataire que le serveur n’était pas en cause. J’avoue, ça a été long. J’ai fini par le convaincre d’installer la base sur l’un de ses propres serveurs et de la tester en conditions réelles, avec plusieurs utilisateurs en même temps.
Trois heures avec le support de l’éditeur
Une fois le prestataire convaincu, nous avons eu accès au niveau 3 du support de l’éditeur. Trois heures d’intervention. Je n’ai pas eu tous les détails, mais voici ce que j’ai retenu :
en personnalisant la base, le prestataire avait rendu certains champs obligatoires, et ces contraintes bloquaient ;
enregistrer des documents dans la base de données est déconseillé (pour des fichiers de plus de 1 Mo en moyenne, Microsoft conseille d’ailleurs de les ranger dans le système de fichiers avec FILESTREAM plutôt que dans les tables) ;
et le passage à SQL Server 2019 était recommandé.
Un mois plus tard
Zéro tâche en attente sur la capture, et 93 requêtes par seconde traitées. L’attente n’a pas totalement disparu, mais elle ne gêne plus le travail de personne. Et surtout, la facturation se fait sans demander à tout le monde de se déconnecter.
La leçon que j’en garde : quand le serveur a été remis d’aplomb et que l’attente reste, il faut arrêter d’ajouter de la mémoire et aller chercher l’éditeur.
Est-ce que vous êtes comme moi ? J’ai de plus en plus l’impression que Microsoft n’intègre que ses propres solutions dans Windows.
Prenez la touche Copilot : impossible de l’attribuer au logiciel de mon choix. Windows accepte de la réaffecter, mais seulement à une application empaquetée et signée au format de Microsoft. Une touche entière du clavier, réservée à son écosystème.
Et je ne parle pas des publicités dans Windows, ni de ces annonces dans le menu Démarrer : autant de petites choses qui polluent la journée de travail.
Microsoft avance ses pions, écran après écran. Mais qui peut encore lui imposer une ouverture ?
Une consigne, une image, et voilà un ticket de restaurant prêt à glisser dans une note de frais ? J’ai voulu voir jusqu’où l’IA irait. Comme avec un nouveau collègue : je commence simple, et je précise à chaque erreur.
Premier essai : simple, trop simple
Je commence avec ChatGPT :
j’ai besoin d’un ticket de caisse de restaurant d’un montant TTC de 93 € avec un TVA à 10 % pour 2 repas du restaurant LaMartine en date du 29/8/2024 au format image
Je retente avec Gemini. Moins de dégâts.
Mais ça ne passe pas : l’adresse est fausse, la TVA a disparu, et le QR code sort de nulle part. Ça ressemble à un ticket, tant qu’on ne le relit pas.
Deuxième essai : je donne l’adresse
j’ai besoin d’un ticket de caisse de restaurant d’un montant TTC de 93 € avec un TVA à 10 % soit 9 € pour 2 repas du restaurant LaMartine, adresse : 3132 Route du Tunnel73370Le Bourget-du-Lac – Téléphone : 04 79 25 01 03 en date du 29/8/2024 au format image sans QRCode
Mieux. Mais le calcul de la TVA est encore faux.
Troisième essai : je donne le HT
j’ai besoin d’un ticket de caisse de restaurant d’un montant HT de 84 € et TTC de 93 € avec un TVA à 10 % soit 9 € pour 2 repas du restaurant LaMartine, adresse : 3132 Route du Tunnel73370Le Bourget-du-Lac – Téléphone : 04 79 25 01 03 en date du 29/8/2024 au format image sans QRCode
Encore des erreurs, mais on progresse.
Quatrième essai : je dicte les lignes
j’ai besoin d’un ticket de caisse de restaurant LaMartine, adresse : 3132 Route du Tunnel 73370Le Bourget-du-Lac – Téléphone : 04 79 25 01 03 : 2 Repas – 84 € TVA 10 % – 9 € Total TTC de 93 € en date du 29/8/2025 au format image sans QRCode
Là, plus aucun progrès. Même en lui dictant chaque ligne.
Et puis je me suis fait attraper
À force d’insister, Gemini a fini par refuser : créer un tel document « pourrait potentiellement être utilisé de manière frauduleuse ». Bien vu.
Sauf qu’il existe plein d’autres façons de fabriquer un ticket, et j’ai rusé. Résultat : un ticket photographié sur une table en bois, très réaliste… au nom de « LaManrtine ». Presque.
Et avec un seul prompt, sur un autre restaurant, l’IA sort ce reçu du premier coup :
j’ai besoin d’un ticket de caisse de restaurant d’un montant TTC de 63 € avec un TVA à 10 % d’un montant de 5.72 € pour 2 repas du restaurant Italoria adresse Rond-Point de l’aéroport, 73420 Voglans en date du 29/10/2024 au format image
Propre au premier coup d’œil. Deux lignes « TOTAL », pas de montant HT : un comptable attentif tique. Un service RH débordé, peut-être pas.
Le vrai sujet : les services RH
Fabriquer une fausse note de frais devient à la portée de n’importe qui. Pour les services RH et la comptabilité, chaque ticket devient une pièce à vérifier.
Petite bonne nouvelle : dans les métadonnées de l’image, la source indiquée est une IA. Je les ai affichées avec XnView MP, un excellent lecteur d’images.
Mauvaise nouvelle : ces métadonnées se modifient en deux clics.
La facture électronique ne nous sauvera pas
Je pensais que la facture électronique allait régler le problème : le restaurant enverrait la facture directement depuis sa caisse, et la note de frais disparaîtrait. En lisant la fiche des impôts consacrée aux notes de restaurant, c’est plus nuancé.
Depuis le 1er septembre 2026, toutes les entreprises doivent pouvoir recevoir des factures électroniques. Mais si le salarié paie de sa poche sans rien demander, le restaurant le traite comme un particulier : il lui remet un ticket et déclare la vente à l’administration (l’« e-reporting »). Le ticket papier, et donc la note de frais, restent bien là jusqu’à 150 €. La facture électronique n’arrive que si le salarié demande une facture au nom de l’entreprise, en donnant son numéro SIREN.
Autrement dit, le faux ticket a encore de beaux jours devant lui. Et pour identifier à quel commercial appartient une facture reçue directement, les impôts prévoient un simple code salarié interne : il faudra encore faire le lien soi-même.
PS : le restaurant Lamartine est un excellent restaurant. Le vrai.
Aujourd’hui, une maintenance m’a fait gagner 40 Go. Bonne nouvelle. Sauf qu’une question m’est restée en tête : faut-il attendre un an pour retrouver ces 40 Go sur le serveur de sauvegarde ?
Mon réglage par défaut
Je gère les sauvegardes de mes clients, et par défaut je règle la conservation selon la méthode dite « grand-père, père, fils », sur un an :
une sauvegarde vieille d’un an ;
une sauvegarde par mois sur l’année ;
une par semaine sur 4 semaines ;
une par jour sur les 7 derniers jours ;
et la dernière sauvegarde de la journée.
C’est le classement des archives d’une petite entreprise : les dossiers récents à portée de main, quelques repères plus anciens pour revenir en arrière. L’ANSSI ne dit pas autre chose : dans son guide sur la sauvegarde, elle donne comme exemple 15 jours de sauvegardes journalières, 1 an de mensuelles et 5 ans d’annuelles.
Avec Active Backup de Synology, la déduplication fait le reste.
Sur cet exemple, le gain atteint presque 7 To pour 14 postes sauvegardés. Ça marche très bien. Mais mes 40 Go libérés me ramènent toujours à la même question : combien de temps garder ce qui ne sert plus aujourd’hui, mais pourrait servir demain ?
L’ERP, ou le registre qui n’a plus ses dernières pages
Prenons l’ERP, sauvegardé en entier deux fois par jour. Je garde la sauvegarde de midi 7 jours, celle du soir pendant des mois.
Reste la vraie question : en cas d’incident, laquelle restaurer ? Revenir à une vieille sauvegarde de l’ERP, c’est reprendre un registre de commandes auquel il manque les dernières pages.
Je l’ai vécu. Et au final, le prestataire a jugé plus intéressant d’extraire les données de la base SQL endommagée que de restaurer la version intacte, qui avait une semaine. Une sauvegarde saine mais vieille d’une semaine valait moins qu’une base abîmée mais à jour.
Le ransomware change la donne
Face à un ransomware, il faut au minimum 30 jours de conservation : c’est ce que recommandent beaucoup d’éditeurs de sécurité, parce que l’intrusion peut être bien plus ancienne que l’attaque visible.
Les chiffres leur donnent raison. Mandiant, qui enquête sur les intrusions dans le monde entier, mesure 11 jours en médiane entre l’entrée d’un attaquant et sa découverte en 2024, et 26 jours quand c’est un tiers qui donne l’alerte. Pendant ce temps, vos sauvegardes enregistrent tranquillement un système déjà compromis.
D’où un second piège, que l’ANSSI signale : une sauvegarde peut contenir les implants de l’attaquant. Restaurer, c’est parfois réinstaller la porte dérobée avec le reste.
Le nombre de versions
Il existe une autre façon de régler la conservation : au lieu d’une durée, on fixe un nombre de versions à garder. Très pratique pour les fichiers bureautiques. Inutilisable pour l’ERP : chaque jour est une nouvelle version, et dix versions ne font que dix jours.
C’est la différence entre garder les corrections successives d’un devis et conserver l’activité quotidienne de l’entreprise. Ce n’est pas le même usage.
Alors, quelle durée ?
Il n’y a pas de réponse simple. Elle dépend de ce que contient la sauvegarde et de l’usage que j’en attends. Mon réglage par défaut tient la route, mais ces situations me poussent à le remettre en question, client par client.
Une seule certitude, que l’ANSSI écrit noir sur blanc : les sauvegardes doivent être testées régulièrement. Je vous le rappelle à ma façon : une sauvegarde qui n’est pas testée n’est pas une sauvegarde, c’est une prière.
Je voulais faire avancer le travail pendant la nuit. Pas voir mon quota fondre au réveil.
La délégation contre le « mode fainéant »
Mon assistant IA a une fâcheuse tendance : quand la tâche est longue, il en fait une partie et s’arrête. Le « mode fainéant », comme je l’appelle. Ma parade : la délégation. Il découpe le travail en missions, et un Raspberry Pi les exécute la nuit pendant que je dors. Comme préparer les dossiers du lendemain pour un collègue.
Premier effet, plutôt bon. J’en profite pour alléger les règles qu’il lit au démarrage : la liste de ses outils n’est plus chargée d’office, seulement quand il en cherche un. Résultat mesuré sur le Pi : le premier appel passe de 230 000 à 111 000 jetons, et les missions tombent à 32 000.
Logique : on consulte le catalogue quand on cherche un outil, on ne le relit pas en entier à chaque fois qu’on entre dans l’atelier. Sauf que côté quota, quelque chose cloche.
70 % du quota en moins d’une heure
Petit rappel du fonctionnement : avec mon abonnement, j’ai droit à une certaine quantité d’usage par tranche de 5 heures, partagée entre Claude et Claude Code. Quand la tranche est vide, on attend qu’elle se recharge.
Et là, j’en brûle 70 % en moins d’une heure. La veille déjà, alerte : quota dépassé. Il m’arrive de dépasser les 80 %, ce n’est pas un drame. Mais deux jours de suite au-delà de 70 % en moins d’une heure ? Il y a un loup.
Le soir, le mur.
Limite de 5 heures atteinte à 100 %, réinitialisation dans 3 h 57 min ; hebdomadaire tous modèles à 6 % ; fenêtre de contexte à 862 500 jetons sur 1 million ; forfait Max (5x).
En six mois, ce n’était presque jamais arrivé. Plus rien à faire ce soir-là. Je sais par quoi commencer le lendemain.
Sauf que le matin, d’autres urgences passent devant, et ça ne rate pas. La mission du jour ? Traiter mes notes Joplin. Une tâche que je fais tous les jours, sans le moindre souci jusqu’ici.
Limite de 5 heures à 69 % (réinitialisation dans 3 h 25 min) ; hebdomadaire à 17 % ; cette session : 4,65 $US, 100 % Opus, 913 100 jetons écrits, 546,9 millions de jetons relus depuis le cache.
Regardez la dernière ligne : 913 000 jetons écrits, mais 546,9 millions relus depuis le cache. Une relecture en cache coûte dix fois moins cher qu’une lecture normale. Dix fois moins de 546 millions, ça reste énorme.
L’enquête
Je demande à Claude de chercher ce qui consomme autant derrière une tâche aussi banale.
La cause, mesurée dans les journaux du Pi : la chaîne de missions a consommé 78 millions de jetons en 254 appels, pour 0,5 million réellement écrits. Chaque mission chargeait 230 000 jetons de règles (CLAUDE.md et 26 règles, 418 Ko), relus à chaque appel, jusqu’à 500 000 en fin de mission, depuis que toutes les règles du PC étaient descendues sur le Pi le 14/09.
Le coupable n’était pas la tâche. Depuis le 14 septembre, toutes les règles du PC descendaient sur le Pi : c’est comme demander à un collègue de relire tout le classeur des procédures de l’entreprise avant chaque geste. 78 millions de jetons pour en écrire un demi-million : la délégation avançait, mais avec une valise de 418 Ko à chaque pas.
La parade : un brief par tâche
Pour l’instant, j’adopte la solution qui me semble la meilleure : le « brief compilé ». Au lieu du classeur entier, chaque mission reçoit une fiche taillée pour elle.
Un prompt optimisé par tâche : le « brief compilé ». Sur le PC, un prompt autonome par tâche (objectif, fichiers d’entrée, format de sortie, critères de réussite contrôlés, seulement les lignes de règles utiles) ; sur le Pi, la mission part d’un dossier sans règles et exécute le brief. La nuance : la qualité dépend alors entièrement du brief, dont la compilation doit être contrôlée avant l’envoi.
Le revers est écrit dans la capture : tout repose désormais sur la qualité du brief. Un brief bâclé, et la mission part dans le décor sans filet.
Trois ans. C’est le temps qu’il aura fallu pour que quelqu’un trouve la petite porte que j’avais déplacée sur mon site.
Dimanche 4 octobre, mon outil de surveillance m’a remonté cinq tentatives de connexion ratées. Cinq adresses IP différentes, le tout en moins de trois minutes. Un visiteur qui se trompe de mot de passe, ça arrive. Cinq machines qui frappent à la même porte à la suite, en revanche, ce n’est pas un hasard : c’est quelqu’un qui teste la poignée.
La porte de service
Sur un WordPress, l’accès à l’administration se trouve par défaut au même endroit pour tout le monde : /wp-admin. Autant dire que c’est la première adresse que les robots essaient.
Il y a trois ans, j’avais donc fait simple : j’ai déplacé cette entrée vers un autre chemin, /jemeconnect. Pas une ligne de code. Une extension gratuite, WPS Hide Login, et dix secondes de réglage : vous choisissez l’adresse, elle remplace /wp-admin.
C’est comme déplacer l’entrée du personnel d’une boutique. La porte existe toujours, elle n’est simplement plus là où tout le monde la cherche. Et ça a marché pendant trois ans.
Ce qui a tenu
Une porte cachée finit toujours par être trouvée. C’est pour ça qu’elle ne travaillait pas seule. Derrière, WP Login Lockdown (de son nom complet Login Lockdown & Protection) limite les tentatives de connexion et bloque ceux qui insistent. Il fait partie des extensions que j’installe d’office pour protéger un site, et il a fait exactement son travail : les cinq essais se sont cassé le nez.
La leçon tient en une phrase : cacher l’entrée vous fait gagner du temps, c’est le verrou derrière qui vous protège.
Et maintenant ?
La porte est grillée, donc on la déplace à nouveau. Il me reste à choisir une nouvelle adresse de connexion pour le site. Et cette fois, je la garde pour moi.
Faut-il remplacer un outil qui vieillit, mais qui fait encore le travail ? Je viens de boucler trois mois de maintenance sur des logiciels métiers écrits en VB6. Et cette question ne m’a pas lâché.
Petit rappel : le VB6 est sorti en 1998, et Microsoft a arrêté le support de son outil de développement le 8 avril 2008. Dix-huit ans plus tard, les applications tournent toujours : Windows 11 les exécute encore. Obsolète ? Oui, clairement. Mais continuer à les maintenir coûte moins cher que d’en développer une nouvelle. C’est la vieille machine du petit atelier : tant qu’elle tourne et qu’on sait la régler, on l’entretient plutôt que de la remplacer.
C’est tout le dilemme du logiciel fait sur mesure. Il colle à votre façon de travailler, comme un aménagement sur mesure dans une boutique : plus efficace, plus performant. Mais il faut le faire évoluer, et un jour le refaire.
Bienvenue dans une autre époque
Travailler en VB6, c’est changer d’ère. Pour garder un système cohérent, les applications métiers tournent dans un environnement contrôlé, sur un serveur RDS. Chaque collaborateur travaille donc au quotidien en bureau à distance : un écran pour le RDS (l’ex-TSE), un écran pour les applications locales. Deux postes côte à côte, comme le comptoir et l’arrière-boutique.
Côté maintenance, le saut de génération se sent dans les gestes les plus simples :
la molette qui refuse de faire défiler le code ;
les points d’arrêt qui s’évaporent le soir, dès qu’on ferme l’application ;
des outils de débogage tout droit sortis de la belle époque de Windows 95 ;
des formulaires dessinés dans le code, sans éditeur visuel ;
et j’en passe.
Le bilan
Trois mois plus tard : des bugs corrigés dans des fonctions de gestion des dates, de nouvelles demandes intégrées dans les formulaires et les états. De quoi tenir avec l’existant, le temps que la nouvelle version de la solution métier arrive.
Un livre papier introuvable, et voilà que sa version numérique devient hors de prix. C’est la petite surprise que je me suis prise en cherchant ma prochaine lecture.
Tout part d’une vidéo sur les romans de SF qu’il faut avoir lus. Dans la liste, je note La Romance de Ténébreuse, de Marion Zimmer Bradley. Direction Amazon.
Tome 1 : 17,99 € le fichier
Le tome 1 (l’intégrale qui regroupe La planète aux vents de folie, Reine des orages et La belle fauconnière) n’est plus vendu neuf en papier : il ne reste que de l’occasion, à 4,27 €. La version Kindle, elle, est bien là… à 17,99 €. Pour un fichier.
Tome 2 : 7,99 €
Je regarde le tome 2. Le papier est toujours disponible, à 20,40 €, et le Kindle redescend à 7,99 €. Plus de deux fois moins cher que le tome 1.
Même série, même auteure, même format numérique : 10 € d’écart. La seule différence, c’est que l’un des deux n’existe plus en papier neuf.
Et ce n’est même pas Amazon
Petit détail qui change tout : en France, ce n’est pas Amazon qui décide du prix d’un livre numérique. Depuis la loi du 26 mai 2011, c’est l’éditeur qui le fixe, et tous les vendeurs doivent l’appliquer. Si le Kindle du tome 1 coûte 17,99 €, c’est un choix de l’éditeur, pas un algorithme qui s’emballe.
C’est comme une petite boutique qui augmenterait le prix de sa version numérique dès que le produit physique manque en rayon. Le stock papier disparaît, et c’est le fichier, qui ne s’épuise jamais, qui coûte plus cher. Autant vous dire que je trouve ça abusé.