# 📂 Script : Importation Massive d'Utilisateurs AD ## 📝 Description Ce script PowerShell (`insert_users.ps1`) permet d'automatiser la crĂ©ation de comptes utilisateurs dans **Active Directory** Ă  partir d'un fichier source CSV. **FonctionnalitĂ©s principales :** * **CrĂ©ation automatique des utilisateurs** : Importe les identitĂ©s depuis le fichier CSV. * **Gestion dynamique des OUs** : Si l'OU (DĂ©partement) indiquĂ©e dans le CSV n'existe pas, le script la crĂ©e automatiquement. * **Gestion des mots de passe** : Convertit les mots de passe en chaĂźne sĂ©curisĂ©e (SecureString). * **SĂ©curitĂ©** : L'option "L'utilisateur doit changer le mot de passe Ă  la prochaine ouverture de session" est activĂ©e par dĂ©faut (`ChangePasswordAtLogon`). --- ## ⚙ PrĂ©requis Avant de lancer le script, assurez-vous de disposer des Ă©lĂ©ments suivants : 1. **Environnement :** Windows Server (ContrĂŽleur de domaine) ou une machine Windows avec les outils **RSAT** (Remote Server Administration Tools) installĂ©s. 2. **Permissions :** Le script doit ĂȘtre exĂ©cutĂ© avec un compte **Administrateur du Domaine** (Domain Admin). 3. **Module PowerShell :** Le module `ActiveDirectory` doit ĂȘtre prĂ©sent sur la machine. --- ## 📊 Format du fichier CSV Le script attend un fichier nommĂ© par dĂ©faut : `happy_koalas_employees_with_passwords.csv` (modifiable dans la variable `$CsvFilePath` du script). * **DĂ©limiteur :** Point-virgule (`;`) * **Encodage recommandĂ© :** UTF-8 * **EntĂȘtes obligatoires :** | En-tĂȘte | Description | Exemple | | :--- | :--- | :--- | | `FirstName` | PrĂ©nom | Jean | | `LastName` | Nom de famille | Dupont | | `UserName` | Identifiant de connexion (SAMAccountName) | jdupont | | `Password` | Mot de passe initial (Doit respecter la complexitĂ© AD) | P@ssw0rd123! | | `Email` | Adresse email | jean.dupont@entreprise.com | | `Department` | Nom du dĂ©partement (deviendra l'OU) | IT | | `JobTitle` | Titre du poste | Technicien | **Exemple de contenu CSV :** FirstName;LastName;UserName;Password;Email;Department;JobTitle Jean;Dupont;jdupont;SuperPass123!;jean.dupont@domaine.com;Comptabilite;Comptable Marie;Curie;mcurie;Science2024!;marie.curie@domaine.com;R&D;Chercheuse --- ## 🔧 Configuration du script Avant la premiĂšre exĂ©cution, vous **devez Ă©diter** le fichier `insert_users.ps1` pour l'adapter Ă  votre infrastructure spĂ©cifique. ### 1. Modifier le Domaine (Variable `$DomainDN`) Remplacez la valeur par le Distinguished Name (DN) de votre racine. * *Ligne approx. 14* # Exemple pour le domaine "monentreprise.local" : $DomainDN = "DC=monentreprise,DC=local" ### 2. Modifier le suffixe UPN (Variable `$UserParams`) Par dĂ©faut, le script attribue `@happykoalas.com`. Modifiez cette ligne pour correspondre Ă  votre domaine de messagerie/connexion. * *Ligne approx. 68* UserPrincipalName = "$SamAccount@monentreprise.com" ### 3. Chemin du CSV (Optionnel) Si vous changez le nom du fichier CSV, mettez Ă  jour la variable `$CsvFilePath`. --- ## 🚀 Utilisation 1. Ouvrez **PowerShell en tant qu'administrateur**. 2. Si ce n'est pas dĂ©jĂ  fait, autorisez l'exĂ©cution des scripts sur votre machine : Set-ExecutionPolicy RemoteSigned 3. Naviguez vers le dossier contenant le script et le CSV : cd "C:\Chemin\Vers\Le\Dossier" 4. ExĂ©cutez le script : .\insert_users.ps1 --- ## ⚠ DĂ©pannage courant (Troubleshooting) * **Erreur "Le terme 'Import-Module' n'est pas reconnu..."** * *Cause :* Le module Active Directory n'est pas installĂ©. * *Solution :* Installez les outils RSAT pour AD DS. * **Erreur "Impossible de trouver le fichier..."** * *Cause :* Le nom du fichier CSV dans le script ne correspond pas au nom rĂ©el du fichier, ou le fichier n'est pas dans le mĂȘme dossier. * **Erreur de crĂ©ation d'utilisateur (Mot de passe)** * *Cause :* Le mot de passe dans le CSV ne respecte pas la politique de sĂ©curitĂ© du domaine (longueur, complexitĂ©). * *Solution :* Mettez des mots de passe plus complexes dans le CSV ou dĂ©sactivez temporairement la complexitĂ© des mots de passe dans les GPO (dĂ©conseillĂ©). * **Erreur "L'OU n'existe pas" (malgrĂ© la tentative de crĂ©ation)** * *Cause :* ProblĂšme de droits ou `$BaseDN` incorrect. --- **Auteur :** 7ka1 **Version :** 1.0