Question 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?


2076
2017-12-01 11:30


origine


Réponses:


Utilisation $PSVersionTable.PSVersion pour déterminer la version du moteur. Si la variable n'existe pas, il est prudent de supposer que le moteur est la version 1.0.

Notez que $Host.Version et (Get-Host).Version ne sont pas fiables - ils reflètent la version de l'hôte uniquement, pas le moteur. PowerGUI, PowerShellPLUS, etc. hébergent toutes des applications, et ils vont définir la version de l'hôte pour refléter leur produit version - ce qui est tout à fait correct, mais pas ce que vous cherchez.

PS C:\> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1

2793
2018-01-19 11:06



J'utiliserais soit Get-Host ou $ PSVersionTable. Comme le souligne Andy Schneider, $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

371
2017-12-01 11:34



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

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 blog Vérifiez si PowerShell est installé et version.

Pour déterminer la version de PowerShell installée, 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ée à partir d'un script .ps1, vous pouvez utiliser le one-liner suivant, comme indiqué sur PowerShell.com dans Quelle version de PowerShell est-ce que je cours.

$isV2 = test-path variable:\psversiontable

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

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

86
2017-12-01 14:37



Vous pouvez regarder la variable intégrée, $psversiontable. Si ce n'est pas le cas, vous avez V1. S'il existe, il vous donnera 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    

77
2018-04-25 13:47



Je veux juste ajouter mes 2 cents ici.

Vous pouvez directement vérifier la version avec une seule ligne en invoquant PowerShell extérieurement, par exemple à partir de l'invite de commande

powershell -Command "$PSVersionTable.PSVersion"

MODIFIER:

Selon @psaul toi pouvez en fait avoir une commande qui est agnostique d'où elle vient (CMD, Powershell ou Pwsh), merci pour cela.

powershell -command "(Get-Variable PSVersionTable -ValueOnly).PSVersion" 

J'ai testé et ça a fonctionné parfaitement sur CMD et Powershell

image


23
2018-03-10 11:32



Vous pouvez vérifier que la version de Windows PowerShell est installée en effectuant la vérification suivante:

  1. Cliquez sur Démarrer, sur Tous les programmes, sur Accessoires, sur Windows PowerShell, puis sur Windows PowerShell.
  2. Dans la console Windows PowerShell, tapez la commande suivante à l'invite de commande et appuyez sur ENTRÉE:

    Get-Host | Version Select-Object

Vous verrez une sortie qui ressemble à ceci:

Version
-------
3.0

http://www.myerrorsandmysolutions.com/how-to-verify-the-windows-powershell-version-installed/


19
2018-06-17 07:59



Méthode recommandée par Microsoft pour la vérification de l'installation de PowerShell et détermination de la version installée est de regarder deux clés de registre spécifiques. J'ai reproduit les détails ici au cas où le lien se brise.

Selon la page liée:

En fonction de toute autre clé (s) de Registre ou de la version de PowerShell.exe ou de l'emplacement de PowerShell.exe n'est pas garanti de fonctionner à long terme.

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

  • Emplacement clé: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1
  • Nom de la valeur: Installer
  • Type de valeur: REG_DWORD
  • Données de la valeur: 0x00000001 (1

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

  • Emplacement 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>

18
2017-11-04 10:24