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

  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Management du SI

  [Script] Génération de mot de passe en ligne de commande

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Script] Génération de mot de passe en ligne de commande

n°82755
Wolfman
Modérateur
Lobo'tomizado
Posté le 07-07-2011 à 17:23:37  profilanswer
 

Hello,
 
J'ai une petite question qui devrait rapidement trouver réponse ici avec tous les fanas de scripts qui tournent dans le coin :D
 
Je suis en train de me faire un script pour créer automatiquement une tâche planifiée de redémarrage lorsque je déploie un serveur. Dans ce script, je souhaite pouvoir créer un compte local qui fera tourner la tâche en question.
 
Mon problème est de pouvoir fournir un mot de passe à ce compte, sans qu'il apparaisse pour autant dans le script. Ce que j'aurais voulu, c'est donc pouvoir générer un mot de passe aléatoire et le fournir au compte. J'ai bien trouvé la commande net user nom_du_compte /random, mais je ne vois pas comment récupérer le mot de passe pour ensuite l'appliquer lors de la création de la tâche planifiée.
 
Il me faudra donc soit une méthode pour récupérer ce mot de passe généré, soit un script ou un petit outil qui me permettrait de stocker le mot de passe dans une variable d'environnement ou un fichier histoire de pouvoir le réutiliser dans la suite de mon script.
 
 
Je sais pas si j'ai  été clair :D

mood
Publicité
Posté le 07-07-2011 à 17:23:37  profilanswer
 

n°82757
couak
Posté le 07-07-2011 à 17:49:20  profilanswer
 

en considérant que ton windows est en langue française :

Code :
  1. for /F "tokens=1-8 delims= " %i in ('net user /add pouet /random ^| findstr passe') do set PASS=%p


 
si tu comptes le mettre dans un fichier .bat il faut doubler les %

Code :
  1. for /F "tokens=1-8 delims= " %%i in ('net user /add pouet /random ^| findstr passe') do set PASS=%%p


Message édité par couak le 07-07-2011 à 17:49:54
n°82764
Wolfman
Modérateur
Lobo'tomizado
Posté le 08-07-2011 à 08:40:09  profilanswer
 

Rooooh... Je t'aime  [:gum]  
 
Merci :D

n°83605
Wolfman
Modérateur
Lobo'tomizado
Posté le 03-08-2011 à 17:34:50  profilanswer
 

Hello,
 
je reviens sur mon sujet, parce que je rencontre un petit problème. J'ai fait mon script de déploiement, tout va bien, etc.
 
Mon problème : le mot de passe généré aléatoirement n'est pas toujours un mot de passe complexe ! Résultat : si je n'ai pas de chance, sur un serveur que j'installe, le script me jette parce que le compte n'a pas pu se créer !!
 
Je repars donc un peu à zéro : comment se générer un mot de passe complexe... :(

n°83608
Je@nb
Modérateur
Kindly give dime
Posté le 03-08-2011 à 18:08:11  profilanswer
 

Tu génères aléatoirement un mot de passe, tu le test selon tes critères de complexité et si c'est pas bon tu en regénère un, tu le retest, etc etc. (bref une boucle et qq if
 
Tu sors de la boucle une fois qu'un mdp est complexe et tu le soumets à ton système :)

n°83609
Wolfman
Modérateur
Lobo'tomizado
Posté le 03-08-2011 à 19:01:53  profilanswer
 

Mon problème est de savoir comment faire ça :D

n°83618
ShonGail
En phase de calmitude ...
Posté le 04-08-2011 à 00:40:29  profilanswer
 

Salut,
 
en autoit, ca donnerait ça :

Code :
  1. AutoItSetOption("MustDeclareVars", 1)
  2. Dim $MDP, $boucle, $boucle2, $chaine[4][2], $RND, $temp, $file
  3. $chaine[0][0] = "abcdefghijklmnopkrstuvwxyz"
  4. $chaine[0][1] = 4
  5. $chaine[1][0] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  6. $chaine[1][1] = 4
  7. $chaine[2][0] = "0123456789"
  8. $chaine[2][1] = 2
  9. $chaine[3][0] = "+-_#@"
  10. $chaine[3][1] = 1
  11. For $boucle = 0 To 3
  12. For $boucle2 = 1 To $chaine[$boucle][1]
  13.  $temp &= StringMid($chaine[$boucle][0], Random(1, StringLen($chaine[$boucle][0]), 1), 1)
  14. Next
  15. Next
  16. For $boucle = 0 To StringLen($temp)
  17. $RND = Random(1, StringLen($temp), 1)
  18. If $RND = 0 Then $RND = 1
  19. $MDP &= StringMid($temp, $RND, 1)
  20. $temp = StringReplace($temp, $RND, " " )
  21. $temp = StringStripWS($temp, 8)
  22. Next
  23. $file = FileOpen(@TempDir & "\MDP.txt", 1)
  24. If $file <> -1 Then
  25. FileWrite($file, $MDP)
  26. FileClose($file)
  27. EndIf


 
ici, tu as génération d'un mdp avec 4 lettres minuscules, 4 majuscules, 2 chiffres et 1 caractère étendu.
Le tout est écrit dans un fichier dans le dossier %temp%

n°83619
Wolfman
Modérateur
Lobo'tomizado
Posté le 04-08-2011 à 08:46:20  profilanswer
 

Génial ! :)
 
Et c'est possible de l'envoyer dans une variable d'environnement plutôt que dans un fichier ?

n°83626
ShonGail
En phase de calmitude ...
Posté le 04-08-2011 à 10:34:54  profilanswer
 

Oui mais cela nécessite soit :

 

- de pouvoir utiliser la commande setx (rajoute ~5 secs au script). Il faut donc que l'OS la contienne ou il faut la rendre accessible
- d'écrire dans le registre puis de "rafraichir" l'environnement mais cela rajoute 30secs au script (sur ma machine en tout cas) :(

 

Attention aussi à cet avertissement dans le help de setx :
"Sur un système local, les variables créées ou modifiées par cet
outil seront disponibles dans les fenêtres de commandes
futures mais pas dans la fenêtre de commande CMD.exe actuelle."

 

Fais ton choix :D


Message édité par ShonGail le 04-08-2011 à 10:35:31
n°83649
nebulios
Posté le 04-08-2011 à 21:06:56  profilanswer
 

Si tu es sous 2008/2008 R2 les Managed Service Accounts peuvent répondre à ce genre de besoin. Ce sont des comptes de service dont le mot de passe se réinitialise automatiquement.

mood
Publicité
Posté le 04-08-2011 à 21:06:56  profilanswer
 

n°83650
Wolfman
Modérateur
Lobo'tomizado
Posté le 04-08-2011 à 22:50:21  profilanswer
 

Bon. Pas grave, éventuellement je chargerai le contenu du fichier généré dans la variable d'environnement, et je détruirai le fichier. Je vais essayer comme ça.
 
@ nebulios : je veux un script utilisable aussi pour mes 2003, mais merci pour l'idée, ça me servira peut-être pour autre chose :)

n°83659
ShonGail
En phase de calmitude ...
Posté le 05-08-2011 à 10:47:11  profilanswer
 

Tu peux aussi faire un script full autoit pour créer ton compte local puis redémarrer ton serveur :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Management du SI

  [Script] Génération de mot de passe en ligne de commande

 

Sujets relatifs
PC protégés par mot de passe ??[Exchange 2007] Certificat, OAB, Outlook demande le mot de passe
Sauvegarde en lignescript désinstallion OCS
Creation de scriptQuel PRESTA : solutions de paiement en ligne (E-boutique) ???
Netbackup : exécuter un script avant/après une restaurationsurveiller si une ligne Internet est tombée
GPO script VS GPO msi 
Plus de sujets relatifs à : [Script] Génération de mot de passe en ligne de commande


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