about_Windows_PowerShell_5.0

DESCRIPTION COURTE

Décrit les nouvelles fonctionnalités incluses dans Windows PowerShell 5.0.

DESCRIPTION DÉTAILLÉE

Windows PowerShell 5.0 intègre plusieurs nouvelles fonctionnalités importantes qui, en plus d’étendre et de simplifier son utilisation, vous permettent de contrôler et de gérer des environnements Windows plus facilement et plus complètement.

Windows PowerShell 5.0 offre une compatibilité descendante. Les applets de commande, fournisseurs, modules, composants logiciels enfichables, scripts, fonctions et profils conçus pour Windows PowerShell 4.0, Windows PowerShell 3.0 et Windows PowerShell 2.0 fonctionnent généralement dans Windows PowerShell 5.0 sans aucune modification.

Windows PowerShell 5.0 est installé par défaut sur Windows Server Technical Preview et Windows Technical Preview. Pour installer Windows PowerShell 5.0 sur Windows Server 2012 R2, Windows 8.1 Entreprise ou Windows 8.1 Professionnel, téléchargez et installez Windows Management Framework 5.0. Avant d’installer Windows Management Framework 5.0 Preview, veillez à prendre connaissance des détails du téléchargement et à vérifier entièrement la configuration requise.

Vous pouvez également en savoir plus sur les modifications apportées à Windows PowerShell 5.0 dans Nouveautés de Windows PowerShell.

NOUVELLES FONCTIONNALITÉS

