Partager via


Installation du Kit de développement logiciel Windows PowerShell

S’applique à : Windows PowerShell 2.0, Windows PowerShell 3.0

La rubrique suivante explique comment installer le Kit de développement logiciel (SDK) PowerShell sur différentes versions de Windows.

Installation du Kit de développement logiciel (SDK) Windows PowerShell 3.0 pour Windows 8 et Windows Server 2012

Windows PowerShell 3.0 est installé automatiquement avec Windows 8 et Windows Server 2012. En outre, vous pouvez télécharger et installer les assemblys de référence pour Windows PowerShell 3.0 dans le cadre du Kit de développement logiciel (SDK) Windows 8. Ces assemblys vous permettent d’écrire des applets de commande, des fournisseurs et des programmes hôtes pour Windows PowerShell 3.0. Lorsque vous installez le Kit de développement logiciel (SDK) Windows pour Windows 8, les assemblys Windows PowerShell sont automatiquement installés dans le dossier d’assembly de référence, dans \Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0. Pour plus d’informations, consultez le site de téléchargement du Kit de développement logiciel (SDK) Windows 8. Les exemples de code Windows PowerShell sont également disponibles dans le référentiel powershell-sdk-samples.

Assemblies de référence

Les assemblys de référence sont installés à l’emplacement suivant par défaut : C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\V1.0.

Remarque

Le code compilé sur les assemblys Windows PowerShell 2.0 ne peut pas être chargé dans les installations de Windows PowerShell 1.0. Toutefois, le code compilé sur les assemblys Windows PowerShell 1.0 peut être chargé dans les installations de Windows PowerShell 2.0.

Échantillons

Les exemples de code sont installés à l’emplacement suivant par défaut : C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\. Les sections suivantes fournissent une brève description de ce que fait chaque exemple.

Exemples d’applets de commande

  • GetProcessSample01 : montre comment écrire une applet de commande simple qui obtient tous les processus sur l’ordinateur local.
  • GetProcessSample02 : montre comment ajouter des paramètres à l’applet de commande. L’applet de commande prend un ou plusieurs noms de processus et retourne les processus correspondants.
  • GetProcessSample03 : montre comment ajouter des paramètres qui acceptent l’entrée à partir du pipeline.
  • GetProcessSample04 : montre comment gérer les erreurs sans fin.
  • GetProcessSample05 : montre comment afficher une liste de processus spécifiés.
  • SelectObject : montre comment écrire un filtre pour sélectionner uniquement certains objets.
  • SelectString : montre comment rechercher des fichiers pour les modèles spécifiés.
  • StopProcessSample01 : montre comment implémenter un paramètre PassThru et comment demander des commentaires utilisateur par des appels aux méthodes ShouldProcess et ShouldContinue. Les utilisateurs spécifient le paramètre PassThru quand ils souhaitent forcer l’applet de commande à retourner un objet,
  • StopProcessSample02 : montre comment arrêter un processus spécifique.
  • StopProcessSample03 : montre comment déclarer des alias pour les paramètres et comment prendre en charge les caractères génériques.
  • StopProcessSample04 : montre comment déclarer des jeux de paramètres, l’objet que l’applet de commande prend comme entrée et comment spécifier le jeu de paramètres par défaut à utiliser.

Exemples de communication à distance

  • RemoteRunspace01 : montre comment créer un runspace distant utilisé pour établir une connexion distante.
  • RemoteRunspacePool01 : montre comment construire un pool d’instances d’exécution distante et comment exécuter plusieurs commandes simultanément à l’aide de ce pool.
  • Sérialisation01 : montre comment examiner une classe .NET existante et vérifier que les informations provenant des propriétés publiques sélectionnées de cette classe sont conservées dans la sérialisation/désérialisation.
  • Sérialisation02 : montre comment examiner une classe .NET existante et vérifier que les informations de l’instance de cette classe sont conservées dans la sérialisation/désérialisation lorsque les informations ne sont pas disponibles dans les propriétés publiques de la classe.
  • Sérialisation03 : montre comment examiner une classe .NET existante et vérifier que les instances de cette classe et de classes dérivées sont désérialisées (réhydratées) dans des objets .NET actifs.

