PowerShell – Un générateur de mot de passe

Nous allons voir aujourd’hui comment générer un mot de passe « fort » avec Windows PowerShell. Le script aura en sortie le mot de passe en « clair », mais également sa version « sécurisée » afin de l’utiliser directement pour d’autres actions tel que la création d’utilisateurs.

Nous montrerons notamment comment intégrer la commande directement dans PowerShell, afin de pouvoir utiliser le générateur à tout moment.

Le script présenté contient les éléments suivants :

  • 3 lettres minuscules
  • 3 lettres MAJUSCULES
  • 1 nombre entre 10 et 99
  • 1 caractère spécial

Commencez par lancer Windows PowerShell ISE, puis collez le script ci-dessous :

Libre à vous d’adapter comme bon vous semble. Le contenu reste assez simple à comprendre.

La contrainte ici, c’est que le format de sortie restera identique pour tous les mots de passe qui seront générés (3 minuscules, 1 caractère spécial, 3 majuscules et 1 nombre).
Exemple : lby&CJH72 | wyy{ZVO60 | gbs=ZER73

Si vous souhaitez avoir une diversité plus grande, il faut mélanger le contenu de la variable $Pass_Simple. Vous pouvez le faire en ajoutant les lignes ci-dessous juste avant la définition de $Pass_Secure (entre les lignes 15 et 16) :

Ce qui nous donnera en sortie des formats beaucoup plus aléatoires tel que :
u&IGf5Iu9 | a8FrcL]S7 | 8whMiUM*4

Sachez qu’il est également possible de générer un mot de passe très simplement avec :

Concernant les arguments de « GeneratePassword » :

  • Le premier définit la longueur du mot de passe
  • Le deuxième définit le nombre de caractères non-alphanumériques

Vous obtiendrez en sortie des résultats similaires à ça : =X0nJ+Oi | ?IqF^hcg

Mais l’inconvénient est que vous perdez tout contrôle sur ce qui est généré..


Une fois que vous êtes satisfait avec le script, dans Windows PowerShell ISE :

  • Fichier > Enregistrer sous…
  • Nom du fichier : get-password
  • Type : Modules de scripts PowerShell (*.psm1)

Maintenant, vous devez savoir dans quels répertoires Powershell recherche les modules.
Généralement, le répertoire est le suivant : C:\Windows\System32\WindowsPowerShell\v1.0\Modules

Vous pouvez en être sûr grâce à la variable d’environnement suivante :

Rendez-vous dans ce répertoire, et créez un dossier « Get-Password » :

Mettez-y votre fichier « get-password.psm1 » créé précédemment :

Vous pouvez maintenant lancer/redémarrer PowerShell et voir que tout fonctionne en tapant la commande « Get-Password » :

La sortie en console est conforme à nos attentes ; on obtient un mot de passe ainsi que sa version sécurisée.

Pour appeler/utiliser chaque sorties indépendamment (le mot de passe en clair et celui sécurisé), on procède comme suit :

$mavariable[0] renverra le mot de passe en clair, et $mavariable[1] renverra le mot de passe sécurisé.


Maintenant que vous comprenez le fonctionnement, il est facile de créé un utilisateur avec le générateur de mot de passe !

Par exemple :

Vous aimerez aussi...

3 réponses

  1. Dacodhack dit :

    Il y a aussi cette méthode inspiré de la votre pour faire un mot de passe de 22 caractères
    $(Get-Random -InputObject $,!,%,*,_,-,+,=,?,[,],:, »@ », »& », »# », »; », », », ». »,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z -Count 22) -join «  »
    Cela permet d’éviter d’avoir une structure dans le mot de passe

    • Dacodhack dit :

      Semblerait que le site est modifier les guillemets, pour préciser, il y a pas d’espace dans les guillemets du -join  » et les caractères doivent être compris dans les guillemets comme dans votre exemple.

  1. 22/05/2018

    […] Source : https://www.aide-sys.fr/powershell-un-generateur-de-mot-de-passe/ […]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.