Information
Cette article a été rédigé pour une présentation du French Powershell UserGroup.
Cette présentation peut-être vu sur Youtube sur la chaîne du FRPSUG
Module : BetterCredentials
Lors de mes dernières recherches, je suis tombé, par hasard, sur le module BetterCredentials de Jaykul
Alors attention le module n’est pas complètement sec :-)
Comme il le dit lui-même si bien ;-)
L’objectif de BetterCredentials est de fournir une commande Get-Credential entièrement compatible avec les versions antérieures qui améliore le Get-Credential d’origine en ajoutant des fonctionnalités supplémentaires qui sont absentes de la commande intégrée. Plus précisément, stockage des informations d’identification pour l’automatisation, et fourniture d’invites plus complètes avec une explication de l’utilisation des informations d’identification
En résumé c’est un Get-Credential
mais en mieux…
pour l’utilisation il suffit d’installer le module directement de la PSGallery
Install-Module -Name BetterCredentials -scope CurrentUser -AllowClobber -force
Le -AllowClobber
est important pour faire l’installation
Il faut ensuite, classiquement, importer le module
Import-Module BetterCredentials
la liste des commandes disponibles est la suivante
PS > Get-Command -Module BetterCredentials
CommandType Name Version Source
----------- ---- ------- ------
Function Find-Credential 4.5 BetterCredentials
Function Get-Credential 4.5 BetterCredentials
Function Remove-Credential 4.5 BetterCredentials
Function Set-Credential 4.5 BetterCredentials
Function Test-Credential 4.5 BetterCredentials
La première commande qui nous intéresse bien sur est Get-Credential
.
Comme pour toute nouvelle commande commençons par regarder l’aide
Get-Help -Name BetterCredentials\Get-Credential -Detailed
Remarquer que j’ai préfixé la commande avec le nom du module afin que le système comprenne que je veux l’aide de Get-Credential du module et non pas celle de la commande par défaut.
A la lecture de l’aide une phrase m’a beaucoup intéressé
It also supports storing and retrieving credentials in your Windows Credential Manager, but otherwise functions identically to the built-in command
Hum, Hum intéressant.
Plutôt que de stocker les informations (UserName et Password) dans un fichier comme j’en ai parlé sur le post Credential : comment les utiliser ? ce module est capable de les stocker dans le Coffre-Fort Windows.
Voyons voir un peu cette fonction plus précisément.
PS > Get-Credential -UserName MonUtilsiateur -Domain MonDomaine -Store
UserName Password
-------- --------
MonDomaine\MonUtilsiateur System.Security.SecureString
Bon jusque là rien de surprenant puisque le résultat est un object Credential avec Username et Password.
ok, ok mais avant nous avons bien parlé d’un stockage dans le Coffre-Fort Windows.
Allons jeter une oeil dans le Credential Manager
et effectivement on retrouve une entrée correspondant à notre utilisateur avec son mot de passe.
Afin de pouvoir récupérer ce compte il suffit de reprendre la commande
$cred = Get-Credential -UserName MonUtilsiateur -Domain MonDomaine
Si l’utilisateur existe dans le coffre-fort il récupère ce compte sinon il fait un prompt pour demander le mot de passe
Dans notre cas l’utilisateur est dans le coffre-fort
PS > $cred = Get-Credential -UserName MonUtilsiateur -Domain MonDomaine
PS > $cred
Target : MicrosoftPowerShell:user=MonDomaine\MonUtilsiateur
TargetAlias :
Type : Generic
Persistence : Enterprise
Description :
LastWriteTime : 2/10/2019 7:25:35 PM
UserName : MonDomaine\MonUtilsiateur
Password : System.Security.SecureString
Cette variable $cred
peut-être utiliser par exemple dans la commande suivante
Enter-PSSession -ComputerName MonComputer -Credential $cred
J’avoue ne pas trop savoir quoi penser de ce module.
L’idée me parait intéressante mais ce module demande encore à être développé ce qui ne semble pas être le cas. Autre point bloquant, étant donné qu’il se base sur le Credential Manager de Windows, ce module n’est naturellement pas Cross-Platform :-(
Mais c’est là, la force de la communauté donc avis à tous les amateurs qui voudraient participer à l’évolution de ce module :-)