Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
654 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [TUTO] - [Batch Dos] Script changement de mot de passe AD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[TUTO] - [Batch Dos] Script changement de mot de passe AD

n°1797853
dob2806
Posté le 09-10-2008 à 16:26:54  profilanswer
 

Script changement de mot de passe à J+3 avec envois de mail informatif.
 
 
 
Avant toutes choses, je tiens a remercier Laurent Dardenne et magma² (www.developpez.com)pour leur aide.
 
 
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 :

Code :
  1. abri
  2. amen
  3. anne
  4. avec
  5. azur
  6. base
  7. bete
  8. bise
  9. bleu
  10. bloc


Exemple de fichier listusers.csv :

Code :
  1. totoMAG01;toto1@tototo.fr;Directeur1@toto.fr
  2. totoMAG02;toto2@tototo.fr;Directeur2@toto.fr
  3. totoMAG03;toto3@tototo.fr;Directeur3@toto.fr
  4. totoMAG04;toto4@tototo.fr;Directeur4@toto.fr
  5. tataMAG01;riri1@toto.fr,fifi1@toto.fr,loulou1@toto.fr;Directeur1@toto.fr
  6. tataMAG02;riri2@toto.fr,fifi2@toto.fr,loulou2@toto.fr;Directeur2@toto.fr
  7. tataMAG03;riri3@toto.fr,fifi3@toto.fr,loulou3@toto.fr;Directeur3@toto.fr
  8. tataMAG04;riri4@toto.fr,fifi4@toto.fr,loulou4@toto.fr;Directeur4@toto.fr


 
Exemple mail1.txt :

Code :
  1. Ceci est un mail automatique merci de ne pas y répondre.


 
Exemple mail2.txt :

Code :
  1. Cordialement .
  2. Le service Informatique.


 
1er script chgmt-pwd-ad.bat :

Code :
  1. @echo off
  2. REM ---------------------------------------------------------------------------
  3. REM DEFINTION DU MOT DE PASSE
  4. REM ---------------------------------------------------------------------------
  5. set /a haz1=%random%%%120+1
  6. set /a haz2=%random%%%120+1
  7. set /a chi=%random%%%10
  8. set LineNo1=%haz1%
  9. set LineNo2=%haz2%
  10. set "mot1="
  11. set "mot2="
  12. set /a LineNo1-=1
  13. set /a LineNo2-=1
  14. for /f "delims=" %%a in ('more/e +%LineNo1% ^< dico.txt') do (
  15.   if not defined mot1 set "mot1=%%a"
  16. )
  17. for /f "delims=" %%b in ('more/e +%LineNo2% ^< dico.txt') do (
  18.   if not defined mot2 set "mot2=%%b"
  19. )
  20. REM ---------------------------------------------------------------------------
  21. REM DEFINITION DE JOUR D'EXECUTION J+3
  22. REM ---------------------------------------------------------------------------
  23. @echo off
  24. set /a NJ=3
  25. set /a J=1%DATE:~0,2% - 100
  26. set /a M=1%DATE:~3,2% - 100
  27. set /a A=%DATE:~6,4%
  28. 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)
  29. set /a T0=%JJ% + 68569
  30. set /a T1=(4 * %T0%) / 146097
  31. set /a T0=%T0% - (146097 * %T1% + 3) / 4
  32. set /a T2=(4000 * (%T0% + 1)) / 1461001
  33. set /a T0=%T0% - (1461 * %T2%) / 4 + 31
  34. set /a T3=(80 * %T0%) / 2447
  35. set /a J=%T0% - (2447 * %T3%) / 80
  36. set /a M=%T3% + 2 - (12 * (%T3% / 11))
  37. set /a A=100 * (%T1% - 49) + %T2% + (%T3% / 11)
  38. if %J% LSS 10 set J=0%J%
  39. if %M% LSS 10 set M=0%M%
  40. echo.
  41. echo Dans 3 jours nous serons le %J%/%M%/%A%
  42. echo.
  43. REM ---------------------------------------------------------------------------
  44. REM GENERATION DU MAIL
  45. REM ---------------------------------------------------------------------------
  46. echo Traitement de %user%
  47. type mail1.txt  >  tmp/mailenv%user%.txt
  48. echo Votre mot de passe sera changé le %J%/%M%/%A%  >>  tmp/mailenv%user%.txt
  49. echo.  >>  tmp/mailenv%user%.txt
  50. echo Le nouveau mot de passe de %user% sera : %mot1%%chi%%mot2%  >>  tmp/mailenv%user%.txt
  51. type mail2.txt  >>  tmp/mailenv%user%.txt
  52. REM ---------------------------------------------------------------------------
  53. REM GENERATION LISTE DE MOT DE PASSE
  54. REM ---------------------------------------------------------------------------
  55. echo Utilisateur %user% Mot de passe %mot1%%chi%%mot2% >> list-password.txt
  56. REM ---------------------------------------------------------------------------
  57. REM GENERATION ENVOIS DES MAILS
  58. REM ---------------------------------------------------------------------------
  59. echo blat tmp\mailenv%user%.txt -t %destinataire% -c %copiecarbone% -s "Changement de mot de passe" >> envoi-mail-prev.cmd
  60. REM ---------------------------------------------------------------------------
  61. REM GENERATION SCRIPT CHANGEMENT MOT DE PASSE
  62. REM ---------------------------------------------------------------------------
  63. echo NET USER %user% %mot1%%chi%%mot2% /DOMAIN  >>  modif-password-ad.cmd


 
