Téléverser les fichiers vers "/"

This commit is contained in:
2025-11-20 15:23:34 +00:00
commit 40144fe4fc
2 changed files with 124 additions and 0 deletions

84
readme.md Normal file
View File

@@ -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)

40
update_date.ps1 Normal file
View File

@@ -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
}