Bonjour,
Suite à une demande client voici un script qui permet de réinitialiser les mots de passe d'utilisateurs via un fichier CSV.
Présentation du fichier CSV :
Dans le fichier csv, nous avons renseigné la liste des comptes utilisateurs dont le mot de passe doit être réinitialisé; afin de limiter les erreurs, nous nous appuyons sur le "SamAccountName".
Présentation du Script :
# Réinitialisation des mots de passe utilisateurs à partir d'un fichier Csv
# Définition des variables de bases
$Server ="DC01.lab.info" # Déclarez ici le serveur d'exécution
$Input ="C:\Mon_Dossier\Mon_Fichier.csv" # Entrez Ici le chemin d'accès à son fichier csv
$LogFolder = "C:\LogMathieu" # Déclarez ici l'emplacement du répertoire de Log
$Folder = "LogMathieu" # Déclarez ici le nom du répertoire de Log
$LogFile = "C:\LogMathieu\LogScript.txt" # Déclarez ici l'emplacement du fichiers de Log du script
$File = "LogScript.txt" # Déclarez ici le nom du fichier de Log du script
$LogError = "C:\LogMathieu\LogError.txt" # Déclarez ici l'emplacement du fichier d'erreur global
$LogCatch = "C:\LogMathieu\LogCatch.txt" # Déclarez ici l'emplacement du fichier de gestion de l'erreur
$FileCatch = "LogCatch.txt" # Déclarez ici le nom du fichier de gestion de l'erreur
# Avant de commencer nous allons créer un répertoire et un fichier pour les logs
if (!(Test-Path $logfolder)) {
New-Item -Name $Folder -Path C:\ -type directory
New-Item -Name $File -Path $LogFolder -type file
New-Item -Name $FileCatch -Path $LogFolder -type file
Write-Output "Le dossier $Folder n'existait pas, création du Dossier $Folder, du fichier $File et $FileCatch" | Add-Content $LogFile
}
Else {
Write-Output "Le dossier $Folder existe déjà!" | Add-Content $LogFile
}
# Import du module Active Directory et import du fichier csv
Import-Module ActiveDirectory
Import-Csv -Path $Input | Foreach-Object{
$SAN=$_."User"
Try {
Set-ADAccountPassword -Identity "$SAN" -NewPassword:(ConvertTo-SecureString -AsPlainText "P@ssw0rd" -Force) -Reset:$True -Server:$Server | Set-ADUser -ChangePasswordAtLogon:$true -ErrorAction Stop -ErrorVariable PB
}
Catch {
"Une erreur $PB a eu lieu à $((Get-Date).DateTime)" | Add-Content $LogCatch
}
Finally{
"Fin de l'opération"
}
}
$Error > $LogError