From 40144fe4fc12d576401ecf2bf8229508c755dc45 Mon Sep 17 00:00:00 2001 From: 7ka1 <7ka1@noreply.localhost> Date: Thu, 20 Nov 2025 15:23:34 +0000 Subject: [PATCH] =?UTF-8?q?T=C3=A9l=C3=A9verser=20les=20fichiers=20vers=20?= =?UTF-8?q?"/"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ update_date.ps1 | 40 +++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 readme.md create mode 100644 update_date.ps1 diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..a0a67b4 --- /dev/null +++ b/readme.md @@ -0,0 +1,84 @@ +# 🐹 Automatisation Gestion Utilisateurs - Happy Koalas + +Ce projet contient une suite d'outils pour automatiser la gestion des comptes utilisateurs de l'entreprise **Happy Koalas**. Il couvre le cycle de vie de la crĂ©ation des comptes (avec mots de passe sĂ©curisĂ©s) jusqu'Ă  la dĂ©sactivation ciblĂ©e. + +## 📂 Contenu du projet + +Le projet se compose de trois scripts principaux : + +1. **`generate_passwords.py`** (Python) : GĂ©nĂšre des mots de passe alĂ©atoires et sĂ©curisĂ©s pour une liste d'employĂ©s. +2. **`insert_users.ps1`** (PowerShell) : CrĂ©e les utilisateurs dans l'Active Directory et les place dans les bonnes OUs. +3. **`update_expiration_date.ps1`** (PowerShell) : Script de maintenance pour expirer automatiquement certains comptes (Production/Assembler). + +--- + +## 🛠 PrĂ©requis + +### Pour le script Python +* **Python 3.x** installĂ©. +* La bibliothĂšque **Pandas**. + ```bash + pip install pandas + ``` + +### Pour les scripts PowerShell +* Windows Server avec le rĂŽle **Active Directory Domain Services (AD DS)**. +* Le module PowerShell Active Directory (inclus sur les contrĂŽleurs de domaine ou via RSAT). +* Des privilĂšges **Administrateur du domaine**. + +--- + +## 🚀 Guide d'utilisation Ă©tape par Ă©tape + +### Étape 1 : GĂ©nĂ©ration des mots de passe +*Fichier : `generate_passwords.py`* + +Ce script prend le fichier CSV brut des RH et ajoute une colonne `Password` avec un mot de passe de 8 caractĂšres (Majuscule, minuscule, chiffre, spĂ©cial). + +1. Placez le fichier source `Projet 01 - happy_koalas_employees.csv` dans le mĂȘme dossier. +2. ExĂ©cutez le script : + ```bash + python generate_passwords.py + ``` +3. **RĂ©sultat :** Un nouveau fichier `happy_koalas_employees_with_passwords.csv` est créé. + +### Étape 2 : Insertion dans l'Active Directory +*Fichier : `insert_users.ps1`* + +Ce script lit le fichier CSV gĂ©nĂ©rĂ© Ă  l'Ă©tape 1 et crĂ©e les comptes dans l'AD. + +1. Ouvrez PowerShell en tant qu'**Administrateur**. +2. Modifiez la variable `$DomainDN` dans le script si nĂ©cessaire (par dĂ©faut : `DC=happykoalas,DC=com`). +3. ExĂ©cutez le script : + ```powershell + .\insert_users.ps1 + ``` +4. **Actions effectuĂ©es :** + * VĂ©rification/CrĂ©ation des OUs (ex: `OU=IT`, `OU=Production`). + * CrĂ©ation des utilisateurs. + * Configuration de l'option "L'utilisateur doit changer le mot de passe Ă  la prochaine ouverture de session". + +### Étape 3 : Gestion des dĂ©parts (Expiration) +*Fichier : `update_expiration_date.ps1`* + +Ce script a Ă©tĂ© conçu suite Ă  la rĂ©organisation du dĂ©partement Production. Il cible spĂ©cifiquement les **Assemblers**. + +1. Ouvrez PowerShell en tant qu'**Administrateur**. +2. ExĂ©cutez le script : + ```powershell + .\update_expiration_date.ps1 + ``` +3. **Action effectuĂ©e :** Tous les utilisateurs ayant le dĂ©partement "Production" et le titre "Assembler" voient leur compte expirer immĂ©diatement (Date d'expiration = J-1). + +--- + +## 📩 Structure des fichiers + +```text +. +├── README.md # Documentation +├── generate_passwords.py # Script de gĂ©nĂ©ration (Python) +├── insert_users.ps1 # Script de crĂ©ation AD (PowerShell) +├── update_expiration_date.ps1 # Script de dĂ©sactivation (PowerShell) +├── Projet 01 - happy_koalas_employees.csv # DonnĂ©es sources (RH) +└── happy_koalas_employees_with_passwords.csv # DonnĂ©es traitĂ©es (gĂ©nĂ©rĂ© auto) \ No newline at end of file diff --git a/update_date.ps1 b/update_date.ps1 new file mode 100644 index 0000000..51aab2d --- /dev/null +++ b/update_date.ps1 @@ -0,0 +1,40 @@ +# ----------------------------------------------------------- +# Script : update_expiration_date.ps1 +# Description : Expire les comptes des "Assembler" du dĂ©partement "Production" +# en dĂ©finissant la date d'expiration Ă  J-1. +# ----------------------------------------------------------- + +# --- CONFIGURATION --- +$TargetDepartment = "Production" +$TargetTitle = "Assembler" + +# Calcul de la date d'expiration (Date du jour - 1 jour) +$ExpirationDate = (Get-Date).AddDays(-1) + +# --- IMPORTATION MODULE --- +Import-Module ActiveDirectory + +# --- TRAITEMENT --- +Write-Host "Recherche des utilisateurs concernĂ©s ($TargetDepartment - $TargetTitle)..." -ForegroundColor Cyan + +# RĂ©cupĂ©ration des utilisateurs correspondant aux critĂšres +# On utilise le filtre AD pour cibler uniquement les bonnes personnes +$UsersToExpire = Get-ADUser -Filter "Department -eq '$TargetDepartment' -and Title -eq '$TargetTitle'" -Properties Department, Title + +if ($UsersToExpire) { + foreach ($User in $UsersToExpire) { + try { + # Application de la date d'expiration + Set-ADAccountExpiration -Identity $User -DateTime $ExpirationDate -ErrorAction Stop + + Write-Host "Compte expirĂ© pour : $($User.Name) ($($User.SamAccountName))" -ForegroundColor Yellow + } + catch { + Write-Host "Erreur lors de la modification de $($User.Name) : $_" -ForegroundColor Red + } + } + Write-Host "`nOpĂ©ration terminĂ©e. Les comptes ont Ă©tĂ© expirĂ©s Ă  la date du : $ExpirationDate" -ForegroundColor Green +} +else { + Write-Host "Aucun utilisateur trouvĂ© avec les critĂšres : Dept=$TargetDepartment et Titre=$TargetTitle" -ForegroundColor Gray +}