Question [System.Io.File] ???

Plus d'informations
il y a 9 ans 1 semaine #19492 par darphboubou
[System.Io.File] ??? a été créé par darphboubou
Bonjour,

J'ai trouvé ce scripte qui permet d'exporter les photo depuis l'AD.

[code:1]

$User=GET-ADUser TOTO –properties thumbnailphoto

$Filename='C:\Photos\Export.jpg'

[System.Io.File]::WriteAllBytes($Filename, $User.Thumbnailphoto)

[/code:1]

Ma question est la suivante, comment le scripteur a su qu'il avait besoin de [System.Io.File]::WriteAllBytes pour importer la photo. ou a t-il pu trouver cette information?

pourquoi system.io.file et pas autre chose?

Merci d'avance pour vos retour.

Cordialement

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

Plus d'informations
il y a 9 ans 6 jours #19498 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:[System.Io.File] ???
Bonjour Darphboubou,

En fait lorsque tu ne sais pas quelque chose, il est bon d'aller chercher les informations dans la base Microsoft MSDN et/ou Technet.

Une recherche sur les mots clés \"thumbnailphoto AD attribute MSDN\" dans Bing ou Google m'a permis de tomber sur la fiche support.microsoft.com/en-us/kb/292029/en-us qui explique :

...The thumbNailPhoto attribute contains octet string type data. The AD interprets octet string data as an array of bytes. ...


C'est à dire que l'attribut contient un dump d'un fichier image, autrement le contenu exact d'un fichier.

La méthode WriteAllBytes du Framework .NET permet d'écrire un flux d'octets sur disque. Je pense (à tester) qu'en PowerShell on aurait pu écrire un truc du genre :

[code:1]
$User=GET-ADUser TOTO –properties thumbnailphoto

$Filename='C:\Photos\Export.jpg'

$User.thumbnailphoto | Set-Content -file $Filename -encoding Byte

[/code:1]

Voire :
[code:1]
Set-Content -inputobject $User.thumbnailphoto -file $Filename -encoding Byte
[/code:1]

La seconde forme (si elle marche) serait plus performante que la première car on évite le pipeline qui lui a tendance à ralentir l'exécution.

Arnaud<br><br>Message édité par: Arnaud, à: 13/04/15 17:06

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 9 ans 6 jours #19499 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:[System.Io.File] ???
Salut,
Je suppose que la lecture de MSDN permet de savoir que cette propriété/attribut est un tableau d'octets (cf. Object(Replica-Link )).

Ensuite, les classes d'entrées sorties sont regroupées l'espace de nom Sytem.IO .
Pour un fichier c'est forcément la classe File.
Enfin la méthode WriteAllBytes est la seule à écrire un fichier à partir d'un tableau d'octets.
[edit]
Devancé par Arnaud<br><br>Message édité par: Laurent Dardenne, à: 13/04/15 17:08

Tutoriels PowerShell

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

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