Les Fonctions Et Scripts Avancees Sous PowerShell

  • Published on
    29-Dec-2015

  • View
    246

  • Download
    1

Embed Size (px)

Transcript

  • Laurent Dardenne, libre de droits pour tous les usages non commerciaux. Page 1 / 67

    PowerShell version 2 : Les fonctions avances.

    Par Laurent Dardenne, le 13 mars 2010.

    Niveau

    La version 2 de PowerShell apporte de nombreuses volutions, lune concerne lcriture de cmdlet en code natif laide de fonctions dites avances utilisant diffrents types dattributs. Dans le texte suivant je vous propose dtudier la cration de cmdlets sans utiliser de langage compil dotnet.

    Une bonne connaissance des principes de base de PowerShell, notamment celui du pipeline, du fonctionnement des cmdlets et des classes dotnet, facilitera la lecture de ce tutoriel qui est tout de mme orient dveloppeur. Difficile de faire autrement sur un tel sujet, mais cela reste un tutoriel sur le scripting avanc sous PowerShell. Merci Thomas Garcia pour sa relecture et ses corrections orthographiques.

    Les fichiers sources : ftp://ftp-developpez.com/laurent-dardenne/articles/Windows/PowerShell/Les-fonctions-et-scripts-avancees-sous-PowerShell-version-2/fichiers/Les-fonctions-et-scripts-avancees-sous-PowerShell-version-2.zip

    Test avec PowerShell V2 sous Windows XP sp3. Site de lauteur : http://laurent-dardenne.developpez.com/

  • Laurent Dardenne, libre de droits pour tous les usages non commerciaux. Page 2 / 67

    Chapitres

    1 QUELLES SONT LES AVANCEES ?.............................................................................................................4 1.1 PRINCIPE DUN ATTRIBUT ............................................................................................................................5 1.2 LES TYPES DATTRIBUT DE PARAMETRE ......................................................................................................5

    1.2.1 Attribut Alias..........................................................................................................................................5 1.2.2 Attributs de validation de paramtres....................................................................................................6 1.2.3 Attribut Parameter.................................................................................................................................6

    1.3 DECLARER UN ATTRIBUT.............................................................................................................................6

    2 LIAISON DE PARAMETRES .........................................................................................................................8 2.1 CONVENTION DE NOMMAGE DE PARAMETRES...........................................................................................10

    3 LA GESTION DU PIPELINE ........................................................................................................................11 3.1 DIFFERENCES ENTRE LA VERSION 1 ET LA VERSION 2................................................................................12

    4 LES ARGUMENTS DE LATTRIBUT PARAMETER ..............................................................................16 4.1 MANDATORY.............................................................................................................................................16 4.2 POSITION ...................................................................................................................................................16 4.3 HELPMESSAGE ..........................................................................................................................................17 4.4 VALUEFROMPIPELINE ...............................................................................................................................17 4.5 VALUEFROMPIPELINEBYPROPERTYNAME ...............................................................................................17 4.6 VALUEFROMREMAININGARGUMENTS ......................................................................................................21 4.7 PARAMETERSETNAME ..............................................................................................................................21

    4.7.1 Validit des jeux de paramtres...........................................................................................................23 4.7.2 Lattribut OutputType..........................................................................................................................25

    5 LES ATTRIBUTS DE VALIDATION...........................................................................................................26 5.1 ALLOWNULL.............................................................................................................................................28 5.2 VALIDATENOTNULL .................................................................................................................................28 5.3 ALLOWEMPTYSTRING...............................................................................................................................29 5.4 VALIDATENOTNULLOREMPTY .................................................................................................................29 5.5 ALLOWEMPTYCOLLECTION ......................................................................................................................29 5.6 VALIDATECOUNT ......................................................................................................................................30 5.7 VALIDATELENGTH ....................................................................................................................................30 5.8 VALIDATEPATTERN...................................................................................................................................31 5.9 VALIDATERANGE ......................................................................................................................................31 5.10 VALIDATESET ...........................................................................................................................................31 5.11 VALIDATESCRIPT ......................................................................................................................................32

    5.11.1 Cration de rgles de validation .....................................................................................................33 5.11.2 Usage de fonction de validation dans un module............................................................................34

    5.12 DIFFERENCES DE COMPORTEMENT ENTRE UNE FONCTION AVANCEE ET UN CMDLET .................................36

    6 CREATION DE PARAMETRES DYNAMIQUES ......................................................................................36

    7 LA VARIABLE AUTOMATIQUE PSCMDLET .........................................................................................42 7.1 GESTION DES EXCEPTIONS.........................................................................................................................43 7.2 LA VARIABLE ERRORVIEW........................................................................................................................45 7.3 PROPOS DU BLOC END ............................................................................................................................45

    8 LES ARGUMENTS DE LATTRIBUT CMDLETBINDING .....................................................................46 8.1 SUPPORTSSHOULDPROCESS ......................................................................................................................46

    8.1.1 propos des capacits des providers ..................................................................................................47 8.1.2 La mthode ShouldContinue................................................................................................................48

  • Laurent Dardenne, libre de droits pour tous les usages non commerciaux. Page 3 / 67

    8.2 CONFIRMIMPACT.......................................................................................................................................50 8.2.1 La variable $ConfirmPreference .........................................................................................................50 8.2.2 La variable $WhatIfPreference............................................................................................................51

    8.3 SUPPORTSTRANSACTIONS .........................................................................................................................52 8.4 DEFAULTPARAMETERSETNAME ...............................................................................................................52

    9 ACCEDER AUX DETAILS DUNE COMMANDE.....................................................................................52 9.1 ACCEDER AUX INFORMATIONS DUNE FONCTION ......................................................................................52 9.2 ACCEDER AUX INFORMATIONS DUN CMDLET ...........................................................................................55 9.3 ACCEDER AUX INFORMATIONS DUN FICHIER SCRIPT ................................................................................56 9.4 ACCEDER AUX INFORMATIONS DUN MODULE...........................................................................................56 9.5 UNE APPROCHE DU SCRIPTING BASEE SUR DES PLUG-INS...........................................................................57

    10 PROXY DE CMDLET ....................................................................................................................................57 10.1 STEPPABLE PIPELINES ..............................................................................................................................

Recommended

View more >