demande de rappel immédiat

PowerShell V4.0 C'est parti !

Posted by Jean-Paul Blanc Friday, October 25, 2013 6:38:00 AM
Rate this Content 0 Votes

 

 

Comment installer la version 4.0 de PowerShell ?

  • Il est possible d'installer 'Windows Management Framework 4.0', sur les systèmes Windows à partir de Windows Seven SP1 ou Windows Server 2008 R2 SP1. Attention, même si PowerShell 4.0 s'appuie sur le CLR 4.0 WMF 4.0 nécessite le Microsoft .NET Framework 4.5. Je ne sais pas pourquoi, mais l'installeur de WMF 4.0 ne prévient pas si la version 4.5 du Framework .NET est absente, ce qui ce traduit par une version de PowerShell inchangée après l'installation qui pourtant semble s'être passé sans problème.

PowerShell 4.0

A première vue quoi de neuf ?

 

Le point important annoncé par Microsoft est Windows PowerShell Desired State Configuration. DSC est un nouveau mécanisme de gestion de configuration d'environnements et de déploiement d'applications et de services sur nos serveurs ou dans le 'Cloud' . DSC s'appuie sur l'introduction d'une nouvelle syntaxe déclarative dans PowerShell. Je ne vais plus coder les opérations qui conduisent à l'installation et au démarrage de mon site Web, mais je vais simplement décrire l'état de l'environnement de mon serveur et du système de fichier qui conduisent à un site Web opérationnel. Le code obtenu à partir de cette syntaxe déclarative peut ensuite être distribué sur tous les serveurs sur lesquels je souhaite obtenir le même serveur Web. Cette configuration déclarative me permet aussi de ré appliquer la configuration sur un serveur qui aurait subi des modifications ou de simplement établir un rapport sur les différences entre la version en production et la description de mise en production constituée par le script DSC.

Exemple de déclaration d'un site Web:

 

Exemple Desired State Configuration

Il y a d'autres améliorations parmis lesquelles j'ai relevé :

  • La capacité de traiter dynamiquement les propriétés et les méthodes des objets, dans l'exemple suivant les propriétés sont passées dans le pipe et appliquées à un objet.
[0]= # Tester l’existence des fichiers de profil 
[1]= $a = "CurrentUserCurrentHost","AllUsersCurrentHost","CurrentUserAllHosts","CurrentUserCurrentHost" 
[2]= $a | % {$profile.$_} 
C:\Users\JPB\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
C:\Users\JPB\Documents\WindowsPowerShell\profile.ps1
C:\Users\JPB\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
  • Une variable commune à toutes les CmdLets qui permet de mémoriser dans une variable l'objet courant après utilisation de la CmdLet dans un pipe.
[4]= # Recherche dans le contenu de fichier 
[5]= $a = Get-ChildItem C:\Windows\Logs\*.log | Get-Content | Select-String -Pattern 'Started: \d\d\d\d/' -Context 0,6 
[7]= # Dans la suite du Pipe on dispose d'objet de type MatchInfo 
[8]= $a[0].GetType() 


IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    MatchInfo                                System.Object


[11]= # La portée des variables est restreinte au pipe 
[12]= $a = Get-ChildItem C:\Windows\Logs\*.log -PipelineVariable Fic | Get-Content -PipelineVariable Ligne | Select-Stri ng -Pattern 'Started: \d\d\d\d/' | % {$fic,$ligne,$_} 
[14]= # Dans la suite du Pipe on dispose des différents objets 
[15]= $a[0..2] | % {$_.gettype()} 
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     FileInfo                                 System.IO.FileSystemInfo
True     True     String                                   System.Object
True     False    MatchInfo                                System.Object

Officiellement :

What's New in Windows PowerShell donne un bref descriptif des nouveautés de PowerShell 4.0.

Comments are closed on this post.