Question
[Résolu]Crypter un mot de passe
- dds69
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 9 ans 4 mois #22620
par dds69
[Résolu]Crypter un mot de passe a été créé par dds69
Bonjour à tous,
Dans l'entreprise ou je suis actuellement, nous souhaitons mettre un script (powershell) en place afin que celui - ci puisse lister les différents fichiers ouvert par les utilisateurs. Ceci a pour but de savoir qui à ouvert quoi car beaucoup de fichier sont partagés et parfois laissé ouvert par un utilisateur au détriment d'autres utilisateurs.
Voici le script que nous utilisons actuellement :
[code:1]openfiles /query /s monServeur /u monCompte /p monMotDePasse /fo CSV > C:\temp\fichiers_ouverts.csv[/code:1]
Le problème de ce script c'est que le mot de passe est en clair dans le fichier et même si seul le service informatique peut y avoir accès ça peine de voir les mots de passe en clair. Donc pour cela petite évolution du script :
[code:1]$user = Read-host \"Veuillez entrer l'utilisateur de la session\"
$password = Read-Host \"Saisissez le mot de passe\"
openfiles /query /s monServeur /u $user /p $password /fo CSV >> C:\temp\fichiers_ouverts.csv[/code:1]
Donc ici le mot de passe est demandé à l'utilisateur et donc apparaît en clair lorsqu'on le tape. Pour cela on souhaite que quand on tape le mot de passe les caractères soient remplacés par des points ou des étoiles. Donc on a ajouté l'option \"-AsSecureString\".
Le problème avec cette option est que le script ne récupère plus le bon mot de passe.
Nous avons vu que le mot de passe était de type SecureString et à partir de là, nous n'arrivons pas a faire appel à ce mot de passe, même en utilisant l'option ConvertTo ou ConvertFrom.
Quelqu'un aurait il une information par rapport à la synthaxe à suivre pour que le mot de passe crypté puisse être accepté lors de la requête effectuée dans le script ?
Cordialement
dds69<br><br>Message édité par: dds69, à: 18/11/16 11:59
Dans l'entreprise ou je suis actuellement, nous souhaitons mettre un script (powershell) en place afin que celui - ci puisse lister les différents fichiers ouvert par les utilisateurs. Ceci a pour but de savoir qui à ouvert quoi car beaucoup de fichier sont partagés et parfois laissé ouvert par un utilisateur au détriment d'autres utilisateurs.
Voici le script que nous utilisons actuellement :
[code:1]openfiles /query /s monServeur /u monCompte /p monMotDePasse /fo CSV > C:\temp\fichiers_ouverts.csv[/code:1]
Le problème de ce script c'est que le mot de passe est en clair dans le fichier et même si seul le service informatique peut y avoir accès ça peine de voir les mots de passe en clair. Donc pour cela petite évolution du script :
[code:1]$user = Read-host \"Veuillez entrer l'utilisateur de la session\"
$password = Read-Host \"Saisissez le mot de passe\"
openfiles /query /s monServeur /u $user /p $password /fo CSV >> C:\temp\fichiers_ouverts.csv[/code:1]
Donc ici le mot de passe est demandé à l'utilisateur et donc apparaît en clair lorsqu'on le tape. Pour cela on souhaite que quand on tape le mot de passe les caractères soient remplacés par des points ou des étoiles. Donc on a ajouté l'option \"-AsSecureString\".
Le problème avec cette option est que le script ne récupère plus le bon mot de passe.
Nous avons vu que le mot de passe était de type SecureString et à partir de là, nous n'arrivons pas a faire appel à ce mot de passe, même en utilisant l'option ConvertTo ou ConvertFrom.
Quelqu'un aurait il une information par rapport à la synthaxe à suivre pour que le mot de passe crypté puisse être accepté lors de la requête effectuée dans le script ?
Cordialement
dds69<br><br>Message édité par: dds69, à: 18/11/16 11:59
Connexion ou Créer un compte pour participer à la conversation.
- Mickael
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 9 ans 4 mois #22621
par Mickael
Réponse de Mickael sur le sujet Re:Crypter un mot de passe
Je pense que tu cherches ceci 
[code:1]$password = Read-Host \"Saisissez le mot de passe\" -AsSecureString[/code:1]
Message édité par: MiKaDo, à: 17/11/16 15:29<br><br>Message édité par: MiKaDo, à: 17/11/16 15:54
[code:1]$password = Read-Host \"Saisissez le mot de passe\" -AsSecureString[/code:1]
Message édité par: MiKaDo, à: 17/11/16 15:29<br><br>Message édité par: MiKaDo, à: 17/11/16 15:54
Connexion ou Créer un compte pour participer à la conversation.
- Mickael
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 9 ans 4 mois #22624
par Mickael
Réponse de Mickael sur le sujet Re:Crypter un mot de passe
Autant pour moi, je n'avais pas vu que tu l'indiquais... mes excuses.
est-ce que le fais d'utiliser le credential peut fonctionner dans ton cas ? Tu enregistreras le nom d'utilisateur et le mot de passe dans la variable sans afficher le mot de passe.
[code:1]$credential = Get-credential[/code:1]
est-ce que le fais d'utiliser le credential peut fonctionner dans ton cas ? Tu enregistreras le nom d'utilisateur et le mot de passe dans la variable sans afficher le mot de passe.
[code:1]$credential = Get-credential[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 4 mois #22627
par Philippe
Réponse de Philippe sur le sujet Re:Crypter un mot de passe
salut dds69 et MiKaDo
@MiKaDo : désolé mais ta deuxième solution pose le même problème que la première
@dds69 : tu a plusieurs solutions a ton problème, je t'en donne deux sur la même base :
premier cas : tu veux saisir a chaque fois le mot de passe,
[code:1]$secureString = read-host -assecurestring
$passe_en_clair = [System.Runtime.InteropServices.marshal]::«»PtrToStringAuto([System.Runtime.InteropServices.marshal]::«»SecureStringToBSTR($securestring))
$passe_en_clair
[/code:1]
deuxieme cas : pas de saisi du mot de passe, ça se passe en deux etape :
1) d'abord tu crypte le mot de passe, à faire une seule fois :
[code:1]# création du mot de passe crypté
# a faire avant
$key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43) # cette de 24 caractères peut être changé
$standardstring = convertfrom-securestring (read-host -assecurestring) -key $key[/code:1]la variable $standardstring contient le mot de passe crypté du type : [code:1]76492d1116743f0423413b16050a5345MgB8AFMAOAB6AE4AdgBoAEwAUABVAFYANgBZAEEAMgBtAEQAQwBQAFIAQQBTAEEAPQA9AHwAZAA2ADUAYwBlADAANAA3ADMAOQBlAGQAYQBjADgAZgA4AGEAOAA4ADUANwAxADAAZgAwADgAMwA4ADgAMwA4ADAAMwBiAGEAMABjA
DcAYQA0ADUAMgBiADUAZABmAGUAYgAzADkAZAA2ADQAMQBhADkAZgA4AGIAMgAwAGEAZQAyADAAYwBkADIANQAyAGUAZAA5ADgANQBhADUAYQBmAGEANABhADUAMwA1ADcAYwAzADkAOAA1ADIANgBmADIA[/code:1]
2) tu utilise ton mot de passe dans ton script :
[code:1]# utilisation d'un mot de passe crypté converti en clair avec clé
$key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
$standardstring = \"76492d1116743f0423413b16050a5345MgB8AFMAOAB6AE4AdgBoAEwAUABVAFYANgBZAEEAMgBtAEQAQwBQAFIAQQBTAEEAPQA9AHwAZAA2ADUAYwBlADAANAA3ADMAOQBlAGQAYQBjADgAZgA4AGEAOAA4ADUANwAxADAAZgAwADgAMwA4ADgAMwA4ADAAMwBiAGEAMABjA
DcAYQA0ADUAMgBiADUAZABmAGUAYgAzADkAZAA2ADQAMQBhADkAZgA4AGIAMgAwAGEAZQAyADAAYwBkADIANQAyAGUAZAA5ADgANQBhADUAYQBmAGEANABhADUAMwA1ADcAYwAzADkAOAA1ADIANgBmADIA\"
$passwordenclair = [System.Runtime.InteropServices.marshal]::«»PtrToStringAuto([System.Runtime.InteropServices.marshal]::«»SecureStringToBSTR($(ConvertTo-SecureString -String $standardstring -Key $key)))
openfiles /query /s monServeur /u monCompte /p $passwordenclair /fo CSV > C:\temp\fichiers_ouverts.csv
[/code:1]
je pense que c'est clair ! ou crypté
@MiKaDo : désolé mais ta deuxième solution pose le même problème que la première
@dds69 : tu a plusieurs solutions a ton problème, je t'en donne deux sur la même base :
premier cas : tu veux saisir a chaque fois le mot de passe,
[code:1]$secureString = read-host -assecurestring
$passe_en_clair = [System.Runtime.InteropServices.marshal]::«»PtrToStringAuto([System.Runtime.InteropServices.marshal]::«»SecureStringToBSTR($securestring))
$passe_en_clair
[/code:1]
deuxieme cas : pas de saisi du mot de passe, ça se passe en deux etape :
1) d'abord tu crypte le mot de passe, à faire une seule fois :
[code:1]# création du mot de passe crypté
# a faire avant
$key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43) # cette de 24 caractères peut être changé
$standardstring = convertfrom-securestring (read-host -assecurestring) -key $key[/code:1]la variable $standardstring contient le mot de passe crypté du type : [code:1]76492d1116743f0423413b16050a5345MgB8AFMAOAB6AE4AdgBoAEwAUABVAFYANgBZAEEAMgBtAEQAQwBQAFIAQQBTAEEAPQA9AHwAZAA2ADUAYwBlADAANAA3ADMAOQBlAGQAYQBjADgAZgA4AGEAOAA4ADUANwAxADAAZgAwADgAMwA4ADgAMwA4ADAAMwBiAGEAMABjA
DcAYQA0ADUAMgBiADUAZABmAGUAYgAzADkAZAA2ADQAMQBhADkAZgA4AGIAMgAwAGEAZQAyADAAYwBkADIANQAyAGUAZAA5ADgANQBhADUAYQBmAGEANABhADUAMwA1ADcAYwAzADkAOAA1ADIANgBmADIA[/code:1]
2) tu utilise ton mot de passe dans ton script :
[code:1]# utilisation d'un mot de passe crypté converti en clair avec clé
$key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
$standardstring = \"76492d1116743f0423413b16050a5345MgB8AFMAOAB6AE4AdgBoAEwAUABVAFYANgBZAEEAMgBtAEQAQwBQAFIAQQBTAEEAPQA9AHwAZAA2ADUAYwBlADAANAA3ADMAOQBlAGQAYQBjADgAZgA4AGEAOAA4ADUANwAxADAAZgAwADgAMwA4ADgAMwA4ADAAMwBiAGEAMABjA
DcAYQA0ADUAMgBiADUAZABmAGUAYgAzADkAZAA2ADQAMQBhADkAZgA4AGIAMgAwAGEAZQAyADAAYwBkADIANQAyAGUAZAA5ADgANQBhADUAYQBmAGEANABhADUAMwA1ADcAYwAzADkAOAA1ADIANgBmADIA\"
$passwordenclair = [System.Runtime.InteropServices.marshal]::«»PtrToStringAuto([System.Runtime.InteropServices.marshal]::«»SecureStringToBSTR($(ConvertTo-SecureString -String $standardstring -Key $key)))
openfiles /query /s monServeur /u monCompte /p $passwordenclair /fo CSV > C:\temp\fichiers_ouverts.csv
[/code:1]
je pense que c'est clair ! ou crypté
Connexion ou Créer un compte pour participer à la conversation.
- dds69
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 9 ans 4 mois #22629
par dds69
Réponse de dds69 sur le sujet Re:Crypter un mot de passe
Bonjour,
@6ratgus un grand merci pour ton aide et tes indications.
Ça fonctionne parfaitement:)
Merci a vous deux pour vos explication
cordialement
dds69
@6ratgus un grand merci pour ton aide et tes indications.
Ça fonctionne parfaitement:)
Merci a vous deux pour vos explication
cordialement
dds69
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.043 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu]Crypter un mot de passe