2éme script L_chgmt-pwd-ad.bat :

Code :
  1. REM ---------------------------------------------------------------------------
  2. REM INITIALISATION DES SCRIPTS A LANCER
  3. REM ---------------------------------------------------------------------------
  4. @echo off > envoi-mail-prev.cmd
  5. @echo off > modif-password-ad.cmd
  6. echo ---------------------------------------------------------------------------
  7. echo ---------------------------------------------------------------------------
  8. echo %date% %time%
  9. echo ---------------------------------------------------------------------------
  10. echo ---------------------------------------------------------------------------
  11. REM ---------------------------------------------------------------------------
  12. REM MAJ DU FICHIER DE MOT DE PASSE POUR LES EQUIPES SUPPORT
  13. REM ---------------------------------------------------------------------------
  14. @echo blat list-password.txt -t admtech@domain.com -s "Liste des nouveaux mots de passe utilisateurs (dans 3 jours)" > envoi-list-admtech.cmd
  15. del list-password.txt
  16. del tmp\mailenv*.txt
  17. REM ---------------------------------------------------------------------------
  18. REM TRAITEMENT POUR CHAQUE UTILISATEUR DEFINI DANS LE FICHIER CSV
  19. REM ---------------------------------------------------------------------------
  20. for /F "tokens=1-3 delims=;" %%i in (listusers.csv) do (
  21. set user=%%i
  22. set destinataire=%%j
  23. set copiecarbone=%%k
  24. )& call chgmt-pwd-ad.bat
  25. @echo on
  26. REM ---------------------------------------------------------------------------
  27. REM PLANIFICATION DU SCRIPT DE CHANGEMENT DE MOT DE PASSE DANS 3 JOURS
  28. REM ---------------------------------------------------------------------------
  29. schtasks /delete /tn modif-password-ad /F
  30. 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
  31. REM ---------------------------------------------------------------------------
  32. REM ENVOI DU MAIL A CHAQUE UTILISATEUR POUR LUI DONNER SON NOUVEAU MPD
  33. REM ---------------------------------------------------------------------------
  34. call envoi-mail-prev.cmd
  35. type envoi-mail-prev.cmd
  36. del  envoi-mail-prev.cmd
  37. REM ---------------------------------------------------------------------------
  38. REM ENVOI DU FICHIER DE MOT DE PASSE AUX EQUIPES SUPPORT
  39. REM ---------------------------------------------------------------------------
  40. call envoi-list-admtech.cmd
  41. type envoi-list-admtech.cmd
  42. del  envoi-list-admtech.cmd


