[PS] Utiliser des credentials en Powershell

Selon votre organisation vous pouvez disposer dans votre infrastructure de nombreux domaines et donc autant de comptes/droits pour les gérer.

C’est le cas dans la société pour laquelle je suis en prestation actuellement ou je me retrouve à avoir 4 domaines à gérer avec autant de comptes différents pour les administrer. Le problème se pose donc lorsque depuis mon poste je dois exécuter des scripts (fait maison bien sûr 🙂 ) pour aller travailler sur d’autres domaines … je me retrouve donc à devoir renseigner régulièrement mes logins/password pour l’exécution de mes scripts.

Pour cela Powershell est relativement bien fait et permet le stockage de vos credentials pour pouvoir les réutiliser lorsque l’on souhaite sans avoir besoin de tout saisir, mieux encore Powershell nous permet de stocker de façon sécurisée nos credentials dans un fichier texte (ce qui sera très pratique pour nos scripts 🙂 ).


Tout d’abord il convient de générer notre fichier texte contenant le mot de passe crypté, pour cela on ouvre une console Powershell puis on saisie :

PS_Cred1

 

 

Ici je spécifie « -AsSecureString » permet de masquer la saisie des caractères pour éviter qu’ils apparaissent sur l’écran.

Le « Out-File » permet de générer le fichier « Powershell.txt » sur le lecteur E:\ (ma clé USB) , ce fichier peut avoir le nom et l’extension de votre choix. De plus en l’ouvrant avec Notepad vous pouvez constater que celui-ci est crypté.

Pour précision seul le compte Windows utilisé pour crypté le mot de passe peut décrypter ce fichier.


Ok c’est bien beau j’ai mon fichier avec mon mot de passe crypté mais j’en fait quoi ?! Et bien on l’exploite ! 🙂

Voici le code que j’utilise pour me faciliter la vie dans mes scripts nécessitant une authentification sur domaine différent du mien :

Pleins de choses à dire sur ce morceau de code 😀

  • La 1ère ligne permet de spécifier le « Domaine\Username », très pratique ça évite de le saisir.
  • La 2ème ligne permet de vérifier que votre fichier « E:\Powershell.txt » est présent et donc de l’utiliser, le cas contraire on passe à la ligne 7 qui vous enverra un popup de connexion vous invitant à saisir votre mot de passe.
  • De la 4ème à la 5ème ligne permet de récupérer le contenu de notre fichier « E:\Powershell.txt » puis de l’utiliser afin de nous connecter sur le domaine concerné.

Ne pas oublier de remplacer « Domaine\Username » par vos informations, il en va de même pour « DOMAINE_CIBLE » (ligne 5 & 6) afin de spécifier le domaine sur lequel vous souhaiter vous connecter.

Je préciser également que j’utilise le module Quest ActiveRoles comme module.


Voilà le morceau de code est terminé, il suffit de mettre à la suite votre script et c’est parti ! 😀

Pour avoir plus d’informations le site « Via Powershell » a réalisé un bon article qui explique plus en détail les différentes commandes utilisées.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *