RUBRIQUE
    about_Windows_PowerShell_2.0

DESCRIPTION COURTE
    Décrit les nouvelles fonctionnalités incluses dans Windows 
    PowerShell 2.0.
 

DESCRIPTION LONGUE
    Windows PowerShell 2.0 inclut plusieurs fonctionnalités 
    importantes qui étendent son utilisation, améliorent sa facilité 
    d'utilisation et vous permettent de contrôler et de gérer plus 
    facilement et intégralement des environnements Windows.


    Windows PowerShell 2.0 est à compatibilité descendante. Les applets de 
    commande, fournisseurs, composants logiciels enfichables, scripts, 
    fonctions et profils conçus pour Windows PowerShell 1.0 fonctionnent 
    dans Windows PowerShell 2.0 sans effectuer de modifications.


NOUVELLES FONCTIONNALITÉS
    Windows PowerShell 2.0 inclut les nouvelles fonctionnalités suivantes.


  Communication à distance
    
      Windows PowerShell 2.0 vous permet d'exécuter des commandes sur 
      un ou plusieurs ordinateurs distants à l'aide d'une seule 
      commande Windows PowerShell. Vous pouvez exécuter des commandes 
      individuelles, ou créer une connexion permanente (session) pour 
      exécuter une série de commandes connexes. Vous pouvez également 
      démarrer une session avec un ordinateur distant afin que les 
      commandes que vous tapez s'exécutent directement sur cet ordinateur.


      Les fonctionnalités de communication à distance de Windows 
      PowerShell reposent sur la Gestion à distance de Windows 
      (WinRM). WinRM est l'implémentation Microsoft du protocole de 
      gestion des services Web, un protocole de communication 
      standard basé sur SOAP et compatible avec les pare-feu.


      Les ordinateurs distants doivent disposer de Windows PowerShell 
      2.0, de Microsoft .NET Framework 2.0 et du service WinRM. Les 
      commandes distantes sont prises en charge sur tous les systèmes 
      d'exploitation qui peuvent exécuter Windows PowerShell. L'utilisateur 
      actuel doit être autorisé à exécuter des commandes sur les 
      ordinateurs distants. Pour plus d'informations, consultez 
      about_Remote_Requirements.


      Pour prendre en charge la communication à distance, les applets 
      de commande Invoke-Command, Enter-PSSession et Exit-PSSession 
      ont été ajoutées, ainsi que d'autres applets de commande qui 
      contiennent le nom PSSession. Ces applets de commande vous 
      permettent de créer et de gérer des connexions permanentes.


      Le paramètre ComputerName a également été ajouté à plusieurs 
      applets de commande, notamment aux applets de commande 
      Get-Process, Get-Service et Get-Eventlog. Ce paramètre vous 
      permet d'obtenir des informations sur les ordinateurs distants.
      Ces applets de commande utilisent des méthodes .NET Framework 
      pour obtenir leurs données. Par conséquent, elles ne s'appuient 
      pas sur la communication à distance Windows PowerShell. Elles 
      ne requièrent pas de nouveau programme ou de nouvelle 
      configuration. Pour plus d'informations, consultez l'Aide sur 
      chaque applet de commande.


      Pour plus d'informations sur les commandes distantes, consultez 
      about_Remote et about_Remote_FAQ. Pour plus d'informations sur 
      les sessions, consultez about_PSSessions. 


  Environnement d'écriture de scripts intégré (ISE) de Windows PowerShell
    
      Windows PowerShell 2.0 inclut l'Environnement d'écriture de 
      scripts intégré (ISE) de Windows PowerShell, une application 
      hôte qui vous permet d'exécuter des commandes, ainsi que de 
      concevoir, d'écrire, de tester et de déboguer des scripts dans un 
      environnement graphique Unicode à code de couleurs.
 

      Windows PowerShell ISE requiert Microsoft .NET Framework 3.0 ou 
      une version ultérieure.


      Windows PowerShell ISE inclut les éléments suivants :

      -  Un volet de commandes qui vous permet d'exécuter des commandes 
         interactives exactement comme vous le feriez dans la console Windows 
         PowerShell. Il vous suffit de taper une commande, puis d'appuyer sur 
         ENTRÉE. La sortie apparaît dans le volet de sortie.

      -  Un volet de script qui vous permet de composer, de modifier, 
         de déboguer et d'exécuter des fonctions et des scripts. 

      -  Plusieurs onglets, chacun comportant son propre volet de 
         commandes et de script, qui vous permettent de travailler 
         indépendamment sur une ou plusieurs tâches.


      Windows PowerShell ISE est conçu aussi bien pour les 
      utilisateurs débutants que pour les utilisateurs expérimentés. 


  Tâches en arrière-plan
    
      Les tâches en arrière-plan sont des commandes qui s'exécutent 
      de façon asynchrone. Lorsque vous exécutez une tâche en 
      arrière-plan, l'invite de commandes réapparaît immédiatement, 
      même si la commande est encore en cours d'exécution. Vous 
      pouvez utiliser la fonctionnalité de tâche en arrière-plan pour 
      exécuter une commande complexe en arrière-plan afin de pouvoir 
      utiliser votre session pour d'autres tâches pendant que la commande 
      s'exécute.


      Vous pouvez exécuter une tâche en arrière-plan sur un 
      ordinateur local ou distant, puis enregistrer les résultats sur 
      l'ordinateur local ou distant. Pour exécuter une tâche à 
      distance, utilisez l'applet de commande Invoke-Command.
    

      Windows PowerShell inclut un jeu d'applets de commande qui 
      contiennent le nom Job (applets de commande Job). Utilisez ces 
      applets de commande pour créer, démarrer, gérer, et supprimer 
      des tâches en arrière-plan et pour obtenir les résultats d'une 
      tâche en arrière-plan. Pour obtenir la liste des applets de 
      commande Job, tapez la commande suivante :

          get-command *-job

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


  Débogueur de script
    
      Windows PowerShell 2.0 inclut un débogueur basé sur les applets 
      de commande pour les scripts et les fonctions. Ce débogueur est 
      pris en charge par une API publique complètement documentée que 
      vous pouvez utiliser pour générer votre propre débogueur, ou pour 
      personnaliser ou étendre le débogueur existant.


      Les applets de commande de débogueur vous permettent de définir 
      des points d'arrêt sur des lignes, des colonnes, des variables 
      et des commandes. Ces applets de commande vous permettent de 
      gérer les points d'arrêt et d'afficher la pile des appels. Vous 
      pouvez créer des points d'arrêt conditionnels et spécifier des 
      actions personnalisées à un point d'arrêt, telles que l'exécution 
      de diagnostics et de scripts de journalisation.


      Lorsque vous atteignez un point d'arrêt, Windows PowerShell 
      interrompt l'exécution et démarre le débogueur. Le débogueur 
      inclut un jeu de commandes personnalisées qui vous permettent 
      d'exécuter le code pas à pas. Vous pouvez également exécuter 
      des commandes Windows PowerShell standard pour afficher les 
      valeurs de variables, et utiliser des applets de commande pour 
      examiner les résultats.

      
      Pour plus d'informations sur le débogage, consultez about_Debuggers.


  Section Data
    
      Les scripts conçus pour Windows PowerShell 2.0 peuvent avoir une ou 
      plusieurs sections DATA qui isolent les données du script logique. 
      Les données contenues dans la nouvelle section DATA sont limitées à 
      un sous-ensemble spécifié du langage de script Windows PowerShell.


      Dans Windows PowerShell 2.0, la section DATA est utilisée pour 
      prendre en charge l'internationalisation des scripts. Vous 
      pouvez utiliser la section DATA pour isoler et identifier les 
      chaînes de message utilisateur qui seront traduites dans 
      plusieurs langues de l'interface utilisateur. 


      Pour plus d'informations, consultez about_Data_Sections.


  Internationalisation des scripts
    
      Les fonctionnalités d'internationalisation des scripts Windows 
      PowerShell 2.0 vous permettent de mieux servir les utilisateurs 
      dans le monde entier. L'internationalisation des scripts permet 
      aux scripts et aux fonctions d'afficher, à l'intention des 
      utilisateurs, les messages et le texte d'aide dans plusieurs 
      langages.
 

      Les fonctionnalités d'internationalisation des scripts 
      interrogent la culture d'interface utilisateur du système 
      d'exploitation ($PsUICulture) pendant l'exécution, puis 
      importent les chaînes de texte traduites appropriées afin que 
      vous puissiez les afficher à l'intention de l'utilisateur.
      La section Data vous permettant de stocker des chaînes de texte 
      séparées du code, elles sont facilement identifiées. Une 
      nouvelle applet de commande, ConvertFrom-StringData, convertit 
      les chaînes de texte en tables de hachage de style dictionnaire pour 
      faciliter la traduction.
 

      Pour plus d'informations, consultez about_Script_Internationaliz
      ation.



  Applets de commande WMI
    
      Les fonctionnalités WMI (Windows Management Instrumentation) de 
      Windows PowerShell 2.0 sont améliorées grâce à l'ajout des 
      applets de commande suivantes :

          - Remove-WmiObject
          - Set-WmiInstance
          - Invoke-WmiMethod


      De nouveaux paramètres ont été ajoutés à l'applet de commande 
      Get-WmiObject. Toutes les applets de commande WMI prennent 
      maintenant en charge les paramètres suivants :

          - EnableAllPrivileges
          - Impersonation
          - Authentication
          - Authority


      Ces nouveaux paramètres vous permettent d'optimiser le contrôle 
      de la configuration de sécurité de vos opérations WMI sans que 
      vous ayez à utiliser directement les types de la bibliothèque de 
      classes .NET Framework.

 
      Pour obtenir la liste des applets de commande WMI, tapez la commande 
      suivante :

          get-help *wmi*

      Pour obtenir de l'aide sur chaque applet de commande, tapez 
      get-help suivi du nom de l'applet de commande.

	
  L'applet de commande Get-WinEvent
    
      L'applet de commande Get-WinEvent obtient des événements en 
      provenance de journaux de l'Observateur d'événements et de 
      fichiers journaux d'événements du Suivi d'événements pour 
      Windows (ETW) sur les ordinateurs locaux et distants. Elle peut 
      obtenir des événements en provenance de journaux d'événements 
      classiques et des journaux d'événements Windows introduits dans 
      Windows Vista.
 

      Vous pouvez utiliser Get-WinEvent pour obtenir les objets qui 
      représentent des journaux des événements, des fournisseurs de 
      journaux des événements et les événements contenus dans les 
      journaux. Get-WinEvent vous permet de combiner des événements 
      de sources différentes dans une même commande. Elle prend en 
      charge des requêtes avancées en langage XPath, en XML et au 
      format de table de hachage.


      Get-WinEvent requiert Windows Vista ou Windows Server 2008 et 
      Microsoft .NET Framework 3.5. 


  L'applet de commande Out-Gridview
    
      L'applet de commande Out-GridView affiche les résultats 
      d'autres commandes dans une table interactive dans laquelle 
      vous pouvez rechercher, trier, regrouper et filtrer les 
      résultats. Par exemple, vous pouvez envoyer les résultats d'une 
      commande Get-Process, Get-WmiObject, Get-WinEvent ou 
      Get-Eventlog à Out-GridView, puis utiliser les fonctionnalités 
      de table pour examiner les données.

        help out-gridview -full


  L'applet de commande Add-Type
    
      L'applet de commande Add-Type vous permet d'ajouter des types 
      .NET Framework à Windows PowerShell à partir du code source 
      d'un autre langage .NET Framework.
 

      Add-Type compile le code source qui crée les types et génère 
      les assemblys contenant les nouveaux types .NET Framework. Vous 
      pouvez ensuite utiliser les types .NET Framework dans des 
      commandes Windows PowerShell avec les types d'objet standard 
      fournis par le .NET Framework.


      Vous pouvez également utiliser Add-Type pour charger des 
      assemblys dans votre session afin de pouvoir utiliser les types des 
      assemblys dans Windows PowerShell.


      Add-Type vous permet de développer de nouveaux types .NET Framework, 
      d'utiliser des types .NET Framework contenus dans des bibliothèques C#, 
      et d'accéder à des API Win32.

    
      Pour plus d'informations, consultez Add-Type.


  Notification d'événements
    
      Windows PowerShell 2.0 introduit la notification d'événements. Les 
      utilisateurs peuvent s'inscrire et s'abonner à des événements, tels 
      que les événements Windows PowerShell, les événements WMI ou les 
      événements .NET Framework. En outre, ils peuvent, aussi bien de façon 
      synchrone et asynchrone, écouter les événements de gestion et système, 
      les transférer et agir dessus.


      Les développeurs peuvent écrire des applications qui utilisent 
      l'architecture d'événement pour recevoir des notifications relatives aux 
      modifications d'état. Les utilisateurs peuvent écrire des scripts qui 
      s'abonnent à différents événements et qui réagissent au contenu.
   

      Windows PowerShell fournit des applets de commande qui créent 
      de nouveaux événements, obtiennent des événements et des 
      abonnements à des événements, enregistrent et annulent 
      l'enregistrement d'événements, attendent des événements et 
      suppriment des événements. Pour plus d'informations sur ces 
      applets de commande, tapez la commande suivante :

          get-command *-event

   
  Modules
    
      Les modules Windows PowerShell vous permettent de répartir et 
      d'organiser vos scripts Windows PowerShell en unités indépendantes, 
      autonomes et réutilisables. Le code en provenance d'un module 
      s'exécute dans son propre contexte. Par conséquent, il ne s'ajoute 
      pas aux variables, fonctions, alias et autres ressources dans la session, 
      n'est pas en conflit avec ces derniers ou ne les remplace pas.

    
      Vous pouvez écrire, distribuer, combiner, partager et 
      réutiliser des modules pour générer des scripts simples et des 
      applications complexes. 


      Windows PowerShell 2.0 inclut des applets de commande pour 
      ajouter, obtenir et supprimer des modules, ainsi que pour 
      exporter des membres de module. Pour plus d'informations sur 
      les applets de commande en rapport avec des modules, tapez la 
      commande suivante :

          get-command *-module* 

 
  Transactions
    
      Windows PowerShell 2.0 inclut une prise en charge des 
      transactions. Les transactions vous permettent d'annuler toute 
      une série d'opérations. Elles sont disponibles uniquement pour les 
      opérations qui prennent en charge les transactions. Elles sont 
      conçues pour les applications qui requièrent atomicité, cohérence, 
      isolation et récupération, comme les bases de données et la mise en 
      file d'attente des messages.


      Les applets de commande et les fournisseurs qui prennent en 
      charge les transactions possèdent un nouveau paramètre 
      UseTransaction. Pour démarrer une opération dans une 
      transaction, utilisez l'applet de commande Start-Transaction. 
      Ensuite, lorsque vous utilisez les applets de commande qui exécutent 
      l'opération, utilisez le paramètre UseTransaction de chaque applet de 
      commande si vous voulez que la commande fasse partie d'une transaction. 


      Si une commande de la transaction échoue à un moment ou à un 
      autre, utilisez l'applet de commande Rollback-Transaction pour 
      annuler toutes les commandes de la transaction.
      Si toutes les commandes réussissent, utilisez l'applet de 
      commande Commit-Transaction pour rendre les actions de la commande 
      permanentes.


      Windows PowerShell 2.0 inclut des applets de commande 
      permettant de démarrer, d'utiliser, de valider et de restaurer des 
      transactions. Pour obtenir des informations sur ces applets de 
      commande, tapez la commande suivante :

          get-command *transaction*
      

 Modifications avec rupture apportées à Windows PowerShell 1.0

     -- La valeur de l'entrée de Registre PowerShellVersion dans 
        HKLM\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine est remplacée 
        par 2.0.

     -- De nouvelles applets de commande et variables ont été 
        ajoutées. Ces ajouts peuvent être en conflit avec les variables et 
        fonctions des profils et des scripts.

     -- L'opérateur -IEQ effectue une comparaison ne respectant pas 
        la casse sur les caractères.

     -- L'applet de commande Get-Command obtient des fonctions par 
        défaut, en plus des applets de commande.

     -- Les commandes natives qui génèrent une interface utilisateur 
        ne peuvent pas être redirigées vers l'applet de commande Out-Host.

     -- Les nouveaux mots clés de langage Begin, Process, End et 
        Dynamic Param peuvent être en conflit avec des mots 
        semblables utilisés dans des scripts et des fonctions. 
        L'interprétation de ces mots comme mots clés de langage 
        peuvent provoquer des erreurs d'analyse. 

     -- La résolution des noms d'applets de commande a changé. Dans 
        Windows PowerShell 1.0, une erreur d'exécution était générée 
        quand deux composants logiciels enfichables Windows 
        PowerShell exportaient des applets de commande portant le 
        même nom. Dans Windows PowerShell 2.0, la dernière applet de 
        commande ajoutée à la session s'exécute quand vous tapez le 
        nom de la commande. Pour exécuter une commande qui ne 
        s'exécute pas par défaut, qualifiez le nom de l'applet de 
        commande avec le nom du composant logiciel enfichable ou du 
        module d'où elle provient.

     -- Le nom d'une fonction suivi de " -? " obtient la rubrique 
        d'aide de la fonction, le cas échéant. 

    --  La résolution des paramètres pour les méthodes Microsoft .NET 
        Framework a changé.
        Dans Windows PowerShell 1.0, si vous appeliez une méthode 
        .NET surchargée qui a plusieurs meilleures syntaxes, aucune 
        erreur n'était signalée. Dans Windows PowerShell 2.0, une erreur 
        d'ambiguïté est signalée. 

        De plus, dans Windows PowerShell 2.0, l'algorithme permettant de 
        sélectionner la meilleure méthode a été considérablement modifié pour 
        réduire le nombre d'ambiguïtés.

     -- Si vous énumérez une collection dans le pipeline et que vous 
        tentez de la modifier dans ce pipeline, Windows PowerShell 
        lève une exception.
    
        Par exemple, les commandes suivantes fonctionneraient dans Windows 
        PowerShell 1.0, mais échoueraient après la première itération du 
        pipeline dans Windows PowerShell 2.0.

            $h = @{Name="Hello"; Value="Test"}
            $h.keys | foreach-object {$h.remove($_)}

        Pour éviter cette erreur, créez une sous-expression pour 
        l'énumérateur à l'aide des caractères $(). Par exemple :

	    $($h.keys) | foreach-object {$h.remove($_)}

 
    Pour plus d'informations sur Windows PowerShell 2.0, visitez 
    les sites Web suivants :
 
    -- Site Web Windows PowerShell (page éventuellement en anglais) 
         https://go.microsoft.com/fwlink/?LinkID=106031

    -- Blog de l'équipe Windows PowerShell (page éventuellement en anglais)
         https://go.microsoft.com/fwlink/?LinkId=143696


VOIR AUSSI
    about_Data_Sections
    about_Debuggers
    about_Functions_Advanced
    about_Jobs
    about_Join
    about_PSSessions
    about_Remote
    about_Script_Internationalization
    about_Split




Table des matières