Exemples d’événements

  • Event01 : montre comment créer une applet de commande pour l’inscription d’événements en dérivant de ObjectEventRegistrationBase.
  • Event02 : montre comment afficher les notifications des événements Windows PowerShell générés sur des ordinateurs distants. Il utilise l’événement PSEventReceived exposé via la classe Runspace.

Exemples d’applications d’hébergement

  • Runspace01 : montre comment utiliser la classe PowerShell pour exécuter l’applet de commande Get-Process de manière synchrone. L’applet de commande Get-Process retourne des objets Process pour chaque processus en cours d’exécution sur l’ordinateur local.
  • Runspace02 : montre comment utiliser la classe PowerShell pour exécuter les applets de commande Get-Process et Sort-Object de manière synchrone. L’applet de commande Get-Process retourne des objets Process pour chaque processus en cours d’exécution sur l’ordinateur local, et le Sort-Object trie les objets en fonction de leur propriété Id. Les résultats de ces commandes sont affichés à l’aide d’un contrôle DataGridView.
  • Runspace03 : montre comment utiliser la classe PowerShell pour exécuter un script de manière synchrone et comment gérer les erreurs sans fin. Le script reçoit une liste de noms de processus, puis récupère ces processus. Les résultats du script, y compris les erreurs qui n’ont pas été terminées lors de l’exécution du script, sont affichés dans une fenêtre de console.
  • Runspace04 : montre comment utiliser la classe PowerShell pour exécuter des commandes et comment intercepter les erreurs de fin qui sont levées lors de l’exécution des commandes. Deux commandes sont exécutées et la dernière commande est passée à un argument de paramètre qui n’est pas valide. Par conséquent, aucun objet n’est retourné et une erreur de fin est levée.
  • Runspace05 : montre comment ajouter un composant logiciel enfichable à un objet InitialSessionState afin que l’applet de commande du composant logiciel enfichable soit disponible lorsque l’instance d’exécution est ouverte. Le composant logiciel enfichable fournit une applet de commande Get-Proc (définie par l’exemple GetProcessSample01) qui est exécutée de manière synchrone à l’aide d’un objet PowerShell.
  • Runspace06 : montre comment ajouter un module à un objet InitialSessionState afin que le module soit chargé lors de l’ouverture de l’instance d’exécution. Le module fournit une applet de commande Get-Proc (définie par l’exemple GetProcessSample02) qui est exécutée de manière synchrone à l’aide d’un objet PowerShell.
  • Runspace07 : montre comment créer un runspace, puis utiliser cet espace d’exécution pour exécuter deux applets de commande de manière synchrone à l’aide d’un objet PowerShell.
  • Runspace08 : montre comment ajouter des commandes et des arguments au pipeline d’un objet PowerShell et comment exécuter les commandes de manière synchrone.
  • Runspace09 : montre comment ajouter un script au pipeline d’un objet PowerShell et comment exécuter le script de manière asynchrone. Les événements sont utilisés pour gérer la sortie du script.
  • Runspace10 : montre comment créer un état de session initial par défaut, comment ajouter une applet de commande à InitialSessionState, créer un runspace qui utilise l’état de session initial et comment exécuter la commande à l’aide d’un objet PowerShell.
  • Runspace11 : montre comment utiliser la classe ProxyCommand pour créer une commande proxy qui appelle une applet de commande existante, mais limite l’ensemble des paramètres disponibles. La commande proxy est ensuite ajoutée à un état de session initial utilisé pour créer un runspace contraint. Cela signifie que l’utilisateur peut accéder aux fonctionnalités de l’applet de commande uniquement via la commande proxy.
  • PowerShell01 : montre comment créer un runspace contraint à l’aide d’un objet InitialSessionState.
  • PowerShell02 : montre comment utiliser un pool d’instances d’exécution pour exécuter plusieurs commandes simultanément.

