Windows PowerShell 2.0 est-il installé par défaut sur Windows 7?

8

http://msdn.microsoft.com/en-us/library/ff637750.aspx revendications

Windows PowerShell 2.0 doit être installé sur Windows Server 2008 et Windows Vista uniquement. Il est déjà installé sur Windows Server 2008 R2 et Windows 7 .

Cependant, powershell.exe vit ici% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe. Cela ne semble pas être le cas de PowerShell 2.0. La version de fichier de powershell.exe est 6.1.7600.16385, ce qui n'aide pas beaucoup non plus.

Comment savoir avec certitude si Windows PowerShell 2.0 est installé et si je ne le fais pas, où se trouve un lien de téléchargement pour Windows 7?

Kenwarner
la source

Réponses:

10

Vous n'avez pas besoin de l'extraire des clés de registre. Exécutez simplement get-host et vérifiez la version.


la source
Ou utilisez la $Hostvariable automatique. Il est marqué comme spécifique à l'implémentation dans la spécification (cependant, il Get-Hostn'apparaît pas du tout dans la spécification).
Joey
Get-Host n'apparaît pas du tout dans la spécification -> C'est bizarre. Ils viennent de publier cette spécification il y a quelques semaines. Vous vous demandez si c'était un oubli?
Eh bien, ce n'est peut-être pas considéré comme faisant partie des applets de commande du langage principal. $Hostest également uniquement défini par l'implémentation. La spécification ne couvre apparemment que le langage PowerShell , pas l'API et le modèle hôte.
Joey
Il ne couvre pas non plus les PSProviders, mais il y en a pour eux.
12

Vous pouvez aussi utiliser $PSVersionTable

PS > $PSVersionTable

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

Cette var n'existe que dans PowerShell V2.0 et donne la version CLR que vous utilisez. Le résultat normal est:

PS > $PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.4959
BuildVersion                   6.1.7600.16385
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1
JPBlanc
la source
4

L'emplacement de l'exécutable PowerShell et des fichiers de prise en charge n'a pas été modifié pour V2, ni l' .ps1extension de script car V2 est entièrement rétrocompatible - il remplace V1 plutôt que d'avoir besoin d'un mécanisme côte à côte.

Richard
la source
0

Deviner

http://blogs.msdn.com/b/powershell/archive/2009/06/25/detection-logic-poweshell-installation.aspx

Pour vérifier si la version 1.0 ou 2.0 de PowerShell est installée, recherchez 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>

Kenwarner
la source
powershell v2 est dans le répertoire v1.0 sur win7 / 2008r2. Vous ne pouvez pas installer la v1 de PowerShell sur ces plateformes même si vous le souhaitez. Ce sont des composants du système. SI vous êtes sur w7 ou r2, vous pouvez supposer que vous avez un PowerShell v2 ou supérieur.
2011