Question Crypter une chaîne dans un script

Plus d'informations
il y a 14 ans 10 mois #4642 par Johan
Bonjour,

j'ai cherché un peu sur le net et j'ai trouvé pas mal de solutions de cryptage mais pas celle que je cherche (à moins d'avoir mal regarder)

En gros j'ai des scripts utilisés par des utilisateurs lambda dans lesquels se trouvent le mot de passe administrateur.

Comment puis-je faire pour quand un utilisateur lambda édite le script, il ne puisse pas voir les mots de passe en clair ?

Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 10 mois #4646 par PASCAULT
Reboujour,

Avec les cmdlets ConvertTo-SecureString et ConvertFrom-SecureString , tu devrais pouvoir faire quelquechose, non ?

Tu fais dans un premier tps un
[code:1]$pwd = read-host -assecurestring
$pwdcrypt = convertfrom-securestring $pwd
$pwdcrypt[/code:1]
La variable $pwdcrypt est alors de type string, ton mdp n'est pas trop lisible alors je pense !:blink:

Tu utilises ensuite la chaine obtenu comme variable dans ton script dédié user (ou dans un fichier, si jamais le mdp change, tu n'as pas besoin de passer sur tout les scripts mais seulement remplacer le fichier.
$pwdcrypt=\"5d1118c7a0.........0c04fc297eb\"
puis
$pwd=ConvertTo-SecureString $pwdcrypt

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 10 mois #4648 par Johan
Réponse de Johan sur le sujet Re:Crypter une chaîne dans un script
Oui mais dans ce cas la c'est l'utilisateur qui renseigne le mot de passe c'est ça ?

Moi il est en dur dans le script

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 10 mois #4650 par PASCAULT
Non, pas obligatoirement.

C'est pour cela que tu fais cela en 2 étapes.
Tu as un mdp que tu veux crypter, tu fais donc convertfrom-securestring et cela te donne une chaine de caractère de type \"5d1118c7a0.........0c04fc297eb\" correspondant à ton mdp crypté toto par ex.
Mais ce convertfrom-securestring, tu ne le mets pas dans le script utilisateur. tu le fais avant, et tu le rediriges dans un fichier par ex.
[code:1]convertfrom-securestring (read-host -assecurestring)>.\cryptmdp.txt[/code:1]
tu saisies toto par ex et ton fichier cryptmdp.txt contient alors

01000000d08c9ddf0115d1118c7a00c04fc297eb01000000c892678951743c4aa1564134d78ff02a0000000002000000000003660000a8000000100
000002fdbcd3ef3e90813ae9bbba6a822fb9b0000000004800000a00000001000000006e6eab6041b9bef113d046473f65b8c100000004acebd606c
9a7276a52889d80f5ea574140000005e0ac4b47a041623f3e237a6f3bd4fd07217cf92

Tu vas pas me dire que tu reconnais toto la dedans.:pinch:


Ensuite, dans le script utilisateur, tu utilises la chaine cryptée pour la convertir dans l'autre sens, en objet securestring.
[code:1]$pwd=ConvertTo-SecureString (gc cryptmdp.txt)[/code:1]
Attention, bien sûr, ton mdp n'apparait pas en clair, c'est un type objet SecureString; tu ne peux pas utiliser $mdp direct pour une cmd externe par ex.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 10 mois #4651 par Johan
Réponse de Johan sur le sujet Re:Crypter une chaîne dans un script
D'accord très bien, c'est ce qui correspond à mes attentes en fait =D

Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 5 mois #16105 par erin
Réponse de erin sur le sujet Re:Crypter une chaîne dans un script
Bonjour a tous je fais remonter ce sujet pour avoir la suite de ce probleme
je n'arrive pas a utiliser mon mot de passe crypter sur differents postes il ne marche que sur le poste qui l'a crypter.
exemple
write-host \"Entrer votre mot de passe a crypter :\"
convertfrom-securestring (read-host -assecurestring)>.\cryptmdp.txt
write-host \"Votre mot de passe de trouve dans le fichier cryptmdp.txt\"

J'obtiens le pass crypter 5465465465125

ensuite je le recupere dans un sript et je remet clair
$pwd=ConvertTo-SecureString (\"5465465465125
\")
$BSTR = [System.Runtime.InteropServices.marshal]::SecureStringToBSTR($pwd1)
$Str = [System.Runtime.InteropServices.marshal]::PtrToStringAuto($BSTR)

ca marche
mais si je le reporte sur un autre poste niet

En vous remerciant
c'est pour cacher le mot de passe d'un net use

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.076 secondes
Propulsé par Kunena