Message édité par dob2806 le 09-10-2008 à 16:34:13
mood
Publicité
Posté le 09-10-2008 à 16:26:54  profilanswer
 

n°1798403
matafan
Posté le 10-10-2008 à 17:03:05  profilanswer
 

Il me semble que tu t'es donné bien de la peine pour faire un truc sensé ajouter de la sécurité, mais qu'au final tu affaiblis considérablement ton système (mots de passe qui circulent en clair sur le réseau et dans des fichier temporaires, mots de passes extrèmement faibles...)

n°1798479
dob2806
Posté le 10-10-2008 à 22:07:48  profilanswer
 

parce que des mots de passe de 9 caracteres + des chiffres se sont des mots de passe faibles ? le dico n'est la que pour l'exemple rien ne t'empeche de mettre des mots plus long avec ou sans majuscule et autres caracteres speciaux !!!


Message édité par dob2806 le 10-10-2008 à 22:09:06
n°1798510
gilou
Modérateur
Modzilla
Posté le 11-10-2008 à 10:59:28  profilanswer
 

Y'avait il une contrainte précise pour utiliser le batch dos?
Parce que pour faire quelque chose d'efficace, lisible et maintenable, il vaut mieux installer un vrai langage de script sur ton ordi (par exemple perl), prévu pour faire ce genre de choses, et evitant de creer tout un tas de fichiers externes ou d'appeller des programmes externes.
A+,


Message édité par gilou le 11-10-2008 à 11:03:22

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1798575
dob2806
Posté le 11-10-2008 à 14:44:59  profilanswer
 

Oui bien entendu, la contrainte etait que se soit un batch sous DOS, sinon cela n'aurait pas été marrant...

n°1799413
gilou
Modérateur
Modzilla
Posté le 13-10-2008 à 14:47:57  profilanswer
 

Question: y'avait il une contrainte precise pour que se soit un batch sous DOS
Réponse: la contrainte etait que se soit un batch sous DOS
Merci pour cette reponse a la clarté éblouissante [:micj]  
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1799718
dob2806
Posté le 13-10-2008 à 20:48:37  profilanswer
 

pas de quoi j'aime etre clair net et precis  :lol:  :lol:  :lol:

n°1800556
djobidjoba
Posté le 15-10-2008 à 16:11:23  profilanswer
 

a priori il s'agit de modifier le mot de passe windows, il me semble qu'il y a un paramètre pour forcer l'expiration de celui ci après quelques temps tout en restant confidentiel.
Et comment faire pour récupérer son nouveau pass si on peut plus se logguer après 3 semaines de vacances pour lire ses mails ?


Message édité par djobidjoba le 15-10-2008 à 16:13:07
n°1800671
matafan
Posté le 15-10-2008 à 18:10:58  profilanswer
 

Le mot de passe n'expire pas. Simplement au prochain login, le système te demande de changer ton mot de passe.

n°1800683
dob2806
Posté le 15-10-2008 à 18:41:43  profilanswer
 

il ne demande pas de changer son mot de passe il force le changement de celui ci, ici cela s'applique dans une entreprise et pas chez un particulier.

mood
Publicité
Posté le 15-10-2008 à 18:41:43  profilanswer
 

n°1800686
matafan
Posté le 15-10-2008 à 18:50:26  profilanswer
 

:heink: J'ai bien compris, mais je répond à djobidjoba

n°1800732
dob2806
Posté le 15-10-2008 à 21:21:29  profilanswer
 

moi aussi je lui repondais  :D  :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [TUTO] - [Batch Dos] Script changement de mot de passe AD

 

Sujets relatifs
Boucle sur répertoire en batchAuthentification avec mot de passe en JAVA
Probleme script kix32Batch répertoire .eps .jpg
[Résolu] - [Batch Dos] probleme commande for /F[Batch] Utliser un batch sur 98, mais conçu avec XP
[Résolu] - [Batch Dos] créer un tache planifiée J+3[batch] Raccourci "spécial" avec la commande "shortcut"
Plus de sujets relatifs à : [TUTO] - [Batch Dos] Script changement de mot de passe AD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR