Jacques's profilejanelPhotosBlogLists Tools Help
    December 07

    Faire d'une liste plusieurs variables en un seul coup

    Dans mon billet sur l’import et l’export des credentials, j’ai utilisé une syntaxe qui a appelé un commentaire de la part d’Arnaud :
     
    $username,$password = type $filename
     
    Cette ligne suppose que le contenu de $filename va être retourné sous forme d’une liste (System.Array). Le premier élément de la liste sera affecté à la variable $username et l’élément suivant sera affecté à la variable $password.
     
    Le fichier $filename a été créé par le script export-credential.ps1. Regardons de plus près un fichier $filename créé sur mon poste :
     
    PS> type cred.txt
    \janel
    01000000d06c9ddf0115d1118c7a00c04fc297eb010000000ea455d65181ad438e3639faf77e7ebc0000000002000000000003660000a8000000100
    0000009d9b7e4e3f7bcde09d555a4e21d0b670000000004800000a00000001000af004e1681e8ff0a56ccb867796cd63d6db810000000c5a30b7222
    450fde060021fa5b4abfa0240000003fa185001ed0132aaf91ecd50e0e49ae4f566b82
     
    Le fichier contient deux lignes : la première représente bien le nom d’utilisateur (\janel) et la seconde est une longue suite de caractères alphanumériques. Il s’agit de la version cryptée du mot de passe. Le fait que la deuxième ligne s’étale sur plusieurs lignes à l’affichage ne veut pas dire qu’il s’agit de plusieurs lignes au sens où PowerShell l’entend dans le contexte d’un fichier texte : une ligne est simplement une suite de caractères terminée par un retour chariot ou par une fin de fichier, quelle que soit sa longueur.
     
    Quand on lit un fichier avec la commande type (alias de la commandelette get-content), celle-ci retourne une liste dont les éléments sont les lignes du fichier. On a donc bien ici deux éléments correspondant aux deux lignes du fichier.
     
    Mais, vous demandez-vous, que se passerait-il si le fichier contenait plus de lignes ? Ah, la bonne question que voilà ! Regardons avec un autre exemple :
     
    PS> $pouce,$index = 1..5
    PS> $pouce
    1
    PS> $index
    2
    3
    4
    5
     
    Aïe ! La variable $pouce a bien reçu la valeur 1, premier élément de la liste créée par 1..5. Mais $index a récupéré tous les éléments suivants, de 2 à 5. Si j’avais voulu ne lui affecter que la valeur 2, il aurait fallu soit préciser que je ne voulais que les deux premiers éléments de la liste, soit ajouter une troisième variable pour récupérer les autres valeurs :
     
    PS> $pouce,$index = (1..5)[0..1]
    PS> $pouce
    1
    PS> $index
    2
    PS> $pouce,$index,$autres = 1..5
    PS> $pouce
    1
    PS> $index
    2
    PS> $autres
    3
    4
    5
     
    Voilà. A vous de continuer d’explorer ce que vous pouvez faire avec cette syntaxe.
     
    Janel

    Un avant-goût du prochain livre sur PowerShell en français

    Oui, ça y est, les livres sur Windows PowerShell arrivent en français comme s’il en pleuvait ! Enfin, presque. Pour l’instant il n’y en a qu’un de publié, voir pour cela un de mes billets récents sur ce même blog.
     
    Cela dit, voici enfin un avant-goût sur le prochain livre à paraître sur le sujet, et le premier à paraître entièrement rédigé en français :
     
     
    Si vous avez déjà passé un peu de temps à chercher de l’aide sur PowerShell, vous connaissez sans doute déjà les auteurs du livre : Arnaud Petitjean et Robin Lemesle sont les fondateurs et les principaux animateurs de l’excellent site powershell-scripting.com.
     
    L’article ci-dessus fournit un résumé du livre et un aperçu de la table des matières. Un lien est également fourni vers Amazon pour précommander le livre (37 €). Pour avoir participé à la relecture de l’ouvrage, je peux témoigner de la pertinence des nombreux exemples fournis et de la densité des explications qui accompagnent le lecteur dans une meilleure compréhension des technologies accessibles grâce à PowerShell (.NET Framework, WMI, ADSI, etc).
     
    Bonnes fêtes de fin d’année !
     
    Janel