Déterminer la version de PowerShell installée

Comment puis-je déterminer quelle version de PowerShell est installée sur un ordinateur, et même si elle est installée tout court ?

Solution

Utilisez $PSVersionTable.PSVersion pour déterminer la version du moteur. Si cette variable n'existe pas, on peut supposer que le moteur est de la version 1.0.

Notez que $Host.Version et (Get-Host).Version ne sont pas fiables. la version de l'hôte seulement, pas du moteur. PowerGUI, PowerShellPLUS, etc. sont toutes des applications d'hébergement, et et ils définiront la version de l'hôte pour refléter la version de leur produit version &mdash ; ce qui est tout à fait correct, mais pas ce que vous recherchez.

PS C:\> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1
Commentaires (10)

Pour déterminer si PowerShell est installé, vous pouvez vérifier dans le registre l'existence de l'élément suivant

HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\Install

et

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3

et, s'il existe, si la valeur est 1 (pour installé), comme détaillé dans le billet de blog [Vérifier si PowerShell est installé et sa version][1].

Pour déterminer la version de PowerShell qui est installée, vous pouvez vérifier les clés de registre suivantes

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion

et

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\PowerShellVersion

Pour déterminer la version de PowerShell installée à partir d'un script .ps1, vous pouvez utiliser la ligne unique suivante, comme indiqué sur PowerShell.com dans [Which PowerShell Version Am I Running][2].

$isV2 = test-path variable:\psversiontable

Le même site donne également une fonction pour retourner la version :

function Get-PSVersion {
    if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"}
}

[1] : http://myitforum.com/cs2/blogs/yli628/archive/2007/08/16/check-if-powershell-installed-and-version.aspx [2] : http://powershell.com/cs/blogs/tips/archive/2009/09/11/which-powershell-version-am-i-running.aspx

Commentaires (2)

Pour vérifier si PowerShell est installé, utilisez :

HKLM\Software\Microsoft\PowerShell\1 Install ( = 1 )

Pour vérifier si RC2 ou RTM est installé, utilisez :

HKLM\Software\Microsoft\PowerShell\1 PID (=89393-100-0001260-00301) -- For RC2
HKLM\Software\Microsoft\PowerShell\1 PID (=89393-100-0001260-04309) -- For RTM

Source : [ce site] (http://www.myitforum.com/articles/40/view.asp?id=10618).

Commentaires (0)