mardi 20 décembre 2011

Invoke-Expression

NOM
    Invoke-Expression

RÉSUMÉ
    Exécute les commandes ou les expressions sur l'ordinateur local.

SYNTAXE
    Invoke-Expression [-Command] <string> [<CommonParameters>]


DESCRIPTION
    L'applet de commande Invoke-Expression évalue ou exécute une chaîne spécifiée en tant que commande et retourne les résultats de l'expression ou de la commande. Sans Invoke-Expression, une chaîne envoyée à la ligne de commande serait retournée (répétée) inchangée.


PARAMÈTRES
    -Command <string>
        Spécifie la commande ou l'expression à exécuter. Tapez la commande ou l'expression, ou entrez une variable contenant la commande ou l'expression. Le paramètre Command est obligatoire.

        Obligatoire ?                true
        Position ?                   1
        Valeur par défaut
        Accepter l'entrée de pipeline ?       true (ByValue)
        Accepter les caractères génériques ?  false

    <CommonParameters>
        Cette applet de commande prend en charge les paramètres courants : Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer et OutVariable. Pour plus d'informations, tapez
        « get-help about_commonparameters ».

ENTRÉES
    System.String ou PSObject
        Vous pouvez diriger un objet représentant la commande vers Invoke-Expression. Utilisez la variable automatique $input pour représenter les objets d'entrée dans la commande.


SORTIES
    PSObject
        Retourne la sortie générée par la commande appelée (valeur du paramètre Command).


NOTES


        -- Une expression est une instruction qui peut être évaluée et qui produit un résultat, telle qu'une commande Windows PowerShell.

        -- Soyez vigilant lorsque vous utilisez l'applet de commande Invoke-Expression dans des scripts. Lorsque vous utilisez Invoke-Expression pour exécuter une commande entrée par l'utilisateur, vérifiez que la commande est sûre avant de l'exécuter. En général, il vaut mieux concevoir votre script avec des options d'entrée prédéfinies, plutôt que d'autoriser les entrées libres.


    -------------------------- EXEMPLE 1 --------------------------

    C:\PS>$command = "Get-Process"

    C:\PS> $command
    Get-Process


    C:\PS> invoke-expression $command

    Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
    -------  ------    -----      ----- -----   ------     -- -----------
        296       4     1572       1956    20     0.53   1348 AdtAgent
        270       6     1328        800    34     0.06   2396 alg
         67       2      620        484    20     0.22    716 ati2evxx
       1060      15    12904      11840    74    11.48    892 CcmExec
       1400      33    25280      37544   223    38.44   2564 communicator
    ...


    Description
    -----------
    Cet exemple illustre l'utilisation de l'applet de commande Invoke-Expression pour évaluer une expression. Sans Invoke-Expression, l'expression est imprimée, mais non évaluée.

    La première commande attribue la valeur « Get-Process » (une chaîne) à la variable $command.

    La deuxième commande montre le résultat obtenu lorsque l'on tape le nom de la variable sur la ligne de commande. Windows PowerShell répète la chaîne.

    La troisième commande utilise Invoke-Expression pour évaluer la chaîne.





    -------------------------- EXEMPLE 2 --------------------------

    C:\PS>invoke-expression -command "C:\ps-test\testscript.ps1"

    C:\PS> "C:\ps-test\testscript.ps1" | invoke-expression


    Description
    -----------
    Ces commandes utilisent Invoke-Expression pour exécuter un script, TestScript.ps1, sur l'ordinateur local. Les deux commandes sont équivalentes. La première utilise le paramètre Command pour spécifier la commande à exécuter. La deuxième utilise un opérateur de pipeline (|) pour envoyer la chaîne de commande à Invoke-Expression.





    -------------------------- EXEMPLE 3 --------------------------

    C:\PS>$cmd = 'get-process | where {$_.cpu -gt 1000}'

    C:\PS> iex $command


    Description
    -----------
    Cet exemple exécute une chaîne de commande enregistrée dans la variable $cmd.

    La chaîne de commande est entourée de guillemets simples parce qu'elle inclut une variable, $_, qui représente l'objet actuel. Si elle était entourée de guillemets doubles, la variable $_ serait remplacée par sa valeur avant d'être enregistrée dans la chaîne $command.





    -------------------------- EXEMPLE 4 --------------------------

    C:\PS>$cmdlet_name = "get-eventlog"

    C:\PS> $example_number = 1

    C:\PS> $example_code = (get-help $cmdlet_name).examples.example[($example_number-1)].code

    C:\PS> invoke-expression $example_code


    Description
    -----------
    Cette commande récupère et exécute le premier exemple de la rubrique d'aide de l'applet de commande Get-EventLog.

    Pour exécuter un exemple d'une autre applet de commande, remplacez la valeur de la variable $cmdlet_name par le nom de l'applet de commande en question. Ensuite, remplacez la variable $example_number par le numéro de l'exemple que vous souhaitez exécuter. Si le numéro d'exemple n'est pas valide, la commande échoue.






LIENS CONNEXES
    Online version: http://go.microsoft.com/fwlink/?LinkID=113343
    Invoke-Command

Aucun commentaire:

Enregistrer un commentaire