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