Téléverser les fichiers vers "/"
This commit is contained in:
84
readme.md
Normal file
84
readme.md
Normal 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
40
update_date.ps1
Normal 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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user