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