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 ?
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
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
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).