¿Windows PowerShell 2.0 está instalado de forma predeterminada en Windows 7?

8

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

Windows PowerShell 2.0 debe instalarse solo en Windows Server 2008 y Windows Vista. Ya está instalado en Windows Server 2008 R2 y Windows 7 .

Sin embargo, powershell.exe vive aquí% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe. Eso no parece que sea PowerShell 2.0. La versión del archivo de powershell.exe es 6.1.7600.16385 por lo que tampoco ayuda mucho.

¿Cómo puedo saber con seguridad si tengo instalado Windows PowerShell 2.0 y, en caso contrario, dónde está el enlace de descarga de Windows 7?

kenwarner
fuente

Respuestas:

10

No es necesario desenterrarlo de las claves de registro. Simplemente ejecute get-host y verifique la versión.


fuente
O usa el $Host variable automatica Sin embargo, está marcado como específico de la implementación en la especificación (de nuevo, Get-Host no aparece en absoluto en la especificación).
Joey
Get-Host no aparece en absoluto en la especificación - & gt; Eso es raro. Acaban de lanzar esa especificación hace un par de semanas. Me pregunto si eso fue un descuido?
Bueno, tal vez no se considera parte de los cmdlets del lenguaje principal. $Host También es solo de implementación definida. La especificación aparentemente solo cubre el PowerShell. idioma , no la API y el modelo de host.
Joey
Tampoco cubre a los proveedores de PSP, pero hay una solución para esos.
12

También puedes usar $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

Esta var existe solo en PowerShell V2.0 y proporciona la versión CLR que utiliza. El resultado normal es:

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
fuente
4

La ubicación del ejecutable de PowerShell y los archivos de soporte no se modificaron para V2, ni se modificó la .ps1 Extensión de script porque V2 es totalmente compatible con versiones anteriores: reemplaza a V1 en lugar de necesitar algún mecanismo de lado a lado.

Richard
fuente
0

Lo averigué

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

Para verificar si la versión 1.0 o 2.0 de PowerShell está instalada, verifique el siguiente valor en el registro:
Ubicación clave: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ PowerShellEngine
Nombre del valor: PowerShellVersion
Tipo de valor: REG_SZ
Datos de valor: & lt; 1.0 | 2.0 & gt;

kenwarner
fuente
powershell v2 está en el directorio v1.0 en win7 / 2008r2. No podrías instalar v1 de powershell en esas plataformas incluso si quisieras. Son componentes del sistema. Si estás en w7 o r2, puedes asumir que tienes v2 o superior powershell.
x0n