mardi 20 décembre 2011

Invoke-WmiMethod

NOM
    Invoke-WmiMethod

RÉSUMÉ
    Appelle des méthodes Windows Management Instrumentation (WMI).

SYNTAXE
    Invoke-WmiMethod [-Class] <string> [[-ArgumentList] <Object[]>] [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

    Invoke-WmiMethod [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

    Invoke-WmiMethod -InputObject <ManagementObject> [-ArgumentList <Object[]>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

    Invoke-WmiMethod -Path <string> [-ArgumentList <Object[]>] [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

    Invoke-WmiMethod [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

    Invoke-WmiMethod [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]


DESCRIPTION
    L'applet de commande Invoke-WmiMethod appelle des méthodes WMI.


PARAMÈTRES
    -ArgumentList <Object[]>
        Spécifie les paramètres à passer à la méthode appelée. La valeur de ce paramètre doit être un tableau d'objets et ils doivent apparaître dans l'ordre requis par la méthode appelée.

        Important : une seconde valeur de $null est obligatoire, sinon, la commande générera une erreur, telle que « Impossible d'effectuer un transtypage de l'objet de type « System.Byte » en type « System.Array ». »

        L'exemple suivant utilise un tableau d'objets ($binSD) suivi d'une valeur Null ($null) :

        PS C:\> $acl = get-acl test.txt
        PS C:\> $binSD = $acl.GetSecurityDescriptorBinaryForm()
        PS C:\> invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -argumentlist $binSD, $null

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -AsJob [<SwitchParameter>]
        Exécute la commande en tant que tâche en arrière-plan. Utilisez ce paramètre pour exécuter des commandes dont l'exécution nécessite beaucoup de temps.

        Lorsque vous utilisez le paramètre AsJob, la commande retourne un objet qui représente la tâche en arrière-plan, puis affiche l'invite de commandes. Vous pouvez continuer à travailler dans la session pendant l'exécution de la tâche. Si Invoke-WmiMethod est utilisé sur un ordinateur distant, la tâche est créée sur l'ordinateur local, et les résultats provenant d'ordinateurs distants sont automatiquement retournés à l'ordinateur local. Pour gérer la tâche, utilisez les applets de commande contenant le nom Job (les applets de commande Job). Pour obtenir les résultats de la tâche, utilisez l'applet de commande Receive-Job.

        Remarque : pour utiliser ce paramètre avec des ordinateurs distants, l'ordinateur local et l'ordinateur distant doivent être configurés pour la communication à distance. En outre, vous devez démarrer Windows PowerShell en utilisant l'option « Exécuter en tant qu'administrateur » dans Windows Vista et les versions ultérieures de Windows. Pour plus d'informations, consultez about_Remote_Requirements.

        Pour plus d'informations sur les tâches en arrière-plan Windows PowerShell, consultez about_Jobs et about_Remote_Jobs.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Authentication <AuthenticationLevel>
        Spécifie le niveau d'authentification à utiliser avec la connexion WMI. Les valeurs valides sont :

        -1 : Unchanged
        0 : Default
        1 : None (Aucune authentification n'est effectuée.)
        2 : Connect (L'authentification est effectuée uniquement lorsque le client établit une relation avec l'application.)
        3 : Call (L'authentification est effectuée uniquement au début de chaque appel, quand l'application reçoit une demande.)
        4 : Packet (L'authentification est effectuée sur toutes les données reçues du client.)
        5 : PacketIntegrity (Toutes les données transférées entre le client et l'application sont authentifiées et vérifiées.)
        6 : PacketPrivacy (Les propriétés des autres niveaux d'authentification sont utilisées, et toutes les données sont chiffrées.)

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Authority <string>
        Spécifie l'autorité à utiliser pour authentifier la connexion WMI. Vous pouvez spécifier l'authentification Kerberos ou NTLM standard. Pour utiliser NTLM, affectez au paramètre d'autorité la valeur ntlmdomain:<Nom_Domaine>, où <Nom_Domaine> identifie un nom de domaine NTLM valide. Pour utiliser Kerberos, spécifiez kerberos:<Nom_Domaine>\<Nom_Serveur>. Vous ne pouvez pas inclure le paramètre d'autorité lorsque vous vous connectez à l'ordinateur local.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Class <string>
        Spécifie la classe WMI qui contient une méthode statique à appeler.

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

    -ComputerName <string[]>
        Spécifie l'ordinateur sur lequel vous voulez exécuter l'opération de gestion. La valeur peut être un nom de domaine complet, un nom NetBIOS ou une adresse IP. Utilisez le nom de l'ordinateur local, localhost ou un point (.) pour spécifier l'ordinateur local. L'ordinateur local est la valeur par défaut. Lorsque l'ordinateur distant se trouve dans un domaine différent de celui de l'utilisateur, un nom de domaine complet est requis. Vous pouvez également définir la valeur de ce paramètre en redirigeant la valeur vers le paramètre.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Credential <PSCredential>
        Spécifie un compte d'utilisateur qui a l'autorisation d'exécuter cette action. La valeur par défaut est l'utili
        sateur actuel. Tapez un nom d'utilisateur, tel que « User01 », « Domain01\User01 » ou « User@Contoso.com ». Vous pouvez également entrer un objet PSCredential, tel qu'un objet qui est retourné par l'applet de commande Get-Credential. Lorsque vous tapez un nom d'utilisateur, vous êtes invité à entrer un mot de passe.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -EnableAllPrivileges [<SwitchParameter>]
        Active tous les privilèges de l'utilisateur actuel avant que la commande ne passe l'appel WMI.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Impersonation <ImpersonationLevel>
        Spécifie le niveau d'emprunt d'identité à utiliser. Les valeurs valides sont :

        0 : Default (Lit le Registre local pour connaître le niveau d'emprunt d'identité par défaut, qui a généralement la valeur « 3 : Impersonate ».)
        1 : Anonymous (Masque les informations d'identification de l'appelant.)
        2 : Identify (Permet aux objets d'interroger les informations d'identification de l'appelant.)
        3 : Impersonate (Permet aux objets d'utiliser les informations d'identification de l'appelant.)
        4 : Delegate (Permet aux objets d'autoriser d'autres objets à utiliser les informations d'identification de l'appelant.)

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -InputObject <ManagementObject>
        Spécifie un objet ManagementObject à utiliser en entrée. Lorsque ce paramètre est utilisé, tous les autres paramètres (sauf les paramètres Flag et Argument) sont ignorés.

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

    -Locale <string>
        Spécifie les paramètres régionaux par défaut pour les objets WMI. Spécifiez la valeur du paramètre Locale sous forme de tableau au format MS_<LCID> dans l'ordre de préférence.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Name <string>
        Spécifie le nom de la méthode à appeler. Ce paramètre est obligatoire et ne peut ni avoir la valeur Null ni être vide.

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

    -Namespace <string>
        Lorsqu'il est utilisé avec le paramètre Class, ce paramètre spécifie l'espace de noms du répertoire de stockage WMI dans lequel figure la classe ou l'objet WMI référencé.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Path <string>
        Spécifie le chemin d'accès de l'objet WMI d'une classe WMI, ou spécifie le chemin d'accès de l'objet WMI d'une instance d'une classe WMI. La classe ou l'instance que vous spécifiez doit contenir la méthode spécifiée dans le paramètre Name.

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

    -ThrottleLimit <int>
        Permet à l'utilisateur de spécifier une valeur de limitation pour le nombre d'opérations WMI pouvant être exécutées simultanément. Ce paramètre est utilisé avec le paramètre AsJob. La limite d'accélération s'applique uniquement à la commande actuelle, et non à la session ou à l'ordinateur.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Confirm [<SwitchParameter>]
        Vous invite à confirmer l'exécution de la commande.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -WhatIf [<SwitchParameter>]
        Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        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
    Aucun
        Cette applet de commande n'accepte aucune entrée.


SORTIES
    Aucun
        Cette applet de commande ne génère aucune sortie.


NOTES





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

    C:\PS>invoke-wmimethod -path win32_process -name create -argumentlist notepad.exe

    __GENUS          : 2
    __CLASS          : __PARAMETERS
    __SUPERCLASS     :
    __DYNASTY        : __PARAMETERS
    __RELPATH        :
    __PROPERTY_COUNT : 2
    __DERIVATION     : {}
    __SERVER         :
    __NAMESPACE      :
    __PATH           :
    ProcessId        : 4844
    ReturnValue      : 0


    Description
    -----------
    Cette commande démarre une instance de Bloc-notes en appelant la méthode Create de la classe Win32_Process.

    Remarque : la propriété ReturnValue est remplie avec un 0, et la propriété ProcessId est remplie avec un entier (numéro d'identification du processus suivant) si la commande est effectuée.





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

    C:\PS>invoke-wmimethod -path "CIM_DataFile.Name='C:\scripts\test.txt'" -Name Rename -ArgumentList "C:\scripts\test_bu.txt"

    __GENUS          : 2
    __CLASS          : __PARAMETERS
    __SUPERCLASS     :
    __DYNASTY        : __PARAMETERS
    __RELPATH        :
    __PROPERTY_COUNT : 1
    __DERIVATION     : {}
    __SERVER         :
    __NAMESPACE      :
    __PATH           :
    ReturnValue      : 0


    Description
    -----------
    Cette commande renomme un fichier. Elle utilise le paramètre Path pour référencer une instance de la classe CIM_DataFile. Elle applique ensuite la méthode Rename à cette instance particulière.

    Remarque : la propriété ReturnValue est remplie avec un 0 si la commande est effectuée.






LIENS CONNEXES
    Online version: http://go.microsoft.com/fwlink/?LinkID=113346
    Get-WmiObject
    Remove-WmiObject
    Set-WmiInstance
    Get-WSManInstance
    Invoke-WSManAction
    New-WSManInstance
    Remove-WSManInstance

Invoke-Item

NOM
    Invoke-Item

RÉSUMÉ
    Exécute l'action par défaut sur l'élément spécifié.

SYNTAXE
    Invoke-Item [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

    Invoke-Item [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]


DESCRIPTION
    L'applet de commande Invoke-Item exécute l'action par défaut sur l'élément spécifié. Par exemple, elle exécute un fichier exécutable ou ouvre un fichier textuel dans l'application associée au type de fichier textuel. L'action par défaut dépend du type d'élément et est déterminée par le fournisseur Windows PowerShell qui fournit l'accès aux données.


PARAMÈTRES
    -Credential <PSCredential>
        Spécifie un compte d'utilisateur qui a l'autorisation d'exécuter cette action. La valeur par défaut est l'utili
        sateur actuel.

        Tapez un nom d'utilisateur, tel que « User01 » ou « Domain01\User01 », ou entrez un objet PSCredential, tel que celui généré par l'applet de commande Get-Credential. Si vous tapez un nom d'utilisateur, vous êtes invité à entrer un mot de passe.

        Ce paramètre n'est pas pris en charge par les fournisseurs installés avec Windows PowerShell.

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

    -Exclude <string[]>
        Omet les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d'accès, tel que « *.txt ». Les caractères génériques sont autorisés.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Filter <string>
        Spécifie un filtre dans le format ou le langage du fournisseur. La valeur de ce paramètre qualifie le paramètre Path. La syntaxe du filtre, notamment l'utilisation de caractères génériques, dépend du fournisseur. Les filtres sont plus efficaces que les autres paramètres, car le fournisseur les applique lors de la récupération des objets, plutôt que de laisser le soin à Windows PowerShell de filtrer les objets une fois qu'ils ont été récupérés.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Include <string[]>
        Exécute l'action par défaut uniquement sur les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d'accès, tel que « *.txt ». Les caractères génériques sont autorisés.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -LiteralPath <string[]>
        Spécifie un chemin d'accès à l'élément. La valeur de -LiteralPath est utilisée exactement telle que vous la tapez. Aucun caractère n'est interprété en tant que caractère générique. Si le chemin d'accès inclut des caractères d'échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à Windows PowerShell qu'aucun caractère ne doit être interprété en tant que séquence d'échappement.

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

    -Path <string[]>
        Spécifie le chemin d'accès de l'élément sélectionné.

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

    -Confirm [<SwitchParameter>]
        Vous invite à confirmer l'exécution de la commande.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -WhatIf [<SwitchParameter>]
        Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -UseTransaction [<SwitchParameter>]
        Inclut la commande dans la transaction active. Ce paramètre est valide uniquement lorsqu'une transaction est en
         cours. Pour plus d'informations, consultez about_Transactions.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        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
        Vous pouvez diriger une chaîne qui contient un chemin d'accès vers Invoke-Item.


SORTIES
    Aucun
        La commande ne génère pas de sortie. Toutefois, la sortie peut être générée par l'élément qu'il appelle.


NOTES


        L'applet de commande Invoke-Item est conçue pour utiliser les données exposées par n'importe quel fournisseur.
        Pour répertorier les fournisseurs disponibles dans votre session, tapez « Get-PsSProvider ». Pour plus d'informations, consultez about_Providers.


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

    C:\PS>invoke-item C:\Test\aliasApr04.doc


    Description
    -----------
    Cette commande ouvre le fichier aliasApr04.doc dans Microsoft Office Word. Dans ce cas, l'ouverture dans Word est l'action par défaut pour les fichiers .doc.





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

    C:\PS>invoke-item "C:\Documents and Settings\Lister\My Documents\*.xls"


    Description
    -----------
    Cette commande ouvre toutes les feuilles de calcul Microsoft Office Excel figurant dans le dossier C:\Documents and Settings\Lister\My Documents. Chaque feuille de calcul est ouverte dans une nouvelle instance d'Excel. Dans ce cas, l'ouverture dans Excel est l'action par défaut pour les fichiers .xls.






LIENS CONNEXES
    Online version: http://go.microsoft.com/fwlink/?LinkID=113345
    about_Providers
    Clear-Item
    Get-Item
    Move-Item
    Set-Item
    New-Item
    Remove-Item
    Rename-Item
    Copy-Item

Invoke-History

NOM
    Invoke-History

RÉSUMÉ
    Exécute les commandes depuis l'historique de la session.

SYNTAXE
    Invoke-History [[-Id] <string>] [-Confirm] [-WhatIf] [<CommonParameters>]


DESCRIPTION
    L'applet de commande Invoke-History exécute les commandes depuis l'historique de la session. Vous pouvez passer les objets représentant les commandes de Get-History à Invoke-History ou identifier les commandes contenues dans l'historique actif en utilisant leur numéro d'ID. Pour rechercher le numéro d'identification d'une commande, utilisez Get-History.


PARAMÈTRES
    -Id <string>
        Identifie une commande de l'historique. Vous pouvez taper le numéro d'ID de la commande ou les premiers caractères de cette dernière.

        Si vous tapez des caractères, Invoke-History fait correspondre en premier les commandes les plus récentes. Si vous omettez ce paramètre, Invoke-History exécute la dernière commande (la plus récente). Le nom de paramètre (« id ») est facultatif. Pour rechercher le numéro d'ID d'une commande, utilisez Get-History.

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

    -Confirm [<SwitchParameter>]
        Vous invite à confirmer l'exécution de la commande.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -WhatIf [<SwitchParameter>]
        Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        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
    Aucun
        Vous ne pouvez pas diriger d'entrée vers cette applet de commande.


SORTIES
    Aucun
        Invoke-History ne génère pas de sortie, mais la sortie peut être générée par les commandes que l'applet de commande Invoke-History exécute.


NOTES


        L'historique de la session correspond à une liste des commandes entrées pendant la session, accompagnées de leur ID. Il représente l'ordre d'exécution, l'état, ainsi que les heures de début et de fin de la commande. À mesure que vous entrez chaque commande, Windows PowerShell l'ajoute à l'historique afin que vous puissiez la réutiliser.  Pour plus d'informations sur l'historique de la session, consultez about_History.

        Vous pouvez également faire référence à Invoke-History en utilisant ses alias intégrés, « r » et « ihy ». Pour plus d'informations, consultez about_Aliases.


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

    C:\PS>invoke-history


    Description
    -----------
    Cette commande exécute la dernière commande (la plus récente) de l'historique de la session. Vous pouvez abréger cette commande sous la forme « r » (pensez à « répétition » ou « réexécution »), qui est l'alias correspondant à Invoke-History.





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

    C:\PS>invoke-history -id 132


    Description
    -----------
    Cette commande exécute la commande de l'historique de la session qui porte l'ID 132. Le nom du paramètre id étant facultatif, vous pouvez abréger cette commande sous la forme « Invoke-History 132 », « ihy 132 » ou « r 132 ».





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

    C:\PS>invoke-history get-pr


    Description
    -----------
    Cette commande exécute la commande Get-Process la plus récente de l'historique de la session. Lorsque vous tapez des caractères pour le paramètre Id, Invoke-History exécute la première commande correspondant au modèle qu'elle détecte, en commençant par les commandes les plus récentes. Cette commande utilise le paramètre ID, mais omet le nom de paramètre facultatif.





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

    C:\PS>invoke-history (16..24), 27


    Description
    -----------
    Cette commande exécute les commandes 16 à 24 et la commande 27. Vous pouvez énumérer plusieurs ID et plages d'ID séparés par des virgules.





    -------------------------- EXEMPLE 5 --------------------------

    C:\PS>get-history -id 255 -count 7 | invoke-history


    Description
    -----------
    Cette commande exécute les 7 commandes de l'historique qui se terminent par la commande 255 (en général, de la commande 249 à la commande 255). Elle utilise l'applet de commande Get-History pour récupérer ces commandes. L'opérateur de pipeline (|) passe les commandes à Invoke-History, qui les exécute.






LIENS CONNEXES
    Online version: http://go.microsoft.com/fwlink/?LinkID=113344
    about_History
    Get-History
    Add-History
    Clear-History

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

jeudi 15 décembre 2011

Créer une clé USB multi-boot (plusieurs OS bootable) facilement

Takeaway: Get instructions on how to use XBoot or UNetbootin to have a USB stick with more than one operating system.
When you want to have a single USB stick with multiple operating systems, the end result must be a reliable USB drive that contains the operating systems you need. Here’s how to do this with two tools: XBoot (using Windows 7) and UNetbootin (from within Linux). Both are simple, but the Linux version requires more manual work.

XBoot in Windows 7

Requirements
  • XBoot
  • ISOs of the operating systems you want
Instructions
Download and run XBoot on your Windows 7 machine. To run XBoot, just unzip the downloaded file, change into the newly created directory, and double-click the .exe to run the software. When you run the software, you will see the main window (Figure A).
Figure A

The operating systems listed will not show up on your XBoot window unless you installed them.
To add ISO images, open Explorer and drag and drop the ISOs into XBoot. Some ISO images (e.g., Fedora 16) are automatically recognized. When you drag an unrecognized ISO into XBoot, a new window will appear (Figure B) where you must select the ISO (or the closest distribution) from a drop-down. For example, I selected Ubuntu for Bodhi Linux and Puppy Linux for MacPup. After you select the correct version from the drop-down, click Add This File.
Figure B

XBoot window when you drag an unrecognized ISO into it.
After all ISOs are added (make sure their combined size does not exceed that of the USB drive), click the Create USB button near the bottom right corner of the main window. Once this completes the process, you can reboot the machine (making sure it will boot from a USB device) and enjoy your multiboot on a stick.

UNetbootin from within Linux

Requirements
Instructions
  1. Download the UNetbootin tool for Linux.
  2. From a terminal window, give the downloaded file executable permissions with the command chmod u+x unetbootin-linux-XXX (where XXX is the architecture).
  3. Run UnNetbootin with the command ./unetbootin-linux-XXX (where XXX is the architecture).
  4. From the main window, select the distribution you want to install or use a downloaded ISO (Figure C).
  5. After UNetbootin completes the install of the first OS, reboot the machine to test the OS on the USB drive.
Figure C

Make absolutely sure you select the right USB device from the Drive drop-down before you continue; otherwise, you could wipe out the wrong drive.
Now it gets a little tricky. You must copy everything from the USB drive to a new directory on your hard drive. Then, repeat the steps above, selecting the next OS you want on the USB drive.
Now open two file manager windows: one to the USB drive and one to the newly created directory containing all the files from the first install you did on UNetbootin. You want to copy everything from the hard drive to the USB drive except the following:
  • vesamenu.c32
  • ubnpathl.txt
  • ubnkern
  • ubninit
  • ubnfilel.txt
  • syslinux.cfg
  • ldlinux.sys
In the folder on your desktop, you must open the syslinux.cfg file. From that file, copy the last four lines and paste them in the syslinux.cfg file on the USB drive. Those lines will look like this:
label ubnentry0
menu label DISTRIBUTION
kernel /vmlinuz
append initrd=/initrd.gz pmedia=cd
where DISTRIBUTION is the name of the distribution you originally installed.
You must copy the above four lines between the “label ubnentry1″ and “label ubnentry2″ entries. Make sure to relabel the “ubnenetryX” entries so they are in consecutive numerical order. After you make the necessary edits, close and save the file and reboot the system.
You should now have a multi-boot USB drive that is in working order. Wth a large enough USB drive, you can carry around any number of operating systems that serve numerous purposes.

Message d'erreur : « Le service de profil utilisateur n'a pas pu ouvrir de session. Impossible de charger le profil d'utilisateur » lors de la connexion à Windows 7 ou Windows Vista

Lorsque vous ouvrez une session sur un ordinateur Windows Vista ou Windows 7 à l'aide d'un profil temporaire, le message d'erreur suivant s'affiche :
Le service de profil utilisateur n'a pas pu ouvrir de session. Impossible de charger le profil utilisateur.
Cette erreur peut se produire si le paramètre de stratégie de groupe « Ne pas ouvrir de session aux utilisateurs ayant des profils temporaires » est configuré.

Cause

Ce problème peut se produire si le dossier de profil utilisateur a été supprimé manuellement. La suppression manuelle d'un dossier de profil n'efface pas l'identificateur de sécurité (SID) de la liste de profils dans le Registre.

AVERTISSEMENT : Microsoft DÉCONSEILLE d'en faire une méthode standard pour supprimer les profils utilisateur. L'approche documentée et prise en charge utilise les paramètres système avancés dans les propriétés système, paramètres « Profil des utilisateurs ». Pour les applications, cette fonction est disponible à l'aide de l'API « DeleteProfile ».

Si le SID est présent, Windows essaie de charger le profil à l'aide de ProfileImagePath qui renvoie à un chemin inexistant. Par conséquent, il est impossible de charger le profil.

Résolution



Important :

Parfois, Windows ne lit pas votre profil utilisateur correctement, par exemple, si votre logiciel antivirus analyse votre ordinateur lorsque vous tentez de vous connecter. Avant d'appliquer les méthodes ci-dessous, tentez de redémarrer votre ordinateur et de vous reconnecter avec votre compte d'utilisateur pour résoudre le problème.


Si le redémarrage de votre ordinateur ne résout pas ce problème, suivez les étapes indiquées dans les méthodes ci-dessous.

Remarque Vous devez pouvoir vous connecter à un compte d'administrateur pour corriger votre profil utilisateur ou copier vos données dans un nouveau compte. Avant de commencer la résolution du problème, connectez-vous à Windows à l'aide d'un autre compte disposant d'autorisations administratives ou démarrez en mode sans échec pour vous connecter au compte d'administrateur intégré. Pour plus d'informations sur la procédure de démarrage en mode sans échec, reportez-vous au site Web de Microsoft à l'adresse suivante :


Méthode 1 : Corrigez le profil de compte d'utilisateur


Pour ce faire, procédez comme suit :

Important Cette section, méthode ou tâche explique la procédure de modification du Registre. Toutefois, des problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Par conséquent, veillez à suivre ces étapes scrupuleusement. Pour plus de protection, effectuez une sauvegarde du Registre avant de le modifier. Vous serez alors en mesure de le restaurer en cas de problème. Pour plus d'informations sur la procédure de sauvegarde et de restauration du Registre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
322756 Procédure de sauvegarde, de modification et de restauration du Registre dans Windows XP
  1. Cliquez sur démarrer


  2. Dans la zone Rechercher (Windows Vista) ou Rechercher les programmes et fichiers (Windows 7), tapez regedit, puis appuyez sur Entrée.
  3. Si vous y êtes invité par l'UAC, cliquez sur Continuer (Windows Vista) ou sur Oui (Windows 7).
  4. Dans l'Éditeur du Registre, accédez à :
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
  5. Dans le volet gauche, recherchez le nom du dossier qui commence par S-1-5 (clé SID), suivi d'un long numéro. Cliquez ensuite sur chaque dossier, recherchez ProfileImagePath dans le volet droit et double-cliquez dessus pour vérifier qu'il s'agit bien du profil de compte d'utilisateur qui présente l'erreur.



    • Si vous trouvez deux dossiers dont le nom commence par S-1-5 suivi du même long numéro et si l'un d'eux se termine par .bak, remplacez le dossier .bak par le nom de dossier normal. Pour ce faire, procédez comme suit :
      1. Cliquez avec le bouton droit sur le dossier sans .bak et cliquez sur Renommer. Puis, ajoutez .ba à la fin du nom du dossier.


      2. Cliquez avec le bouton droit sur le dossier avec .bak et cliquez sur Renommer. Puis, supprimez .bak à la fin du nom du dossier.


      3. Cliquez avec le bouton droit sur le dossier avec .ba et cliquez sur Renommer. Puis, remplacez .ba par .bak à la fin du nom du dossier.


    • Si vous ne trouvez qu'un dossier dont le nom commence par S-1-5 suivi d'un long numéro et qui se termine par .bak, cliquez avec le bouton droit sur le dossier et choisissez Renommer. Puis, supprimez .bak à la fin du nom du dossier.
  6. Sélectionnez dans le volet droit le dossier sans .bak, double-cliquez sur RefCount, tapez 0, puis cliquez sur OK.


  7. Sélectionnez dans le volet droit le dossier sans .bak, double-cliquez sur État, tapez 0, puis cliquez sur OK.


  8. Fermez l'Éditeur du Registre.
  9. Redémarrez l'ordinateur.
  10. Reconnectez-vous avec votre compte.

Méthode 2 : Connectez vous à Windows et copiez vos données dans un nouveau compte

Créez un nouveau compte et copiez les données de l'ancien compte dans le nouveau. Pour plus d'informations sur cette procédure, reportez-vous aux sites Web de Microsoft aux adresses suivantes :

Windows 7
Windows Vista

Méthode 3 : Supprimez le SID de l'erreur et créez un nouveau profil


Pour supprimer le SID de l'erreur et créer un nouveau profil, procédez comme suit :
  1. Supprimez le SID de l'erreur.
    Afin que nous puissions résoudre le problème pour vous, consultez la section « Aidez-moi ». Si vous préférez le résoudre vous-même, consultez la section « Je résous le problème moi-même ».

    Aidez-moi

    Pour résoudre automatiquement ce problème, cliquez sur le lien Résoudre ce problème. Cliquez ensuite sur Exécuter dans la boîte de dialogue Téléchargement de fichier et suivez la procédure indiquée par l'Assistant.
    Résoudre ce problème
    Microsoft Fix it 50446

    Remarque Cet Assistant peut exister en anglais uniquement. La correction automatique fonctionne toutefois pour les versions de Windows dans d'autres langues.

    Remarque Si vous n'êtes pas sur l'ordinateur sur lequel le problème survient, vous pouvez enregistrer la résolution automatique sur un lecteur flash ou sur un CD-ROM et l'exécuter ensuite sur l'ordinateur concerné par le problème.

    Je résous le problème moi-même

    Important Cette section, méthode ou tâche contient des étapes vous indiquant comment modifier le Registre. Toutefois, des problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Par conséquent, veillez à suivre ces étapes scrupuleusement. Pour plus de protection, effectuez une sauvegarde du Registre avant de le modifier. Vous serez alors en mesure de le restaurer en cas de problème. Pour plus d'informations sur la procédure de sauvegarde et de restauration du Registre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
    322756 Procédure de sauvegarde, de modification et de restauration du Registre dans Windows XP

    Pour résoudre ce problème vous-même, procédez comme suit :
    1. Supprimez le profil à l'aide de la boîte de dialogue Propriétés de l'ordinateur. Pour ce faire, procédez comme suit :
      1. Cliquez sur Démarrer, cliquez avec le bouton droit sur Ordinateur, puis cliquez sur Propriétés.
      2. Cliquez sur Modifier les paramètres.
      3. Dans la boîte de dialogue Propriétés système, cliquez sur l'onglet Avancé.
      4. Sous Profil des utilisateurs, cliquez sur Paramètres.
      5. Dans la boîte de dialogue Profil des utilisateurs, sélectionnez le profil que vous souhaitez supprimer, cliquez sur Supprimer, puis sur OK.
    2. Cliquez sur Démarrer


      , tapez regedit dans la zone Rechercher, puis appuyez sur Entrée.

    3. Recherchez, puis développez la sous-clé de Registre suivante : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList Cliquez avec le bouton droit sur le SID approprié, puis cliquez sur Supprimer.

    4. Ouvrez une session sur l'ordinateur et créez un nouveau profil.

lundi 12 décembre 2011

Invoke-Command


NOM
    Invoke-Command

RÉSUMÉ
    Exécute les commandes sur des ordinateurs locaux et distants.

SYNTAXE
    Invoke-Command [-ScriptBlock] <scriptblock> [[-ComputerName] <string[]>] [-ApplicationName <string>] [-AsJob] [-Authentication {Default | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-HideComputerName] [-JobName <string>] [-Port <int>] [-SessionOption <PSSessionOption>] [-ThrottleLimit <int>] [-UseSSL] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

    Invoke-Command [-FilePath] <string> [[-ComputerName] <string[]>] [-ApplicationName <string>] [-AsJob] [-Authentication {Default | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-ConfigurationName <string>] [-Credential <PSCredential>] [-HideComputerName] [-JobName <string>] [-Port <int>] [-SessionOption <PSSessionOption>] [-ThrottleLimit <int>] [-UseSSL] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

    Invoke-Command [-FilePath] <string> [[-Session] <PSSession[]>] [-AsJob] [-HideComputerName] [-JobName <string>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

    Invoke-Command [-FilePath] <string> [[-ConnectionURI] <Uri[]>] [-AllowRedirection] [-AsJob] [-Authentication {Default | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-ConfigurationName <string>] [-Credential <PSCredential>] [-HideComputerName] [-JobName <string>] [-SessionOption <PSSessionOption>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

    Invoke-Command [-ScriptBlock] <scriptblock> [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

    Invoke-Command [-ScriptBlock] <scriptblock> [[-Session] <PSSession[]>] [-AsJob] [-HideComputerName] [-JobName <string>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]

    Invoke-Command [-ScriptBlock] <scriptblock> [[-ConnectionURI] <Uri[]>] [-AllowRedirection] [-AsJob] [-Authentication {Default | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-HideComputerName] [-JobName <string>] [-SessionOption <PSSessionOption>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>]


DESCRIPTION
    L'applet de commande Invoke-Command exécute des commandes sur ordinateur local ou distant et retourne toute les sorties des commandes, notamment les erreurs. Avec une commande Invoke-Command unique, vous pouvez exécuter des commandes sur plusieurs ordinateurs.

    Pour exécuter une commande unique sur un ordinateur distant, utilisez le paramètre ComputerName. Pour exécuter une série de commandes connexes qui partagent des données, créez une session PSSession (une connexion permanente) sur l'ordinateur distant, puis utilisez le paramètre Session de Invoke-Command pour exécuter la commande dans la session PSSession.

    Vous pouvez également utiliser Invoke-Command sur un ordinateur local pour évaluer ou exécuter une chaîne dans un bloc de script tel qu'une commande. Windows PowerShell convertit le bloc de script en une commande et exécute immédiatement la commande dans la portée actuelle, au lieu de répercuter simplement la chaîne sur la ligne de commande.

    Avant d'utiliser Invoke-Command pour exécuter des commandes sur un ordinateur distant, consultez about_Remote.


PARAMÈTRES
    -AllowRedirection [<SwitchParameter>]
        Autorise la redirection de cette connexion vers un autre URI.

        Lorsque vous utilisez le paramètre ConnectionURI, la destination distante peut retourner une instruction pour rediriger vers un URI différent. Par défaut, Windows PowerShell ne redirige pas les connexions, mais vous pouvez utiliser le paramètre AllowRedirection pour lui permettre de rediriger la connexion.

        Vous pouvez également limiter le nombre de redirections de la connexion en définissant la propriété MaximumConnectionRedirectionCount de la variable de préférence $PSSessionOption ou la propriété MaximumConnectionRedirectionCount de la valeur du paramètre SessionOption. La valeur par défaut est 5. Pour plus d'informations, consultez la description du paramètre SessionOption et la rubrique d'aide relative à l'applet de commande New-PSSessionOption.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -ApplicationName <string>
        Spécifie le segment du nom d'application dans l'URI de connexion. Utilisez ce paramètre pour spécifier le nom d'application lorsque vous n'employez pas le paramètre ConnectionURI dans la commande.

        La valeur par défaut est la valeur de la variable de préférence $PSSessionApplicationName sur l'ordinateur local. Si cette variable de préférence n'est pas définie, la valeur par défaut est WSMAN. Cette valeur convient pour la plupart des utilisations. Pour plus d'informations, consultez about_Preference_Variables.

        Le service WinRM utilise le nom d'application afin de sélectionner un écouteur pour le traitement de la demande de connexion. La valeur de ce paramètre doit correspondre à celle de la propriété URLPrefix d'un écouteur sur l'ordinateur distant.

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

    -ArgumentList <Object[]>
        Fournit les valeurs des variables locales dans la commande. Les variables de la commande sont remplacées par ces valeurs avant l'exécution de la commande sur l'ordinateur distant. Entrez les valeurs dans une liste séparée par des virgules. Les valeurs sont associées aux variables dans leur ordre d'affichage. L'alias pour ArgumentList est « Args ».

        Les valeurs figurant dans ArgumentList peuvent être des valeurs réelles, telles que « 1024 », ou des références à des variables locales, telles que « $max ».

        Pour utiliser des variables locales dans une commande, utilisez le format de commande suivant :
        {param($<nom1>[, $<nom2>]...) <commande-avec-variables-locales>} -ArgumentList <valeur | variable-$local>

        Le mot clé « param » répertorie les variables locales utilisées dans la commande. Le paramètre ArgumentList fournit les valeurs des variables, dans leur ordre d'affichage.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -AsJob [<SwitchParameter>]
        Exécute la commande en tant que tâche en arrière-plan sur un ordinateur distant. Utilisez ce paramètre pour exécuter des commandes dont l'exécution nécessite beaucoup de temps.

        Lorsque vous utilisez AsJob, la commande retourne un objet qui représente la tâche, puis affiche l'invite de commandes. Vous pouvez continuer à travailler dans la session pendant l'exécution de la tâche.  Pour gérer la tâche, utilisez les applets de commande Job. Pour obtenir les résultats de la tâche, utilisez Receive-Job.

        L'utilisation du paramètre AsJob revient à utiliser Invoke-Command pour exécuter une commande Start-Job à distance. Toutefois, la tâche est créée sur l'ordinateur local avec AsJob, bien qu'elle s'exécute sur un ordinateur distant, et les résultats de la tâche distante sont retournés automatiquement à l'ordinateur local.

        Pour plus d'informations sur les tâches en arrière-plan Windows PowerShell, consultez about_Jobs et about_Remote_Jobs.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut                     Aucun
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Authentication <AuthenticationMechanism>
        Spécifie le mécanisme permettant d'authentifier les informations d'identification de l'utilisateur.   Les valeurs valides sont Default, Basic, Credssp, Digest, Kerberos, Negotiate et NegotiateWithImplicitCredential.  La valeur par défaut est Default.

        L'authentification CredSSP n'est disponible que dans Windows Vista, Windows Server 2008 et les versions ultérieures de Windows.

        Pour plus d'informations sur les valeurs de ce paramètre, consultez la description de l'énumération System.Management.Automation.Runspaces.AuthenticationMechanism dans MSDN.

        ATTENTION : l'authentification CredSSP (Credential Security Service Provider), au cours de laquelle les informations d'identification de l'utilisateur sont passées à un ordinateur distant pour être authentifiées, est conçue pour les commandes qui requièrent une authentification sur plusieurs ressources, telles que l'accès à un partage réseau distant. Ce mécanisme augmente le risque de sécurité lié à l'opération distante. Si l'ordinateur distant n'est pas fiable, les informations d'ident
        ification qui lui sont passées peuvent être utilisées pour contrôler la session réseau.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut                     Default
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -CertificateThumbprint <string>
        Spécifie le certificat de clé publique numérique (X509) d'un compte d'utilisateur qui a l'autorisation d'exécuter cette action. Entrez l'empreinte numérique du certificat.

        Les certificats sont utilisés dans une authentification basée sur les certificats clients. Ils peuvent être mappés uniquement à des comptes d'utilisateur local ; ils ne fonctionnent pas avec des comptes de domaine.

        Pour obtenir une empreinte numérique de certificat, utilisez les commandes Get-Item ou Get-ChildItem sur le lecteur Cert: de Windows PowerShell.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -ComputerName <string[]>
        Spécifie les ordinateurs sur lesquels la commande s'exécute. La valeur par défaut est l'ordinateur local.

        Lorsque vous utilisez le paramètre ComputerName, Windows PowerShell crée une liaison temporaire qui est utilisée uniquement pour exécuter la commande spécifiée et est fermée ensuite. Si vous avez besoin d'une connexion permanente, utilisez le paramètre Session.

        Tapez le nom NETBIOS, l'adresse IP ou le nom de domaine complet d'un ou de plusieurs ordinateurs dans une liste séparée par des virgules. Pour spécifier l'ordinateur local, tapez le nom de l'ordinateur, « localhost » ou un point (.).

        Pour utiliser une adresse IP dans la valeur du paramètre ComputerName, la commande doit inclure le paramètre Credential. En outre, l'ordinateur doit être configuré pour le transport HTTPS ou l'adresse IP de l'ordinateur distant doit être incluse dans la liste TrustedHosts WinRM de l'ordinateur local. Pour obtenir des instructions sur l'ajout d'un nom d'ordinateur à la liste TrustedHosts, consultez « Comment ajouter un ordinateur à la liste des hôtes approuvés » dans about_Remote_Trouble
        shooting.

        Remarque : sous Windows Vista et les versions ultérieures de Windows, pour inclure l'ordinateur local dans la valeur du paramètre ComputerName, vous devez ouvrir Windows PowerShell avec l'option Exécuter en tant qu'administrateur.

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

    -ConfigurationName <string>
        Spécifie la configuration de session utilisée pour la nouvelle session PSSession.

        Entrez un nom de configuration ou l'URI de ressource complet d'une configuration de session. Si vous spécifiez uniquement le nom de la configuration, l'URI de schéma suivant est ajouté en tant que préfixe : http://schemas.microsoft.com/powershell.

        La configuration d'une session se trouve sur l'ordinateur distant. Si la configuration de session spécifiée n'existe pas sur l'ordinateur distant, la commande échoue.

        La valeur par défaut est la valeur de la variable de préférence $PSSessionConfigurationName sur l'ordinateur local. Si cette variable de préférence n'est pas définie, la valeur par défaut est Microsoft.PowerShell. Pour plus d'informations, consultez about_preference_variables.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut                     http://Schemas.Microsoft.com/PowerShell/Microsoft.PowerShell
        Accepter l'entrée de pipeline ?       true (ByPropertyName)
        Accepter les caractères génériques ?  false

    -ConnectionURI <Uri[]>
        Spécifie un URI (Uniform Resource Identifier) qui définit le point de terminaison de connexion. L'URI doit être complet.

        Le format de cette chaîne est le suivant :
            <Transport>://<ComputerName>:<Port>/<ApplicationName>

        La valeur par défaut est :
            http://localhost:80/WSMAN

        Les valeurs valides pour le segment Transport de l'URI sont HTTP et HTTPS. Si vous ne spécifiez pas de valeur ConnectionURI, vous pouvez utiliser les paramètres UseSSL, ComputerName, Port et ApplicationName pour indiquer les valeurs d'URI.

        Si l'ordinateur de destination redirige la connexion vers un URI différent, Windows PowerShell empêche la redirection à moins que vous n'utilisiez le paramètre AllowRedirection dans la commande.

        Obligatoire ?                false
        Position ?                   1
        Valeur par défaut                     http://localhost:80/wsman
        Accepter l'entrée de pipeline ?       true (ByPropertyName)
        Accepter les caractères génériques ?  false

    -Credential <PSCredential>
        Spécifie un compte d'utilisateur qui a l'autorisation d'exécuter cette action. La valeur par défaut est l'utilisateur actuel.

        Tapez un nom d'utilisateur, comme « User01 » ou « Domain01\User01 », ou entrez une variable contenant un objet PSCredential, tel que celui généré par l'applet de commande Get-Credential. Lorsque vous tapez un nom d'utilisateur, vous êtes invité à entrer un mot de passe.

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

    -FilePath <string>
        Exécute le script local spécifié sur un ou plusieurs ordinateurs distants. Entrez le chemin d'accès et le nom de fichier du script, ou dirigez un chemin d'accès de script vers Invoke-Command. Le script doit résider sur l'ordinateur local ou dans un répertoire auquel l'ordinateur local peut accéder. Utilisez le paramètre ArgumentList pour spécifier les valeurs de paramètres dans le script.

        Lorsque vous utilisez ce paramètre, Windows PowerShell convertit le contenu du fichier de script spécifié en un bloc de script, transmet le bloc de script à l'ordinateur distant, puis l'exécute sur l'ordinateur distant.

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

    -HideComputerName [<SwitchParameter>]
        Omet le nom d'ordinateur de chaque objet de l'affichage de sortie. Par défaut, le nom de l'ordinateur qui a généré l'objet apparaît dans l'affichage.

        Ce paramètre affecte uniquement l'affichage de sortie. L'objet n'est pas modifié.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -InputObject <psobject>
        Spécifie l'entrée de la commande. Entrez une variable contenant les objets ou tapez une commande ou une expression qui obtient les objets.

        Lorsque vous utilisez InputObject, utilisez la variable automatique $input dans la valeur du paramètre ScriptBlock pour représenter les objets d'entrée.

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

    -JobName <string>
        Spécifie un nom convivial pour la tâche en arrière-plan. Par défaut, les tâches sont nommées « Tâche<n> », où <n> est un nombre ordinal.  Ce paramètre est valide uniquement avec le paramètre AsJob.

        Si vous utilisez le paramètre JobName dans une commande, la commande est exécutée en tant que tâche et Invoke-Command retourne un objet de traitement, même si vous n'incluez pas le paramètre AsJob dans la commande.

        Pour plus d'informations sur les tâches en arrière-plan Windows PowerShell, consultez about_Jobs.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut                     Job&lt;n&gt;
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -Port <int>
        Spécifie le port réseau sur l'ordinateur distant utilisé pour cette commande. La valeur par défaut est le port 80 (le port HTTP).

        Avant d'utiliser un autre port, vous devez configurer l'écouteur WinRM sur l'ordinateur distant pour écouter sur ce port. Pour configurer l'écouteur, tapez les deux commandes suivantes à l'invite Windows PowerShell :

        remove-item -path wsman:\Localhost\listener\listener* -recurse
        new-item -path wsman:\Localhost\listener -Transport http -Address * -port <numéro-port>

        N'utilisez pas le paramètre Port à moins d'y être obligé. Le Port défini dans la commande s'applique à tous les ordinateurs ou sessions sur lesquels la commande s'exécute. Le paramètre d'un autre port peut empêcher l'exécution de la commande sur tous les ordinateurs.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -ScriptBlock <scriptblock>
        Spécifie les commandes à exécuter. Placez les commandes entre accolades ( { } ) pour créer un bloc de script. Ce paramètre est obligatoire.

        Par défaut, toutes les variables de la commande sont évaluées sur l'ordinateur distant. Pour inclure des variables locales dans la commande, utilisez le paramètre ArgumentList.

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

    -Session <PSSession[]>
        Exécute la commande dans les sessions Windows PowerShell spécifiées (PSSession). Entrez une variable qui contient les sessions PSSession ou une commande qui crée ou obtient les sessions PSSession, telle qu'une commande New-PSSession ou Get-PSSession.

        Lorsque vous créez une session PSSession, Windows PowerShell établit une connexion permanente à l'ordinateur distant. Utilisez une session PSSession pour exécuter une série de commandes connexes qui partagent des données. Pour exécuter une commande simple ou une série de commandes non liées, utilisez le paramètre ComputerName.

        Pour créer une session PSSession, utilisez l'applet de commande New-PSSession. Pour plus d'informations, consultez about_PSSessions.

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

    -SessionOption <PSSessionOption>
        Définit des options avancées pour la session. Entrez un objet SessionOption que vous créez à l'aide de l'applet de commande New-PSSessionOption.

        Les valeurs par défaut des options sont déterminées par la valeur de la variable de préférence $PSSessionOption, si elle est définie. Sinon, la session utilise les valeurs par défaut du système.

        Pour obtenir une description des options de session, notamment des valeurs par défaut, consultez la rubrique d'aide relative à l'applet de commande New-PSSessionOption. Pour plus d'informations sur la variable de préférence $PSSessionOption, consultez about_Preference_Variables.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -ThrottleLimit <int>
        Spécifie le nombre maximal de connexions simultanées qui peuvent être établies pour exécuter cette commande. Si vous omettez ce paramètre ou entrez la valeur 0, la valeur par défaut 32 est utilisée.

        La limite d'accélération s'applique uniquement à la commande actuelle, et non à la session ou à l'ordinateur.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut                     32
        Accepter l'entrée de pipeline ?       false
        Accepter les caractères génériques ?  false

    -UseSSL [<SwitchParameter>]
        Utilise le protocole SSL (Secure Sockets Layer) pour établir une connexion avec l'ordinateur distant. Par défaut, SSL n'est pas utilisé.

        La Gestion des services Web chiffre tout le contenu Windows PowerShell transmis sur le réseau. UseSSL est une protection supplémentaire qui envoie les données via HTTPS plutôt que via HTTP.

        Si vous utilisez ce paramètre, mais que SSL n'est pas disponible sur le port utilisé pour la commande, la commande échoue.

        Obligatoire ?                false
        Position ?                   named
        Valeur par défaut
        Accepter l'entrée de pipeline ?       false
        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.Management.Automation.ScriptBlock
        Vous pouvez diriger une commande d'un bloc de script vers Invoke-Command. Utilisez la variable automatique $input pour représenter les objets d'entrée dans la commande.


SORTIES
    System.Management.Automation.PSRemotingJob ou la sortie de la commande appelée
        Lorsque vous utilisez le paramètre AsJob, Invoke-Command retourne un objet de traitement. Sinon, elle retourne la sortie de la commande appelée (valeur du paramètre ScriptBlock).


NOTES


        -- Sous Windows Vista et les versions ultérieures de Windows, pour utiliser le paramètre ComputerName de Invoke-Command pour exécuter une commande sur l'ordinateur local, vous devez ouvrir Windows PowerShell avec l'option Exécuter en tant qu'administrateur.

        -- Lorsque vous exécutez des commandes sur plusieurs ordinateurs, Windows PowerShell se connecte aux ordinateurs dans l'ordre dans lequel ils apparaissent dans la liste. Toutefois, la sortie de la commande est affichée dans l'ordre dans lequel elle est reçue des ordinateurs distants, qui peut être différent.

        -- Les erreurs qui résultent de la commande qui exécute Invoke-Command sont incluses dans les résultats de la commande. Les erreurs qui seraient des erreurs avec fin d'exécution dans une commande locale sont traitées comme des erreurs sans fin d'exécution dans une commande distante. Cette stratégie garantit que les erreurs avec fin d'exécution sur un ordinateur ne terminent pas la commande sur tous les ordinateurs sur lesquels elle est exécutée. Cette pratique est utilisée même quand un
        e commande distante est exécutée sur un ordinateur unique.

        -- Si l'ordinateur distant n'est pas dans un domaine que l'ordinateur local approuve, l'ordinateur peut ne pas être en mesure d'authentifier les informations d'identification de l'utilisateur. Pour ajouter l'ordinateur distant à la liste des « hôtes approuvés » du service Gestion des services Web, utilisez la commande suivante dans le fournisseur WSMAN, où <Nom-Ordinateur-Distant> est le nom de l'ordinateur distant :
        set-item -path wsman:\Localhost\Client\TrustedHosts -value <Nom-Ordinateur-Distant>.


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

    C:\PS>invoke-command -filepath c:\scripts\test.ps1 -computerName Server01

    Disks: C:, D:, E:
    Status: Warning, Normal, Normal


    Description
    -----------
    Cette commande exécute le script Test.ps1 sur l'ordinateur Server01.

    Elle utilise le paramètre FilePath pour spécifier un script se trouvant sur l'ordinateur local. Le script s'exécute sur l'ordinateur distant et les résultats sont renvoyés à l'ordinateur local.





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

    C:\PS>invoke-command -computername server01 -credential domain01\user01 -scriptblock {get-culture}


    Description
    -----------
    Cette commande exécute une commande Get-Culture sur l'ordinateur distant Server01.

    Elle utilise le paramètre ComputerName pour spécifier le nom d'ordinateur et le paramètre Credential pour exécuter la commande dans le contexte de sécurité de « Domain01\User01 », un utilisateur qui a l'autorisation d'exécuter des commandes. Elle utilise le paramètre ScriptBlock pour spécifier la commande à exécuter sur l'ordinateur distant.

    En réponse, Windows PowerShell affiche une boîte de dialogue qui demande le mot de passe et une méthode d'authentification pour le compte User01. Il exécute alors la commande sur l'ordinateur Server01 et retourne le résultat.





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

    C:\PS>$s = new-pssession -computername server02 -credential domain01\user01

    C:\PS> invoke-command -session $s -scriptblock {get-culture}


    Description
    -----------
    Cet exemple exécute la même commande « Get-Culture » dans une session (une connexion permanente) sur l'ordinateur distant Server02. En général, vous créez une session uniquement lorsque vous exécutez une série de commandes sur l'ordinateur distant.

    La première commande utilise l'applet de commande New-PSSession pour créer une session sur l'ordinateur distant Server02. Elle enregistre ensuite la session dans la variable $s.

    La deuxième commande utilise l'applet de commande Invoke-Command pour exécuter la commande Get-Culture sur Server02. Elle utilise le paramètre Session pour spécifier la session enregistrée dans la variable $s.

    En réponse, Windows PowerShell exécute la commande dans la session sur l'ordinateur Server02.





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

    C:\PS>invoke-command -computername Server02 -scriptblock {$p = get-process powershell}

    C:\PS> invoke-command -computername Server02 -scriptblock {$p.virtualmemorysize}
    C:\PS>

    C:\PS> $s = new-pssession -computername Server02
    C:\PS> invoke-command -session $s -scriptblock {$p = get-process powershell}
    C:\PS> invoke-command -session $s -scriptblock {$p.virtualmemorysize}
    17930240


    Description
    -----------
    Cet exemple compare les effets des paramètres ComputerName et Session de l'applet de commande Invoke-Command. Il montre comment utiliser une session pour exécuter une série de commandes qui partagent les mêmes données.

    Les deux premières commandes utilisent le paramètre ComputerName d'Invoke-Command pour exécuter des commandes sur l'ordinateur distant Server02. La première commande utilise la commande Get-Process pour obtenir le processus PowerShell sur l'ordinateur distant et l'enregistrer dans la variable $p. La deuxième commande obtient la valeur de la propriété VirtualMemorySize du processus PowerShell.

    La première commande réussit. Toutefois, la deuxième commande échoue ; en effet, lorsque vous utilisez le paramètre ComputerName, Windows PowerShell crée une connexion uniquement pour exécuter la commande. Il ferme ensuite la connexion lorsque la commande est terminée. La variable $p a été créée dans une connexion, mais elle n'existe pas dans la connexion créée pour la deuxième commande.

    Le problème est résolu par la création d'une session (connexion permanente) sur l'ordinateur distant et par l'exécution des deux commandes connexes dans la même session.

    La troisième commande utilise l'applet de commande New-PSSession pour créer une session sur l'ordinateur Server02. Elle enregistre ensuite la session dans la variable $s. Les quatrième et cinquième commandes répètent la série de commandes utilisée dans le premier jeu, mais dans ce cas, la commande Invoke-Command utilise le paramètre Session pour exécuter les deux commandes dans la même session.

    Dans ce cas, parce que les deux commandes s'exécutent dans la même session, elles réussissent, et la valeur $p reste active dans la session $s pour une utilisation ultérieure.





    -------------------------- EXEMPLE 5 --------------------------

    C:\PS>$command = { get-eventlog -log "windows powershell" | where {$_.message -like "*certificate*"} }

    C:\PS> invoke-command -computername S1, S2 -scriptblock $command


    Description
    -----------
    Cet exemple montre comment entrer une commande qui est enregistrée dans une variable locale.

    Lorsque la commande entière est enregistrée dans une variable locale, vous pouvez spécifier la variable comme la valeur du paramètre ScriptBlock. Vous n'avez pas à utiliser le mot clé « param » ou la variable ArgumentList pour envoyer la valeur de la variable locale.

    La première commande enregistre une commande Get-Eventlog dans la variable $command. Elle est mise en forme comme un bloc de script.

    La deuxième commande utilise l'applet de commande Invoke-Command pour exécuter la commande de $command sur les ordinateurs distants S1 et S2.





    -------------------------- EXEMPLE 6 --------------------------

    C:\PS>invoke-command -computername server01, server02, TST-0143, localhost -configurationname MySession.PowerShell -scriptblock {get-eventlog "windows powershell"}


    Description
    -----------
    Cet exemple montre comment utiliser l'applet de commande Invoke-Command pour exécuter une commande simple sur plusieurs ordinateurs.

    Elle utilise le paramètre ComputerName pour spécifier les ordinateurs. Les noms d'ordinateurs sont présentés dans une liste séparée par des virgules. La liste d'ordinateurs inclut la valeur « localhost », qui représente l'ordinateur local.

    Cette commande utilise le paramètre ConfigurationName pour spécifier une autre configuration de session pour Windows PowerShell et le paramètre ScriptBlock pour spécifier la commande.

    Dans cet exemple, la commande qui se trouve dans le bloc de script obtient les événements dans le journal des événements Windows PowerShell sur chaque ordinateur distant.





    -------------------------- EXEMPLE 7 --------------------------

    C:\PS>$version = invoke-command -computername (get-content machines.txt) -scriptblock {(get-host).version}


    Description
    -----------
    Cette commande obtient la version de l'hôte Windows PowerShell qui s'exécute sur 200 ordinateurs distants.

    Parce qu'une seule commande est exécutée, il n'est pas nécessaire de créer des connexions permanentes (sessions) avec chacun des ordinateurs. À la place, la commande utilise le paramètre ComputerName pour indiquer les ordinateurs.

    Elle utilise l'applet de commande Invoke-Command pour exécuter une commande Get-Host. Elle utilise la notation par points pour obtenir la propriété Version de l'hôte Windows PowerShell.

    Pour spécifier les ordinateurs, elle utilise l'applet de commande Get-Content afin d'obtenir le contenu du fichier Machine.txt, un fichier de noms d'ordinateurs.

    Ces commandes sont exécutées de façon synchrone (une par une). Lorsque les commandes s'achèvent, la sortie des commandes de tous les ordinateurs est enregistrée dans la variable $version. La sortie inclut le nom de l'ordinateur duquel proviennent les données.





    -------------------------- EXEMPLE 8 --------------------------

    C:\PS>$s = new-pssession -computername Server01, Server02

    C:\PS> invoke-command -session $s -scriptblock {get-eventlog system} -AsJob

    Id   Name    State      HasMoreData   Location           Command
    ---  ----    -----      -----         -----------        --------             -------
    1    Job1    Running    True          Server01,Server02  get-eventlog system


    C:\PS> $j = Get-Job

    C:\PS> $j | format-list -property *

    HasMoreData   : True
    StatusMessage :
    Location      : Server01,Server02
    Command       : get-eventlog system
    JobStateInfo  : Running
    Finished      : System.Threading.ManualResetEvent
    InstanceId    : e124bb59-8cb2-498b-a0d2-2e07d4e030ca
    Id            : 1
    Name          : Job1
    ChildJobs     : {Job2, Job3}
    Output        : {}
    Error         : {}
    Progress      : {}
    Verbose       : {}
    Debug         : {}
    Warning       : {}
    StateChanged  :

    C:\PS> $results = $j | Receive-Job


    Description
    -----------
    Ces commandes exécutent une tâche en arrière-plan sur deux ordinateurs distants. Étant donné que la commande Invoke-Command utilise le paramètre AsJob, les commandes sont exécutées sur les ordinateurs distants, mais la tâche réside réellement sur l'ordinateur local et les résultats sont transmis à l'ordinateur local.

    La première commande utilise l'applet de commande New-PSSession pour créer des sessions sur les ordinateurs distants Server01 et Server02.

    La deuxième commande utilise l'applet de commande Invoke-Command pour exécuter une tâche en arrière-plan dans chacune des sessions. Elle utilise le paramètre AsJob pour exécuter la commande en tant que tâche en arrière-plan. Cette commande retourne un objet de traitement qui contient deux objets tâche enfants, un pour chacune des tâches exécutées sur les deux ordinateurs distants.

    La troisième commande utilise une commande Get-Job pour enregistrer l'objet de traitement dans la variable $j.

    La quatrième commande utilise un opérateur de pipeline (|) pour envoyer la valeur de la variable $j à l'applet de commande Format-List, qui affiche toutes les propriétés de l'objet de traitement dans une liste.

    La cinquième commande obtient les résultats des tâches. Elle dirige l'objet de traitement stocké dans $j vers l'applet de commande Receive-Job et stocke les résultats dans la variable $results.





    -------------------------- EXEMPLE 9 --------------------------

    C:\PS>$MWFO-LOg = Microsoft-Windows-Forwarding/Operational

    C:\PS> invoke-command -computername server01 -scriptblock {param($log, $num) get-eventlog -logname $log -newest $num} -ArgumentList $MWFO-log, 10


    Description
    -----------
    Cet exemple montre comment inclure les valeurs des variables locales dans une commande exécutée sur un ordinateur distant.

    La première commande enregistre le nom du journal des événements Microsoft-Windows-Forwarding/Operational dans la variable $MWFO-Log.

    La deuxième commande utilise l'applet de commande Invoke-Command pour exécuter une commande Get-EventLog sur l'ordinateur distant Server01 qui obtient les 10 derniers événements du journal des événements Microsoft-Windows-Forwarding/Operational sur Server01.

    Cette commande utilise le mot clé « param » pour créer deux variables, $log et $num, qui servent d'espaces réservés dans la commande Get-EventLog. Ces espaces réservés ont des noms arbitraires qui ne doivent pas correspondre à ceux des variables locales qui fournissent leurs valeurs.

    Les valeurs du paramètre ArgumentList démontrent les deux méthodes différentes pour spécifier des valeurs dans la liste d'arguments. La valeur de l'espace réservé $log est la variable $MFWO-Log, définie dans la première commande. La valeur de la variable $num est 10.

    Avant que la commande ne soit envoyée à l'ordinateur distant, les variables sont remplacées par les valeurs spécifiées.





    -------------------------- EXEMPLE 10 --------------------------

    C:\PS>invoke-command -computername S1, S2 -scriptblock {get-process powershell}

    PSComputerName    Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id   ProcessName
    --------------    -------  ------    -----      ----- -----   ------     --   -----------
    S1                575      15        45100      40988   200     4.68     1392 powershell
    S2                777      14        35100      30988   150     3.68     67   powershell


    C:\PS> invoke-command -computername S1, S2 -scriptblock {get-process powershell} -HideComputerName

    Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id   ProcessName
    -------  ------    -----      ----- -----   ------     --   -----------
    575      15        45100      40988   200     4.68     1392 powershell
    777      14        35100      30988   150     3.68     67   powershell


    Description
    -----------
    Cet exemple montre l'effet de l'utilisation du paramètre HideComputerName d'Invoke-Command.

    Les deux premières commandes utilisent l'applet de commande Invoke-Command pour exécuter une commande Get-Process pour le processus PowerShell. La sortie de la première commande inclut la propriété PsComputerName, qui contient le nom de l'ordinateur sur lequel la commande s'est exécutée. La sortie de la deuxième commande, qui utilise le paramètre HideComputerName, n'inclut pas la colonne PsComputerName.

    Le fait d'utiliser le paramètre HideComputerName ne modifie pas l'objet. Vous pouvez toujours utiliser les applets de commande Format pour afficher la propriété PsComputerName de n'importe lequel des objets affectés.





    -------------------------- EXEMPLE 11 --------------------------

    C:\PS>invoke-command -comp (get-content servers.txt) -filepath c:\scripts\sample.ps1 -argumentlist Process, Service


    Description
    -----------
    Cet exemple utilise l'applet de commande Invoke-Command pour exécuter le script Sample.ps1 sur tous les ordinateurs répertoriés dans le fichier Servers.txt. La commande utilise le paramètre FilePath pour spécifier le fichier script. Elle vous permet d'exécuter le script sur les ordinateurs distants, même si le fichier de script n'est pas accessible aux ordinateurs distants.

    Lorsque vous envoyez la commande, le contenu du fichier Sample.ps1 est copié dans un bloc de script et ce dernier est exécuté sur chacun des ordinateurs distants. Cette procédure revient à utiliser le paramètre ScriptBlock pour envoyer le contenu du script.





    -------------------------- EXEMPLE 12 --------------------------

    C:\PS>$LiveCred = Get-Credential

    C:\PS> Invoke-Command -ConfigurationName Microsoft.Exchange `
             -ConnectionUri https://ps.exchangelabs.com/powershell `
             -Credential $LiveCred  -Authentication Basic `
             -scriptblock {Invoke-Command {Set-Mailbox dan -DisplayName "Dan Park"}


    Description
    -----------
    Cet exemple montre comment exécuter une commande sur un ordinateur distant identifié par un URI (adresse Internet). Cet exemple particulier exécute une commande Set-Mailbox sur un serveur Exchange distant. Le backtick (`) utilisé dans la commande est le caractère de continuation de ligne dans Windows PowerShell.

    La première commande utilise l'applet de commande Get-Credential pour stocker des informations d'identification Windows Live ID dans la variable $LiveCred. Lorsque la boîte de dialogue des informations d'identification s'affiche, entrez les informations d'identification Windows Live ID.

    La deuxième commande utilise l'applet de commande Invoke-Command pour exécuter une commande Set-Mailbox. Elle utilise le paramètre ConfigurationName pour spécifier que la commande doit fonctionner dans une session qui utilise la configuration de session Microsoft.Exchange. Le paramètre ConnectionURI spécifie l'URL du point de terminaison de serveur Exchange.

    Le paramètre d'information d'identification spécifie les informations d'identification Windows Live stockées dans la variable $LiveCred. Le paramètre AuthenticationMechanism spécifie l'utilisation de l'authentification de base. Le paramètre ScriptBlock spécifie un bloc de script qui contient la commande.





    -------------------------- EXEMPLE 13 --------------------------

    C:\PS>$max = New-PSSessionOption -MaximumRedirection 1

    C:\PS> Invoke-Command -ConnectionUri https://ps.exchangelabs.com/powershell `
             -scriptblock {Invoke-Command {Get-Mailbox dan} `
             -AllowRedirection -SessionOption $max


    Description
    -----------
    Cette commande indique comment utiliser les paramètres AllowRedirection et SessionOption pour gérer la redirection URI dans une commande distante.

    La première commande utilise l'applet de commande New-PSSessionOption pour créer un objet PSSessionOpption qu'elle enregistre dans la variable $max. Elle fait appel au paramètre MaximumRedirection pour définir la propriété MaximumConnectionRedirectionCount de l'objet PSSessionOption sur 1.

    La deuxième commande utilise l'applet de commande Invoke-Command pour mettre en ouvre une commande Get-Mailbox sur un serveur distant exécutant Microsoft Exchange Server. Elle utilise le paramètre AllowRedirection pour donner l'autorisation explicite de rediriger la connexion vers un autre point de terminaison. Elle fait également appel au paramètre SessionOption pour spécifier l'objet session dans la variable $max.

    En conséquence, si l'ordinateur distant spécifié par le paramètre ConnectionURI retourne un message de redirection, Windows PowerShell redirigera la connexion, mais si la nouvelle destination retourne un autre message de redirection, la valeur du nombre de redirection 1 est dépassée, et Invoke-Command retourne une erreur sans fin d'exécution.





    -------------------------- EXEMPLE 14 --------------------------

    C:\PS>$so = New-PSSessionOption -SkipCACheck

    PS C:\> invoke-command $s { get-hotfix } -SessionOption $so -credential server01\user01


    Description
    -----------
    Cet exemple montre comment créer et utiliser un paramètre SessionOption.

    La première commande utilise l'applet de commande New-PSSessionOption pour créer une option de session. Elle enregistre l'objet SessionOption résultant dans le paramètre $so.

    La deuxième commande utilise l'applet de commande Invoke-Command pour exécuter une commande Get-Hotfix à distance. La valeur du paramètre SessionOption est l'objet SessionOption dans la variable $so.





    -------------------------- EXEMPLE 15 --------------------------

    C:\PS>enable-wsmanCredSSP -delegate server02

    C:\PS> connect-wsman Server02

    C:\PS> set-item wsman:\server02*\service\auth\credSSP -value $true

    C:\PS> $s = new-pssession server02

    C:\PS> invoke-command -session $s -script {get-item \\Net03\Scripts\LogFiles.ps1} -authentication credssp -credential domain01\admin01


    Description
    -----------
    Cet exemple indique comment accéder à un partage réseau à partir d'une session à distance.

    La commande requiert que la délégation CredSSP soit activée dans les paramètres du client de l'ordinateur local et dans les paramètres de service de l'ordinateur distant. Pour exécuter les commandes de cet exemple, vous devez être membre du groupe Administrateurs sur l'ordinateur local et l'ordinateur distant.

    La première commande utilise l'applet de commande Enable-WSManCredSSP pour activer la délégation CredSSP à partir de l'ordinateur local Server01 sur l'ordinateur distant Server02. Le paramètre du client CredSSP est ainsi configuré sur l'ordinateur local.

    La deuxième commande utilise l'applet de commande Connect-WSman pour se connecter à l'ordinateur Server02. Cette action ajoute un noud pour l'ordinateur Server02 au lecteur WSMan: de l'ordinateur local, vous permettant d'afficher et de modifier les paramètres du service Gestion des services Web sur l'ordinateur Server02.

    La troisième commande utilise l'applet de commande Set-Item pour redéfinir la valeur de l'élément CredSSP dans le noud Service de l'ordinateur Server02 sur True. Cette action active CredSSP dans les paramètres de service de l'ordinateur distant.

    La quatrième commande utilise l'applet de commande New-PSSession pour créer une session PSSession sur l'ordinateur Server02. Elle enregistre la session PSSession dans la variable $s.

    La cinquième commande utilise l'applet de commande Invoke-Command pour exécuter une commande Get-Item de la session dans $s qui obtient un script du partage réseau Net03\Scripts. La commande utilise le paramètre Credential, ainsi que le paramètre Authentication avec la valeur CredSSP.






LIENS CONNEXES
    Online version: http://go.microsoft.com/fwlink/?LinkID=135225
    about_Remote
    about_PSSessions
    New-PSSession
    Get-PSSession
    Remove-PSSession
    Enter-PSSession
    Exit-PSSession
    WS-Management Provider