Exemples d’hôtes

  • Host01 : montre comment implémenter une application hôte qui utilise un hôte personnalisé. Dans cet exemple, un runspace est créé qui utilise l’hôte personnalisé, puis l’API PowerShell est utilisée pour exécuter un script qui appelle exit. L’application hôte examine ensuite la sortie du script et imprime les résultats.
  • Host02 : montre comment écrire une application hôte qui utilise le runtime Windows PowerShell avec une implémentation d’hôte personnalisée. L’application hôte définit la culture de l’hôte sur l’allemand, exécute l’applet de commande Get-Process et affiche les résultats comme vous le feriez en utilisant pwrsh.exe, puis imprime les données et l’heure actuelles en allemand.
  • Host03 : montre comment créer une application hôte interactive basée sur la console qui lit les commandes à partir de la ligne de commande, exécute les commandes, puis affiche les résultats dans la console.
  • Host04 : montre comment créer une application hôte interactive basée sur la console qui lit les commandes à partir de la ligne de commande, exécute les commandes, puis affiche les résultats dans la console. Cette application hôte prend également en charge l’affichage d’invites qui permettent à l’utilisateur de spécifier plusieurs choix.
  • Host05 : montre comment créer une application hôte interactive basée sur la console qui lit les commandes à partir de la ligne de commande, exécute les commandes, puis affiche les résultats dans la console. Cette application hôte prend également en charge les appels aux ordinateurs distants à l’aide des applets de commande Enter-PSSession et Exit-PSSession.
  • Host06 : montre comment créer une application hôte interactive basée sur la console qui lit les commandes à partir de la ligne de commande, exécute les commandes, puis affiche les résultats dans la console. En outre, cet exemple utilise les API Tokenizer pour spécifier la couleur du texte entré par l’utilisateur.

Exemples de fournisseurs

  • AccessDBProviderSample01 : montre comment déclarer une classe de fournisseur qui dérive directement de la classe CmdletProvider. Il est inclus ici uniquement pour l’exhaustivité.

  • AccessDBProviderSample02 : montre comment remplacer les méthodes NewDrive et RemoveDrive pour prendre en charge les appels aux applets de commande New-PSDrive et Remove-PSDrive. La classe de fournisseur de cet exemple dérive de la classe DriveCmdletProvider.

  • AccessDBProviderSample03 : montre comment remplacer les méthodes GetItem et SetItem pour prendre en charge les appels aux applets de commande Get-Item et Set-Item. La classe fournisseur de cet exemple dérive de la classe ItemCmdletProvider.

  • AccessDBProviderSample04 : montre comment remplacer les méthodes de conteneur pour prendre en charge les appels aux applets de commande Copy-Item, Get-ChildItem, New-Itemet Remove-Item. Ces méthodes doivent être implémentées lorsque le magasin de données contient des éléments qui sont des conteneurs. Un conteneur est un groupe d’éléments enfants sous un élément parent commun. La classe fournisseur de cet exemple dérive de la classe ItemCmdletProvider.

  • AccessDBProviderSample05 : montre comment remplacer les méthodes de conteneur pour prendre en charge les appels aux applets de commande Move-Item et Join-Path. Ces méthodes doivent être implémentées lorsque l’utilisateur doit déplacer des éléments dans un conteneur et si le magasin de données contient des conteneurs imbriqués. La classe fournisseur de cet exemple dérive de la classe NavigationCmdletProvider.

  • AccessDBProviderSample06 : montre comment remplacer les méthodes de contenu pour prendre en charge les appels aux Clear-Content, Get-Contentet Set-Content applets de commande. Ces méthodes doivent être implémentées lorsque l’utilisateur doit gérer le contenu des éléments dans le magasin de données. La classe fournisseur de cet exemple dérive de la classe NavigationCmdletProvider et implémente l’interface IContentCmdletProvider.