2753 votes

Comment faire pour déterminer la version de PowerShell est installé?

Comment puis-je déterminer la version de PowerShell est installé sur un ordinateur, et en effet, s'il est installé?

447voto

Thomas Bratt Points 10738

Je voudrais utiliser Get-Hôte ou $PSVersionTable. Comme Andy Schneider points, $PSVersionTable ne fonctionne pas dans la version 1; il a été introduit dans la version 2.

get-host

Name             : ConsoleHost
Version          : 2.0
InstanceId       : d730016e-2875-4b57-9cd6-d32c8b71e18a
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-GB
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

$PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.4200
BuildVersion                   6.0.6002.18111
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

103voto

Andy Schneider Points 4118

Vous pouvez regarder le construit dans la variable $psversiontable. S'il n'existe pas, vous avez V1. Si elle n'existe pas, il va vous donner toutes les informations dont vous avez besoin.

1 >  $psversiontable

Name                           Value                                           
----                           -----                                           
CLRVersion                     2.0.50727.4927                                  
BuildVersion                   6.1.7600.16385                                  
PSVersion                      2.0                                             
WSManStackVersion              2.0                                             
PSCompatibleVersions           {1.0, 2.0}                                      
SerializationVersion           1.1.0.1                                         
PSRemotingProtocolVersion      2.1

96voto

MagicAndi Points 10128

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

HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\Install

et

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3

et, si elle existe, si la valeur est 1 (installé), comme détaillé dans le billet de blog de Vérifier si PowerShell installé et la version.

Pour déterminer la version de PowerShell qui est installé, vous pouvez vérifier les clés de registre 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 qui est installé à partir d'un .ps1 script, vous pouvez utiliser la ligne de commande, comme indiqué sur la PowerShell.com en ce Qui PowerShell Version Suis-je en cours d'Exécution.

$isV2 = test-path variable:\psversiontable

Le même site donne aussi une fonction de retour de la version:

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

22voto

Starfish Points 575

Recommandées par Microsoft compatible méthode pour vérifier si PowerShell est installé et la détermination de la version installée est de regarder les deux clés de registre spécifiques. J'en ai reproduit les détails ici au cas où le lien est rompu.

Selon la page du lien:

Selon toute autre clé de registre(s), ou de la version du PowerShell.exe ou de l'emplacement de PowerShell.exe n'est pas garanti sur le long terme.

Pour vérifier si une version de PowerShell est installé, vérifiez la valeur suivante dans le registre:

  • Emplacement De La Clé: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1
  • Nom De La Valeur: Installer
  • Type de valeur: REG_DWORD
  • Valeur de Données: 0 x 00000001 (1

Pour vérifier si la version 1.0 ou 2.0 de PowerShell est installé, vérifiez la valeur suivante dans le registre:

  • Emplacement De La Clé: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine
  • Nom De La Valeur: PowerShellVersion
  • Type de valeur: REG_SZ
  • Données De La Valeur: <1.0 | 2.0>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X