Nouvelles fonctionnalités de Windows PowerShell

  • À partir de Windows PowerShell 5.0, vous pouvez développer à l’aide de classes, en utilisant une syntaxe et une sémantique formelles similaires à celles d’autres langages de programmation orientée objet. Des mots clés tels que Class et Enum ont été ajoutés au langage Windows PowerShell pour prendre en charge la nouvelle fonctionnalité. Pour plus d’informations sur l’utilisation des classes, voir about_Classes.

  • En collaboration avec Microsoft Research, une nouvelle applet de commande, ConvertFrom-String, a été ajoutée. L’applet de commande ConvertFrom-String permet d’extraire des objets structurés du contenu de chaînes de texte, et de les analyser. Pour plus d’informations, voir ConvertFrom-String.

  • Un nouveau module, Microsoft.PowerShell.Archive, inclut des applets de commande qui vous permettent de compresser des fichiers et dossiers dans des fichiers d’archives (également appelés ZIP), d’extraire des fichiers de fichiers ZIP, et de mettre à jour des fichiers ZIP avec des versions plus récentes des fichiers qui y sont compressés.

  • Un nouveau module, OneGet, vous permet de découvrir et d’installer des packages logiciels sur Internet. Le module OneGet est un gestionnaire ou un multiplexeur de gestionnaires de packages existants (également appelés fournisseurs de packages) pour unifier la gestion des packages Windows avec une interface Windows PowerShell unique.

  • Un nouveau module, PowerShellGet, vous permet de rechercher, d’installer, de publier et de mettre à jour des modules et des ressources DSC sur PowerShell Resource Gallery ou sur un référentiel de modules interne que vous pouvez configurer en exécutant l’applet de commande Register-PSRepository.

  • Les applets de commande New-Item, Remove-Item et Get-ChildItem ont été améliorées pour prendre en charge la création et la gestion des liens symboliques. Le paramètre ItemType pour New-Item accepte une nouvelle valeur, SymbolicLink. Vous pouvez maintenant créer des liens symboliques en une seule ligne, en exécutant l’applet de commande New-Item.

  • La transcription Windows PowerShell a été améliorée pour s’appliquer non seulement à l’hôte de la console (powershell.exe), mais aussi à toutes les applications d’hébergement telles que Windows PowerShell ISE. Vous pouvez configurer des options de transcription (notamment la transcription à l’échelle du système) en activant le paramètre de stratégie de groupe Activer la transcription PowerShell accessible dans Modèles d’administration/Composants Windows/Windows PowerShell.

  • Une nouvelle fonctionnalité de traçage de script détaillé vous permet d’activer le suivi et l’analyse détaillés de l’utilisation des scripts Windows PowerShell sur un système. Une fois que vous avez activé le traçage de script détaillé, Windows PowerShell enregistre tous les blocs de scripts dans le journal des événements Suivi d’événements pour Windows (ETW), Microsoft-Windows-PowerShell/Operational.

  • À partir de Windows PowerShell 5.0, de nouvelles applets de commande CMS (Cryptographic Message Syntax) prennent en charge le chiffrement et le déchiffrement de contenu à l’aide du format IETF standard pour protéger par chiffrement des messages, comme décrit dans le document RFC (Request For Comments) 5652. Les applets de commande Get-CmsMessage, Protect-CmsMessage et Unprotect-CmsMessage ont été ajoutées au module Microsoft.PowerShell.Security.

  • Les nouvelles applets de commande du module Microsoft.PowerShell.Utility (Get-Runspace, Debug-Runspace, Get-RunspaceDebug, Enable-RunspaceDebug et Disable-RunspaceDebug) vous permettent de définir des options de débogage ainsi que de démarrer et d’arrêter le débogage sur une instance d’exécution. Pour le débogage d’runspaces arbitraires ( autrement dit, les runspaces qui ne sont pas l’espace d’exécution par défaut pour une console Windows PowerShell ou une session ISE Windows PowerShell - Windows PowerShell vous permet de définir des points d’arrêt dans un script et d’avoir ajouté des points d’arrêt pour empêcher l’exécution du script jusqu’à ce que vous puissiez attacher un débogueur pour déboguer le script d’instance d’exécution. Une prise en charge du débogage imbriqué pour les instances d’exécution arbitraires a été ajoutée au débogueur de script Windows PowerShell pour les instances d’exécution.

  • Les nouvelles applets de commande Enter-PSHostProcess et Exit-PSHostProcess permettent de déboguer des scripts Windows PowerShell dans des processus distincts du processus en cours d’exécution sur la console Windows PowerShell. Exécutez Enter-PSHostProcess pour entrer dans ou associer à un ID de processus spécifique, puis exécutez Get-Runspace pour retourner les instances d’exécution actives au sein du processus. Exécutez Exit-PSHostProcess pour dissocier du processus quand vous avez fini de déboguer le script au sein du processus.

  • Une nouvelle applet de commande, Wait-Debugger, a été ajoutée au module Microsoft.PowerShell.Utility. L’applet de commande Wait-Debugger permet d’arrêter l’exécution d’un script dans le débogueur avant d’exécuter l’instruction suivante du script.

  • Le débogueur Windows PowerShell Workflow prend maintenant en charge l’exécution par commande ou via la touche Tab, et vous pouvez déboguer des fonctions de workflow imbriquées. Vous pouvez maintenant appuyer sur Ctrl+Pause pour activer le débogueur dans un script en cours d’exécution, dans des sessions tant locales que distantes, et dans un script de workflow.

  • Une applet de commande, Debug-Job, a été ajoutée au module Microsoft.PowerShell.Core. Elle permet de déboguer des scripts de travail en cours d’exécution pour Windows PowerShell Workflow, l’arrière-plan et les travaux en cours d’exécution dans des sessions à distance.

  • Un nouvel état, AtBreakpoint, a été ajouté pour les travaux Windows PowerShell. L’état AtBreakpoint s’applique quand un travail exécute un script incluant une série de points d’arrêt, au moment où le script atteint un point d’arrêt. Quand un travail est interrompu à un point d’arrêt de débogage, vous devez déboguer le travail en exécutant l’applet de commande Debug-Job.

  • Windows PowerShell 5.0 prend en charge plusieurs versions d’un module Windows PowerShell à l’intérieur du même dossier dans $PSModulePath. Une propriété RequiredVersion a été ajoutée à la classe ModuleSpecification pour vous aider à obtenir la version souhaitée d’un module ; cette propriété s’exclut mutuellement avec la propriété ModuleVersion. La propriété RequiredVersion est maintenant prise en charge. Elle est incluse dans la valeur du paramètre FullyQualifiedName des applets de commande Get-Module, Import-Module et Remove-Module.

  • Vous pouvez maintenant effectuer une validation de la version du module en exécutant l’applet de commande Test-ModuleManifest.

  • Les résultats de l’applet de commande Get-Command affichent maintenant une colonne Version suite à l’ajout d’une nouvelle propriété, Version, à la classe CommandInfo. L’applet de commande Get-Command affiche les commandes de plusieurs versions du même module. La propriété Version fait également partie des classes dérivées de CmdletInfo : CmdletInfo et ApplicationInfo.

  • Une nouvelle applet de commande, Get-ItemPropertyValue, permet d’obtenir la valeur d’une propriété sans utiliser de notation par points. Par exemple, dans les versions plus anciennes de Windows PowerShell, vous pouvez exécuter la commande suivante pour obtenir la valeur de la propriété de base de l’application de la clé de Registre PowerShellEngine :

    $keypath = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine'
    (Get-ItemProperty -Path $keypath -Name  ApplicationBase).ApplicationBase
    

    À partir de Windows PowerShell 5.0, vous pouvez exécuter

    $keypath = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine'
    Get-ItemPropertyValue -Path $keypath -Name ApplicationBase
    
  • Un nouveau module NetworkSwitch contient des applets de commande qui vous permettent d’appliquer un commutateur, un réseau local virtuel (VLAN) et une configuration de port de commutateur réseau de couche 2 de base à des commutateurs réseau certifiés logo Windows Server 2012 R2 (et versions ultérieures).

  • Le paramètre FullyQualifiedName a été ajouté aux applets de commande Import-Module et Remove-Module pour prendre en charge le stockage de plusieurs versions d’un même module.

  • Les applets de commande Save-Help, Update-Help, Import-PSSession, Export-PSSession et Get-Command disposent d’un nouveau paramètre, FullyQualifiedModule, de type ModuleSpecification. Ajoutez ce paramètre pour spécifier un module par son nom complet.

  • La valeur de $PSVersionTable.PSVersion a été mise à jour. Il s’agit désormais de 5.0.

Nouvelles fonctionnalités dans la configuration d’état souhaité de Windows PowerShell

  • Le rehaussement du langage Windows PowerShell permet de définir des ressources de configuration d’état souhaité (DSC) Windows PowerShell à l’aide de classes. Import-DscResource est maintenant un vrai mot clé dynamique. Windows PowerShell analyse le module racine du module spécifié, en recherchant des classes contenant l’attribut DscResource. Vous pouvez maintenant utiliser des classes pour définir des ressources DSC, dans lesquelles un fichier MOF ou un sous-dossier DSCResource dans le dossier du module ne sont pas requis. Un fichier de module Windows PowerShell peut contenir plusieurs classes de ressources DSC.

  • Un nouveau paramètre, ThrottleLimit, a été ajouté aux applets de commande suivantes dans le module PSDesiredStateConfiguration. Ajoutez le paramètre ThrottleLimit pour spécifier le nombre d’ordinateurs cibles ou d’appareils sur lesquels vous souhaitez que la commande opère simultanément.

    • Get-DscConfiguration
    • Get-DscConfigurationStatus
    • Get-DscLocalConfigurationManager
    • Restore-DscConfiguration
    • Test-DscConfiguration
    • Compare-DscConfiguration
    • Publish-DscConfiguration
    • Set-DscLocalConfigurationManager
    • Start-DscConfiguration
    • Update-DscConfiguration
  • Avec le signalement d’erreurs DSC centralisé, outre que les informations d’erreur complètes sont enregistrées dans le journal des événements, celles-ci peuvent être envoyées à un emplacement central à des fins d’analyse ultérieure. Vous pouvez utiliser cet emplacement central pour stocker des erreurs de configuration DSC qui se sont produites pour un serveur quelconque dans son environnement. Une fois le serveur de rapports défini dans la métaconfiguration, toutes les erreurs sont envoyées au serveur de rapports et stockées dans une base de données. Vous pouvez configurer cette fonctionnalité, indépendamment du fait qu’un nœud cible soit configuré ou non pour extraire des configurations d’un serveur collecteur.

  • Les améliorations apportées à Windows PowerShell ISE facilitent la création de ressources DSC. Vous pouvez maintenant effectuer les opérations suivantes.

    • Énumération de toutes les ressources DSC dans un bloc configuration ou node en entrant Ctrl+Espace dans une ligne vide du bloc.
    • Saisie semi-automatique sur les propriétés de ressources du type enumeration.
    • Saisie semi-automatique sur la propriété DependsOn des ressources DSC, basée sur d’autres instances de ressources dans la configuration.
    • Saisie semi-automatique via la touche Tab améliorée pour les valeurs de propriété de ressource.
  • Un nouvel attribut, DscLocalConfigurationManager, désigne un bloc de configuration en tant que métaconfiguration, qui sert à configurer le gestionnaire de configuration local DSC. Avec cet attribut, une configuration peut contenir uniquement des éléments qui configurent le gestionnaire de configuration local DSC. Pendant le traitement, cette configuration génère un fichier *.meta.mof qui est ensuite envoyé aux nœuds cibles appropriés en exécutant la cmdlet Set-DscLocalConfigurationManager.

  • Les configurations partielles sont maintenant autorisées dans Windows PowerShell 5.0. Vous pouvez distribuer des documents de configuration à un nœud en plusieurs fragments. Pour qu’un nœud reçoive plusieurs fragments d’un document de configuration, le Configuration Manager local du nœud doit d’abord être défini pour spécifier les fragments attendus.

  • La synchronisation entre ordinateurs est une nouveauté de DSC dans Windows PowerShell 5.0. En utilisant les ressources WaitFor* (WaitForAll, WaitForAny, and WaitForSome), vous pouvez maintenant spécifier des dépendances entre ordinateurs lors d’exécutions de configuration, sans orchestration externe. Ces ressources fournissent une synchronisation de nœud à nœud à l’aide de connexions CIM sur le protocole WS-Man. Une configuration peut attendre que l’état d’une ressource spécifique d’un autre ordinateur change.

  • Une nouvelle fonctionnalité de sécurité de délégation, JEA (Just Enough Administration), tire parti de DSC et des instances d’exécution contraintes de Windows PowerShell pour protéger les entreprises contre la perte de données ou des actes préjudiciables commis par employés, intentionnellement ou non. Pour plus d’informations sur la fonctionnalité JEA, y compris l’emplacement à partir duquel vous pouvez télécharger la ressource DSC xJEA, voir Just Enough Administration.

  • Les nouvelles applets de commande suivantes ont été ajoutées au module PSDesiredStateConfiguration.

    • Une nouvelle applet de commande, Get-DscConfigurationStatus, obtient des informations de haut niveau sur l’état de configuration à partir d’un nœud cible. Vous pouvez obtenir l’état de la dernière configuration ou de toutes les configurations.
    • Une nouvelle applet de commande, Compare-DscConfiguration, compare une configuration spécifiée à l’état réel d’un ou plusieurs nœuds cibles.
    • Une nouvelle applet de commande, Publish-DscConfiguration, copie un fichier MOF de configuration sur un nœud cible, mais n’applique pas la configuration. Cette configuration est appliquée durant le contrôle de cohérence suivant ou quand vous exécutez l’applet de commande Update-DscConfiguration.
    • Une nouvelle applet de commande, Test-DscConfiguration, permet de vérifier si une configuration obtenue correspond à la configuration souhaitée, en retournant la valeur True si c’est le cas, ou la valeur False si ça ne l’est pas.
    • Une nouvelle applet de commande, Update-DscConfiguration, force le traitement d’une configuration. Si le gestionnaire de configuration local est en mode par extraction, l’applet de commande obtient la configuration à partir du serveur collecteur avant de l’appliquer.

Nouvelles fonctionnalités dans Windows PowerShell ISE

  • Vous pouvez maintenant modifier des scripts et des fichiers de Windows PowerShell à distance dans une copie locale de Windows PowerShell ISE, en exécutant Enter-PSSession pour démarrer une session à distance sur l’ordinateur qui stocke les fichiers que vous souhaitez modifier, puis en exécutant PSEdit <path and file name on the remote computer>. Cette fonctionnalité facilite la modification de fichiers Windows PowerShell stockés sur l’option d’installation minimale de Windows Server, où Windows PowerShell ISE ne peut pas s’exécuter.
  • L’applet de commande Start-Transcript est maintenant prise en charge dans Windows PowerShell ISE.
  • Vous pouvez maintenant déboguer des scripts à distance dans Windows PowerShell ISE.
  • Une nouvelle option de menu, Interrompre tout (Ctrl+B) arrête le débogueur pour les scripts s’exécutant tant en local qu’à distance.

Nouvelles fonctionnalités dans Windows PowerShell Web Services (Extension ISS Management OData)

  • À partir de Windows PowerShell 5.0, vous pouvez générer un ensemble d’applets de commande Windows PowerShell en fonction des fonctionnalités exposées par un point de terminaison OData donné, en exécutant l’applet de commande Export-ODataEndpointProxy.

Correctifs de bogues notables dans Windows PowerShell 5.0

  • Windows PowerShell 5.0 inclut une nouvelle implémentation de COM, qui améliore sensiblement les performances quand vous travaillez avec des objets COM.

Pour plus d’informations sur Windows PowerShell 5.0, visitez les sites web suivants :

VOIR AUSSI

À propos des classes

about_Debuggers

about_Desired_State_Configuration

about_Updatable_Help

Save-Help

Get-Module

Debug-Job

Update-Help

Get-Process

Remove-Computer

Set-ExecutionPolicy

Add-Computer

ConvertFrom-String

Invoke-RestMethod

Set-JobTrigger

Set-ScheduledJob

New-JobTrigger

Register-ScheduledJob

Enable-JobTrigger

Disable-JobTrigger

MOTS-CLÉS

Nouveautés dans Windows PowerShell 5.0