ADFlowManager

Documentation

Tout ce qu’il faut pour installer, configurer et utiliser ADFlowManager.

Démarrage

ADFlowManager est une application de bureau Windows qui remplace les workflows de gestion Active Directory basés sur PowerShell par une interface native rapide et moderne.

Prérequis :
- Windows 10 (1809+) ou Windows 11
- Connectivité au domaine Active Directory
- Compte utilisateur du domaine (admin recommandé pour toutes les fonctionnalités)
- ~100 Mo d'espace disque

Le runtime .NET 10 Desktop est inclus dans l’installateur — aucune installation séparée n’est requise.

Connexion & Authentification

Au premier lancement, vous êtes invité à saisir vos identifiants AD :

  1. Domaine — nom de votre domaine Active Directory
  2. Identifiant — votre compte de domaine (sAMAccountName)
  3. Mot de passe — votre mot de passe de domaine

Se souvenir de moi stocke les identifiants en toute sécurité dans le Windows Credential Manager — aucun stockage en clair.

Auto-login est disponible pour les environnements de confiance et peut être activé dans Paramètres > Général.

Gestion des Utilisateurs

  • Créer des utilisateurs avec support complet des attributs AD sur 5 onglets (Identité, Contact, Organisation, Groupes, Options)
  • Auto-générer le SamAccountName, UserPrincipalName et l’email depuis le prénom/nom selon le format configuré
  • Détecter les doublons en temps réel et incrémenter automatiquement (jane.doe → jane.doe1)
  • Validation en temps réel de chaque champ (injection LDAP, max 20 caractères, conformité mot de passe)
  • Générer des mots de passe forts automatiquement (copie presse-papiers, effacé après 60 s)
  • Assigner des groupes AD via une liste consultable avec cases à cocher
  • Cibler l’UO correcte depuis un menu déroulant des Unités Organisationnelles du domaine
  • Configurer les options du compte (expiration, changer au premier login, compte désactivé)

Flux de création utilisateur

AUTO-FILL Génération des champs
SamAccountNameUPNEmailDisplayName + Dédup (jane.doe → jane.doe1)
VALIDATE Validation en temps réel
Chars LDAPmax 20 charsformat emailpolitique pwd → IsFormValid
LDAP #1 Écriture UserPrincipal newUser.Save()
sAMAccountNameUPNgivenNamesndisplayNamemaildescriptiontelephoneNumberuserAccountControlaccountExpiresunicodePwdpwdLastSet
LDAP #2 Écriture DirectoryEntry de.CommitChanges()
mobilephysicalDeliveryOfficeNamecompanydepartmenttitle
GROUPES Assignation des groupes 1 écriture par groupe

foreach group → FindByIdentity() → Members.Add(user) → group.Save()

AUDIT Journal d'audit
AuditService.LogAsync()SQLite (local ou réseau)CreateUserAddUserToGroup
TERMINÉ Navigation → Page Utilisateurs + effacement mot de passe

Attributs AD écrits

Attribut ADSourceÉcriture
sAMAccountNameAuto-généré depuis Prénom / NomLDAP #1
userPrincipalName{SAM}@{domaine}LDAP #1
givenNamePrénomLDAP #1
snNomLDAP #1
displayNameFormat configurableLDAP #1
mail{SAM}@{domaine}LDAP #1
descriptionChamp descriptionLDAP #1
telephoneNumberChamp téléphoneLDAP #1
userAccountControlOptions du compteLDAP #1
accountExpiresExpiration (jours)LDAP #1
unicodePwdMot de passeLDAP #1
pwdLastSet0 si "Changer au prochain login"LDAP #1
mobileChamp mobileLDAP #2
physicalDeliveryOfficeNameChamp bureauLDAP #2
companyChamp sociétéLDAP #2
departmentChamp départementLDAP #2
titleChamp posteLDAP #2

Note : L’écriture LDAP #2 (DirectoryEntry.CommitChanges()) est une opération séparée. Un échec sur cette passe est journalisé en Warning — l’utilisateur est déjà créé dans AD à ce stade.

