Question
[Resolu]System.Byte[] to sting
- Seals
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 13 ans 11 mois #6698
par Seals
Réponse de Seals sur le sujet Re:System.Byte[] to sting
Y a pas de problème... Je me demande même parfois comment tu fais pour être aussi réactif
Voici le code d'erreur :
[code:1][DBG]: PS U:\>>> $Strb=new-object System.Text.StringBuilder
$user.unixUserPassword|% {[void]$Strb.Append([char]$_)}
$Strb.ToString()
Impossible de convertir la valeur « System.Byte[] » du type « System.Byte[] » e
n type « System.Char ».
Au niveau de ligne : 2 Caractère : 54
+ $user.unixUserPassword|% {[void]$Strb.Append([char]$_ <<<< )}
+ CategoryInfo : NotSpecified: (:«») [], RuntimeException
+ FullyQualifiedErrorId : RuntimeException
[/code:1]
Voici le code d'erreur :
[code:1][DBG]: PS U:\>>> $Strb=new-object System.Text.StringBuilder
$user.unixUserPassword|% {[void]$Strb.Append([char]$_)}
$Strb.ToString()
Impossible de convertir la valeur « System.Byte[] » du type « System.Byte[] » e
n type « System.Char ».
Au niveau de ligne : 2 Caractère : 54
+ $user.unixUserPassword|% {[void]$Strb.Append([char]$_ <<<< )}
+ CategoryInfo : NotSpecified: (:«») [], RuntimeException
+ FullyQualifiedErrorId : RuntimeException
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 13 ans 11 mois #6699
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:System.Byte[] to sting
Seals écrit:
Seals écrit:
J'en ai oublié un bout je crois, essai ceci :
[code:1] $Strb=new-object System.Text.StringBuilder
$user.unixUserPassword.GetEnumerator()|% {[void]$Strb.Append([char]$_)}
$Strb.ToString()[/code:1]
Si cela ne fonctionne tjr pas, peux-tu joindre un fichier d'export Xml (Export-Clixml) de l'objet $user.unixUserPassword ?<br><br>Message édité par: Laurent Dardenne, à: 4/05/10 17:04
En ce moment je ne suis pas en posteJe me demande même parfois comment tu fais pour être aussi réactif
Seals écrit:
Voici le code d'erreur :
J'en ai oublié un bout je crois, essai ceci :
[code:1] $Strb=new-object System.Text.StringBuilder
$user.unixUserPassword.GetEnumerator()|% {[void]$Strb.Append([char]$_)}
$Strb.ToString()[/code:1]
Si cela ne fonctionne tjr pas, peux-tu joindre un fichier d'export Xml (Export-Clixml) de l'objet $user.unixUserPassword ?<br><br>Message édité par: Laurent Dardenne, à: 4/05/10 17:04
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Seals
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 13 ans 11 mois #6700
par Seals
Réponse de Seals sur le sujet Re:System.Byte[] to sting
Toujours pas concluant.
[code:1][DBG]: PS U:\>>> $Strb=new-object System.Text.StringBuilder
$user.unixUserPassword.GetEnumerator()|% {[void]$Strb.Append([char]$_)}
$Strb.ToString()
Impossible de convertir la valeur « System.Byte[] » du type « System.Byte[] » e
n type « System.Char ».
Au niveau de ligne : 2 Caractère : 70
+ $user.unixUserPassword.GetEnumerator()|% {[void]$Strb.Append([char]$_ <<<< )}
+ CategoryInfo : NotSpecified: (:«») [], RuntimeException
+ FullyQualifiedErrorId : RuntimeException
[/code:1]
Sinon, je te joins le fichier xml. Mais le contenu n'est pas enorme.
Merci
Au cas ou ca ne fonctionne pas (la pj) :
[code:1]<Objs Version=\"1.1.0.1\" xmlns=\"schemas.microsoft.com/powershell/2004/04\">
<Obj RefId=\"0\">
<TN RefId=\"0\">
<T>System.DirectoryServices.PropertyValueCollection</T>
<T>System.Collections.CollectionBase</T>
<T>System.Object</T>
</TN>
<LST>
<BA>QUJDRCFlZmdoMTIzNDUkNjc4OTA=</BA>
</LST>
</Obj>
</Objs>[/code:1]<br><br>Message édité par: Seals, à: 5/05/10 08:16
[code:1][DBG]: PS U:\>>> $Strb=new-object System.Text.StringBuilder
$user.unixUserPassword.GetEnumerator()|% {[void]$Strb.Append([char]$_)}
$Strb.ToString()
Impossible de convertir la valeur « System.Byte[] » du type « System.Byte[] » e
n type « System.Char ».
Au niveau de ligne : 2 Caractère : 70
+ $user.unixUserPassword.GetEnumerator()|% {[void]$Strb.Append([char]$_ <<<< )}
+ CategoryInfo : NotSpecified: (:«») [], RuntimeException
+ FullyQualifiedErrorId : RuntimeException
[/code:1]
Sinon, je te joins le fichier xml. Mais le contenu n'est pas enorme.
Merci
La pièce jointe unixUserPassword.txt est absente ou indisponible
Au cas ou ca ne fonctionne pas (la pj) :
[code:1]<Objs Version=\"1.1.0.1\" xmlns=\"schemas.microsoft.com/powershell/2004/04\">
<Obj RefId=\"0\">
<TN RefId=\"0\">
<T>System.DirectoryServices.PropertyValueCollection</T>
<T>System.Collections.CollectionBase</T>
<T>System.Object</T>
</TN>
<LST>
<BA>QUJDRCFlZmdoMTIzNDUkNjc4OTA=</BA>
</LST>
</Obj>
</Objs>[/code:1]<br><br>Message édité par: Seals, à: 5/05/10 08:16
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 13 ans 11 mois #6701
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:System.Byte[] to sting
Seals écrit:
Ceci devrait fonctionner :
[code:1][String][Char[]]$$user.unixUserPassword[0][/code:1]
Ce code fonctionne si j'importe l'objet :
[code:1]
$o=import-clixml unixUserPassword.xml
$o
[String][Char[]]$o[0]
#UneChaîne
[/code:1]
Peut être faudra-t-il changer le mot de passe, si toutefois tu ne l'avais pas déjà fait dans le fichier XML.
Oui, mon erreur était de considérer que la collection contenait n éléments alors qu'elle en contient un seul qui est un tableau de byte représentant une string.Toujours pas concluant.
Ceci devrait fonctionner :
[code:1][String][Char[]]$$user.unixUserPassword[0][/code:1]
Ce code fonctionne si j'importe l'objet :
[code:1]
$o=import-clixml unixUserPassword.xml
$o
[String][Char[]]$o[0]
#UneChaîne
[/code:1]
Peut être faudra-t-il changer le mot de passe, si toutefois tu ne l'avais pas déjà fait dans le fichier XML.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Seals
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 13 ans 11 mois #6702
par Seals
Réponse de Seals sur le sujet Re:[Resolu]System.Byte[] to sting
Ca fonctionne très bien. je retrouve le mot de passe.
Par contre, hier, tu étais proche de la solution. Tu m'avais indiqué:
Peux tu m'expliquer la différence ?
puisque les deux sont des tableaux ou tu spécifies juste la première position dans un cas.
Merci...<br><br>Message édité par: Seals, à: 5/05/10 11:33
Par contre, hier, tu étais proche de la solution. Tu m'avais indiqué:
[String][Char[]]$user.unixUserPassword
Peux tu m'expliquer la différence ?
puisque les deux sont des tableaux ou tu spécifies juste la première position dans un cas.
Merci...<br><br>Message édité par: Seals, à: 5/05/10 11:33
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 13 ans 11 mois #6703
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:System.Byte[] to sting
Seals écrit:
Et pour la conversion on est obligé de caster d'abord le tableau de byte en un tableau de char, puis en string, celle-ci étant implicitement un tableau de char.
PowerShell est dynamique et non typé, mais si on manipule des objets dotnet, celui-ci étant fortement typé, on est obligé de passer par ces casts (transtypage). (sous PS on parle plutot de variable contrainte sur le type)
ça été un peu laborieux, mais une fois qu'on connait le type de l'objet que l'on manipule, la solution pointe le bout de son nez <br><br>Message édité par: Laurent Dardenne, à: 5/05/10 11:41
Dans le premier cas, sans index, on accéde à l'objet collection, dans le dernier cas on accède à un des objets de la collection, puisque celle-ci est \"indéxable\"( voir ce post ).puisque les deux sont des tableaux ou tu spécifies juste la première position dans un cas.
Et pour la conversion on est obligé de caster d'abord le tableau de byte en un tableau de char, puis en string, celle-ci étant implicitement un tableau de char.
PowerShell est dynamique et non typé, mais si on manipule des objets dotnet, celui-ci étant fortement typé, on est obligé de passer par ces casts (transtypage). (sous PS on parle plutot de variable contrainte sur le type)
ça été un peu laborieux, mais une fois qu'on connait le type de l'objet que l'on manipule, la solution pointe le bout de son nez <br><br>Message édité par: Laurent Dardenne, à: 5/05/10 11:41
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.077 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- [Resolu]System.Byte[] to sting