Retour aux projets

TreeSize KMS (ktree)

Outil en ligne de comande, développé durant mon alternance chez Koesio Managed Services - analyse l’espace disque de postes Windows, pilotable à distance via le RMM avec un installation et une gestion des versions semi-automatique.

Windows PowerShell

Mes objectifs

Remplacer les logiciels graphiques d’analyse disque par une commande légère pilotable à distance sur l’ensemble du parc client Koesio.

« Merci pour ce script, je viens de le tester et j’aime beaucoup son approche … c’est clair et plutôt rapide. »

  Aymeric *** ・ Administrateur Système & Réseau, KOESIO · avril 2026

Ce que j’ai fait concrètement

1

Moteur de scan C# embarqué

Un composant écrit en C# est intégré directement dans le script PowerShell. Il analyse les dossiers en parallèle (jusqu’à 32 tâches simultanées), affiche les résultats sous forme d’arborescence avec des jauges de remplissage. Le terminal ci-dessus et ci-dessous montrent une sortie réelle obtenue chez lors des tests de mise en production en interne.

Windows PowerShell
2

Cache binaire et snapshots

Après le premier scan, les résultats sont sauvegardés dans un fichier cache (format binaire), permettant un rechargement quasi instantané lors des analyses suivantes. Il est aussi possible de prendre des « instantanés » à différents moments et de comparer visuellement l'évolution de l'espace disque entre deux états. C'est typiquement ce que l'on retrouve dans le terminal ci-contre, avec les évolutions de taille et de nombre de fichiers indiquées à côté de chaque dossier.

Schéma pipeline GitLab CI/CD - 4 stages : test, sécurité, build, release
3

Pipeline CI/CD GitLab

Un pipeline GitLab automatise les tests, la sécurité, la compilation et la publication. Les vérifications (Pester, PSScriptAnalyzer, gitleaks) assurent qualité et sécurité à chaque modification.

Le résultat

Déployé en interne sur des postes Windows, l'outil analyse plus d'un million de fichiers en quelques minutes et recharge les résultats quasi instantanément grâce à un système de cache. Une nouvelle fonctionnalité permet désormais de comparer l'occupation disque dans le temps. Plusieurs cycles d'optimisation ont réduit de plus de moitié les pics de mémoire sur certaines étapes clés de l'exécution, passant de ~600 Mo à ~260 Mo de mémoire ram par exemple. Piste d'amélioration identifiée : étendre ces optimisations aux étapes restantes.

3 compétences acquises

PowerShell avancé + C#

Intégration d’un composant .NET dans PowerShell, scan parallèle, cache binaire.

CI/CD GitLab

Tests Pester, analyse statique PSScriptAnalyzer, pipeline bloquant sur main.

Gestion de projet réelle

Feedback client, itérations, compromis performance/mémoire en conditions de production.

Mikael Bazzaro - TreeSize KMS · commande ktree · Koesio Managed Services · 2026