Script changement de mot de passe à J+3 avec envois de mail informatif.
Avant toutes choses, je tiens a remercier Laurent Dardenne et magma² pour leur aide.
En gros on planifie ce script L_chgmt-pwd-ad.bat chaque debut de mois/trimestre et il se charge d'envoyer un mail aux utilisateurs concernés informant du changement de mot de passe dans 3 jours en incluant le mot de passe dans le mail.
Pré-requis :
Le script et tous les fichiers annexes sont sur le serveur AD.
- Ficher dico.txt contenant un mot par ligne (dans mon exemple il y a 121 lignes).
- Fichier listusers.csv, contenant le nom d’utilisateur, son adresse mail et éventuellement des adresses mails complémentaires (chef d’équipes ou autre, histoire de les tenir informés).
- Le programme blat (http://www.blat.net/) installé et paramétré sur le serveur AD.
- Les fichiers mail1.txt et mail2.txt qui vont nous permettre d’envoyer un mail automatiquement avec le mot de passe de l’utilisateur ainsi que la date effective du remplacement.
Exemple de fichier dico.txt :
1 2 3 4 5 6 7 8 9 10 11
| abri
amen
anne
avec
azur
base
bete
bise
bleu
bloc
… |
Exemple de fichier listusers.csv :
1 2 3 4 5 6 7 8
| totoMAG01;toto1@tototo.fr;Directeur1@toto.fr
totoMAG02;toto2@tototo.fr;Directeur2@toto.fr
totoMAG03;toto3@tototo.fr;Directeur3@toto.fr
totoMAG04;toto4@tototo.fr;Directeur4@toto.fr
tataMAG01;riri1@toto.fr,fifi1@toto.fr,loulou1@toto.fr;Directeur1@toto.fr
tataMAG02;riri2@toto.fr,fifi2@toto.fr,loulou2@toto.fr;Directeur2@toto.fr
tataMAG03;riri3@toto.fr,fifi3@toto.fr,loulou3@toto.fr;Directeur3@toto.fr
tataMAG04;riri4@toto.fr,fifi4@toto.fr,loulou4@toto.fr;Directeur4@toto.fr |
Exemple mail1.txt :
Ceci est un mail automatique merci de ne pas y répondre.
Exemple mail2.txt :
1 2 3
| Cordialement .
Le service Informatique. |
1er script chgmt-pwd-ad.bat :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| @echo off
REM ------------------------------------------------------------------------------------
REM DEFINTION DU MOT DE PASSE
REM ------------------------------------------------------------------------------------
set /a haz1=%random%%%120+1
set /a haz2=%random%%%120+1
set /a chi=%random%%%10
set LineNo1=%haz1%
set LineNo2=%haz2%
set "mot1="
set "mot2="
set /a LineNo1-=1
set /a LineNo2-=1
for /f "delims=" %%a in ('more/e +%LineNo1% ^< dico.txt') do (
if not defined mot1 set "mot1=%%a"
)
for /f "delims=" %%b in ('more/e +%LineNo2% ^< dico.txt') do (
if not defined mot2 set "mot2=%%b"
)
REM ------------------------------------------------------------------------------------
REM DEFINITION DE JOUR D'EXECUTION J+3
REM ------------------------------------------------------------------------------------
@echo off
set /a NJ=3
set /a J=1%DATE:~0,2% - 100
set /a M=1%DATE:~3,2% - 100
set /a A=%DATE:~6,4%
set /a JJ=%NJ% + ((1461 * (%A% + 4800 + (%M% - 14) / 12)) / 4 + (367 * (%M% - 2 - 12 * ((%M% - 14) / 12))) / 12 - (3 * ((%A% + 4900 + (%M% - 14) / 12) / 100)) / 4 + %J% - 32075)
set /a T0=%JJ% + 68569
set /a T1=(4 * %T0%) / 146097
set /a T0=%T0% - (146097 * %T1% + 3) / 4
set /a T2=(4000 * (%T0% + 1)) / 1461001
set /a T0=%T0% - (1461 * %T2%) / 4 + 31
set /a T3=(80 * %T0%) / 2447
set /a J=%T0% - (2447 * %T3%) / 80
set /a M=%T3% + 2 - (12 * (%T3% / 11))
set /a A=100 * (%T1% - 49) + %T2% + (%T3% / 11)
if %J% LSS 10 set J=0%J%
if %M% LSS 10 set M=0%M%
echo.
echo Dans 3 jours nous serons le %J%/%M%/%A%
echo.
REM ------------------------------------------------------------------------------------
REM GENERATION DU MAIL
REM ------------------------------------------------------------------------------------
echo Traitement de %user%
type mail1.txt > tmp/mailenv%user%.txt
echo Votre mot de passe sera changé le %J%/%M%/%A% >> tmp/mailenv%user%.txt
echo. >> tmp/mailenv%user%.txt
echo Le nouveau mot de passe de %user% sera : %mot1%%chi%%mot2% >> tmp/mailenv%user%.txt
type mail2.txt >> tmp/mailenv%user%.txt
REM ------------------------------------------------------------------------------------
REM GENERATION LISTE DE MOT DE PASSE
REM ------------------------------------------------------------------------------------
echo Utilisateur %user% Mot de passe %mot1%%chi%%mot2% >> list-password.txt
REM ------------------------------------------------------------------------------------
REM GENERATION ENVOIS DES MAILS
REM ------------------------------------------------------------------------------------
echo blat tmp\mailenv%user%.txt -t %destinataire% -c %copiecarbone% -s "Changement de mot de passe" >> envoi-mail-prev.cmd
REM ------------------------------------------------------------------------------------
REM GENERATION SCRIPT CHANGEMENT MOT DE PASSE
REM ------------------------------------------------------------------------------------
echo NET USER %user% %mot1%%chi%%mot2% /DOMAIN >> modif-password-ad.cmd |
2éme script L_chgmt-pwd-ad.bat :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| REM ------------------------------------------------------------------------------------
REM INITIALISATION DES SCRIPTS A LANCER
REM ------------------------------------------------------------------------------------
@echo off > envoi-mail-prev.cmd
@echo off > modif-password-ad.cmd
echo ------------------------------------------------------------------------------------
echo ------------------------------------------------------------------------------------
echo %date% %time%
echo ------------------------------------------------------------------------------------
echo ------------------------------------------------------------------------------------
REM ------------------------------------------------------------------------------------
REM MAJ DU FICHIER DE MOT DE PASSE POUR LES EQUIPES SUPPORT
REM ------------------------------------------------------------------------------------
@echo blat list-password.txt -t admtech@domain.com -s "Liste des nouveaux mots de passe utilisateurs (dans 3 jours)" > envoi-list-admtech.cmd
del list-password.txt
del tmp\mailenv*.txt
REM ------------------------------------------------------------------------------------
REM TRAITEMENT POUR CHAQUE UTILISATEUR DEFINI DANS LE FICHIER CSV
REM ------------------------------------------------------------------------------------
for /F "tokens=1-3 delims=;" %%i in (listusers.csv) do (
set user=%%i
set destinataire=%%j
set copiecarbone=%%k
)& call chgmt-pwd-ad.bat
@echo on
REM ------------------------------------------------------------------------------------
REM PLANIFICATION DU SCRIPT DE CHANGEMENT DE MOT DE PASSE DANS 3 JOURS
REM ------------------------------------------------------------------------------------
schtasks /delete /tn modif-password-ad /F
schtasks /create /tn modif-password-ad /tr %cd%\modif-password-ad.cmd /sc once /sd %J%/%M%/%A% /st 00:01:00 /ru DOMAIN\administrateur /rp password
REM ------------------------------------------------------------------------------------
REM ENVOI DU MAIL A CHAQUE UTILISATEUR POUR LUI DONNER SON NOUVEAU MOT DE PASSE
REM ------------------------------------------------------------------------------------
call envoi-mail-prev.cmd
type envoi-mail-prev.cmd
del envoi-mail-prev.cmd
REM ------------------------------------------------------------------------------------
REM ENVOI DU FICHIER DE MOT DE PASSE AUX EQUIPES SUPPORT
REM ------------------------------------------------------------------------------------
call envoi-list-admtech.cmd
type envoi-list-admtech.cmd
del envoi-list-admtech.cmd |
Voila, voila, chez moi ça fonctionne le scipt à été lancé cette nuit 
.
Pour toutes questions ou amelioration eventuelle n'hesitez pas. et encore merci à Laurent Dardenne et magma².
Partager