Créer un nouveau membre de l’équipe IT :

  1. Naviguer vers Créer un utilisateur
  2. Saisir le prénom et le nom — le login, l’UPN et l’email sont générés automatiquement
  3. Vérifier (et ajuster si besoin) le SamAccountName dans l’onglet Identité
  4. Remplir l’onglet Contact (téléphone, mobile) et l’onglet Organisation (poste, département)
  5. Dans l’onglet Groupes, rechercher et cocher les groupes AD à assigner
  6. Dans l’onglet Options, définir le mot de passe (ou cliquer sur Générer) et les options du compte
  7. Sélectionner l’UO cible depuis le menu déroulant
  8. Cliquer sur Créer — l’utilisateur est créé dans AD avec tous les groupes assignés

Tutoriel — Créer un utilisateur depuis un template

Créer un utilisateur depuis un template

Gestion des Groupes

La page Groupes permet de parcourir et gérer tous les groupes AD.

Parcourir les groupes :
Utilisez la barre de recherche pour filtrer par nom. Les groupes se chargent dans le panneau gauche.

Gérer les membres :
Cliquez sur un groupe pour ouvrir sa vue détaillée. Depuis là, vous pouvez :
- Ajouter / supprimer des membres individuellement
- Ajout / suppression en masse (coller une liste d'identifiants)

Créer un groupe :
Cliquez sur Nouveau groupe et choisissez :
- Nom et description
- Type : Sécurité ou Distribution
- Portée : Local au domaine, Globale ou Universelle
- OU cible

Conseil performances : Si votre AD comporte beaucoup de groupes, activez "Ne pas charger les groupes au démarrage" dans Paramètres > Active Directory pour améliorer le temps de démarrage.

Templates

  • Créer des templates réutilisables capturant : poste, département, société, bureau, UO cible, groupes AD, options du compte
  • Appliquer un template lors de la création d’un utilisateur — le formulaire se pré-remplit instantanément
  • Stocker les templates en local (AppData\ADFlowManager\Templates\) ou sur un partage réseau pour toute l’équipe
  • Fallback automatique vers le stockage local si le partage réseau est inaccessible
  • Copier depuis un utilisateur existant — extraire le profil organisationnel d’un compte AD comme point de départ
  • Sauvegarder le formulaire en cours directement comme nouveau template
  • Importer / Exporter les templates en JSON
  • Gérer les templates depuis la page dédiée (créer, supprimer, exporter)

Flux du système de templates

STOCKAGE Stockage des templates (JSON)

LOCAL (défaut)

AppData\ADFlowManager\Templates\
{GUID}_Nom.json

RÉSEAU (si configuré)

\\SERVER\Share$\...\Templates\
{GUID}_Nom.json

Fallback automatique → Local si réseau inaccessible

CHARGEMENT Chargement des templates ouverture "Créer utilisateur"

GetFiles("*.json") → Désérialiser → Tri alphabétique → Menu déroulant

APPLICATION Template appliqué pré-remplissage instantané
PosteDépartementSociétéBureauUO cibleExpirationGroupes
CRÉATION AD Création de l'utilisateur 2 écritures LDAP + N groupes + Audit

IMPORT

OpenFileDialog → Désérialiser → Nouveau GUID → Sauvegarder

EXPORT

Sélectionner → SaveFileDialog → Sérialisation JSON

COPIER UTILISATEUR

Rechercher AD → Extraire profil org + UO + groupes

Structure d'un template (JSON)

{
  "id":          "a1b2c3d4-e5f6-...",
  "name":        "Stagiaire IT",
  "description": "Profil standard pour les stagiaires du département IT",
  "createdBy":   "admin.doe",
  "createdAt":   "2025-09-01T08:30:00",
  "modifiedAt":  "2025-09-01T08:30:00",
  "jobTitle":    "Stagiaire",
  "department":  "IT",
  "company":     "ACME Corp",
  "office":      "Paris",
  "defaultOU":   "OU=Stagiaires,OU=IT,DC=acme,DC=local",
  "groups":      ["Domain Users", "VPN-Stagiaires", "Imprimantes-Paris"],
  "mustChangePasswordAtLogon": true,
  "isEnabled":   true,
  "expirationDays": 90
}

Créer un template "Stagiaire IT" :

  1. Naviguer vers Templates et cliquer sur + Nouveau template
  2. Renseigner le nom, le poste (Stagiaire), le département (IT) et l’UO cible
  3. Ajouter les groupes AD à assigner automatiquement
  4. Définir l’expiration (ex. 90 jours) et les options du compte
  5. Sauvegarder — le template est disponible pour toute l’équipe si un partage réseau est configuré

Utiliser le template pour créer un utilisateur :

  1. Naviguer vers Créer un utilisateur
  2. Sélectionner Stagiaire IT depuis le menu déroulant des templates
  3. Les champs organisation, groupes et UO se pré-remplissent instantanément
  4. Saisir uniquement le prénom et le nom — le login est généré automatiquement
  5. Définir le mot de passe et cliquer sur Créer

Tutoriel — Créer un template pour les administrateurs du domaine

Création d'un template pour les administrateurs du domaine

Audit & Historique

Chaque opération AD effectuée via ADFlowManager est enregistrée dans un journal d'audit.

Accéder au journal :
Naviguer vers Historique dans le menu principal.

Filtrer :
- Sélecteur de plage de dates
- Opérateur (quel utilisateur a effectué l’action)
- Type d’action (créer, modifier, désactiver, activer, reset mot de passe, changement de groupe)
- Entité cible (nom de l’utilisateur ou du groupe)

Exporter :
Cliquer sur Exporter CSV pour télécharger les résultats filtrés. Utilisable pour le reporting de conformité.

Base de données d’audit réseau :
Définir un chemin SQLite partagé dans Paramètres > Audit. Plusieurs opérateurs écriront dans la même base, offrant une visibilité à toute l’équipe.

Politique de rétention :
Configurer la purge automatique des anciens logs dans Paramètres > Audit (ex. garder les 90 derniers jours).

Paramètres

Les paramètres sont organisés en 7 onglets :

OngletDescription
GénéralLangue, auto-login, comportement au démarrage
Active DirectoryDomaine, identifiants, filtres OU
CacheTTL (60 min – 24h), rafraîchissement manuel, emplacement du cache
LogsNiveau de log, emplacement du fichier, rétention
AuditChemin DB d'audit (local ou réseau), politique de rétention
TemplatesChemin de stockage des templates (local ou partage réseau)
À proposInformations de version, vérification des mises à jour, liens

Sécurité & Vie Privée

ADFlowManager est conçu avec une approche privacy-first :

  • Zéro télémétrie — aucune donnée ne quitte votre infrastructure
  • Windows Credential Manager — les identifiants sont stockés en toute sécurité par l'OS
  • Protection mémoire — identifiants en mémoire de session uniquement ; aucun stockage longue durée en clair
  • Nettoyage automatique du presse-papiers — les mots de passe générés sont effacés du presse-papiers après 60 secondes
  • Validation anti-injection LDAP — toutes les saisies utilisateur sont sanitisées avant les requêtes AD
  • Blocage du path traversal — les chemins de fichiers sont validés
  • Logs sécurisés — les informations sensibles n’apparaissent qu’au niveau DEBUG

Déploiement de Packages

Créez, signez et déployez des packages d’installation sur les ordinateurs du domaine — entièrement via des protocoles Windows natifs. Aucun agent, aucun WinRM requis.

  • Créer des packages (.exe, .msi, .ps1) avec métadonnées complètes : nom, version, catégorie, tags
  • Détection automatique des métadonnées — glissez n’importe quel .exe ou .msi : nom, version, éditeur et arguments silencieux sont pré-remplis automatiquement
  • Déployer sur un ou plusieurs ordinateurs du domaine simultanément
  • Signer les packages avec une clé ECDSA P-256 pour garantir l’intégrité avant tout déploiement
  • Vérification automatique du hash SHA-256 à chaque déploiement
  • Configurer des étapes pré/post installation : vérification de processus, validation de fichier, nettoyage
  • Importer / Exporter au format JSON pour partage d’équipe
  • Stocker localement ou sur un partage réseau

Détection Automatique des Métadonnées :

Lorsque vous ajoutez un installeur, ADFlowManager lit les métadonnées intégrées pour pré-remplir le formulaire.

  • .exe — lit FileDescription, ProductName, ProductVersion, CompanyName depuis la ressource version PE. Les signatures des éditeurs connus sont détectées pour suggérer le bon argument silencieux : /S, /silent, --silent, /quiet, /norestart.
  • .msi — interroge la table des propriétés MSI : ProductName, ProductVersion, Manufacturer. Les arguments silencieux standards (/qn /norestart) sont pré-remplis automatiquement.
MACHINE ADMIN
POSTE CIBLE

Copie installeur

via \\PC\admin$

1
SMB · 445

Reçoit le fichier installeur

Création service

entrée SCM temporaire

2
RPC · 135

Service Windows créé

Progression remontée

3
LOCAL SYS

Exécuté en LOCAL SYSTEM

Surveillance

polling + lecture log

4
SMB+SCM

Polling statut + log

Nettoyage

service + fichiers supprimés

5
SMB+SCM

Service et fichiers supprimés

Résultat : Succès / Échec rapporté par machine
ÉtapeProtocolePortDescription
Copie installeurSMB445via \\PC\admin$
Création serviceRPC / SCM135Service Windows temporaire
ExécutionLocal SystemAucun credential transmis
SurveillanceSMB + SCM445 / 135Polling statut + lecture log
NettoyageSMB + SCM445 / 135Service et fichiers supprimés

Sécurité :L’installeur s’exécute en LOCAL SYSTEM sur le poste cible. Aucun mot de passe administrateur n’est transmis à la machine distante. L’authentification repose exclusivement sur les droits Kerberos du compte de domaine connecté.

Signature des Packages (ECDSA P-256) :

  • Clé privée stockée dans le Windows Certificate Store (CurrentUser\\My — CN : ADFlowManager Package Signing)
  • La signature couvre : hash installeur · nom · version · arguments · type · chemin · étapes
  • Un package signé affiche un badge Signé ✓ — toute modification invalide la signature
  • L’édition d’un package signé nécessite de détenir la clé privée correspondante
  • Statuts possibles : Signé ✓ · Signature invalide · Non signé

Exemple d’Utilisation — Déployer Google Chrome:

  1. Naviguer vers Déploiement de Packages et cliquer sur + Nouveau Package
  2. Renseigner nom, version, catégorie
  3. Dans l’onglet Installeur, déposer le .msi — nom, version et arguments silencieux sont auto-remplis
  4. (Optionnel) Cliquer sur Signer le package
  5. Dans la liste des Ordinateurs, cocher les postes cibles
  6. Cliquer sur Déployer et confirmer — déploiement en parallèle sur tous les postes
  7. Suivre la progression en temps réel ; consulter le résultat par poste à la fin

Tutoriel — Création et déploiement d'un package sur un PC

Création et déploiement d'un package

Tutoriel — Use case : package non signé

Déploiement d'un package non signé

Problèmes Connus (Bêta)

  • Le changement de langue nécessite le redémarrage de l’application
  • Certaines étiquettes UI peuvent ne pas être entièrement traduites (~95% FR/EN)
  • Les templates réseau nécessitent des permissions d’écriture sur le dossier partagé
  • Le premier chargement du cache peut prendre du temps selon la taille de l’AD
  • 7 warnings NU1701 (package CredentialManagement legacy — fonctionnel)
  • ~200 warnings CA1416 (appels API Windows — attendu pour application Windows uniquement)

Utilisation de l’IA

Ce site et sa documentation ont été construits avec l'aide d'outils IA comme outil de productivité. La structure du site, le contenu bilingue et cette documentation ont été rédigés et affinés avec l'aide de l'IA. Chaque information technique a été vérifiée et reflète le comportement réel de l'application.

ADFlowManager, c'est une autre histoire. Fin 2022, j'ai développé un outil interne pour mon entreprise afin d'accélérer tous les workflows IT : gestion des utilisateurs, création automatique de comptes en environnement hybride, gestion des boîtes mail et licences Office 365, Intune, SharePoint, et bien plus encore. ADFlowManager est une réécriture complète open source de cette même idée, repartie de zéro sur de meilleures bases. Même vision, architecture plus propre.

L'architecture du logiciel, la logique métier et chaque décision qui le compose sont les miennes. L'IA a aidé sur l'échafaudage, la génération de code et le débogage. Chaque ligne qui compte a été relue, comprise et adaptée par moi avant d'être intégrée.

L'objectif n'est pas de livrer des fonctionnalités le plus vite possible, mais de les livrer correctement. Je prends le temps de vérifier tout le code avant de l'intégrer. La progression peut être lente, mais la qualité passe avant tout.

Je suis ouvert aux demandes de nouvelles fonctionnalités et aux audits pour améliorer le logiciel. Mon objectif est un bon équilibre entre sécurité et confort d'utilisation, pas un verrouillage total. Un compromis solide et pratique pour les workflows du quotidien.

Si vous êtes réfractaire à l'utilisation de l'IA dans ce projet, je comprends parfaitement. Si cela signifie qu'ADFlowManager n'est pas pour vous, c'est tout à fait acceptable. N'hésitez pas à m'en parler.

Pour le contexte complet sur ce projet et l'utilisation de l'IA, voir la page Contribuer.