O Windows PowerShell 2.0 está instalado por padrão no Windows 7?

8

http://msdn.microsoft.com/en-us/library/ff637750.aspx reivindicações

O Windows PowerShell 2.0 precisa ser instalado apenas no Windows Server 2008 e no Windows Vista. Ele já está instalado no Windows Server 2008 R2 e Windows 7 .

No entanto, o powershell.exe mora aqui% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe. Parece que não seria o PowerShell 2.0. A versão do arquivo do powershell.exe é 6.1.7600.16385, o que também não ajuda muito.

Como tenho certeza se tenho o Windows PowerShell 2.0 instalado e, se não, onde está um link de download para o Windows 7?

Kenwarner
fonte

Respostas:

10

Você não precisa desenterrá-lo das chaves do registro. Basta executar o get-host e verificar a versão.


fonte
Ou use a $Hostvariável automática. Porém, está marcado como específico da implementação na especificação (então, novamente, Get-Hostnão aparece na especificação).
Joey
Get-Host não aparece na especificação -> Isso é estranho. Eles acabaram de lançar essa especificação algumas semanas atrás. Gostaria de saber se isso foi uma supervisão?
Bem, talvez não seja considerado parte dos cmdlets do idioma principal. $Hosttambém é apenas definido pela implementação. Aparentemente, a especificação abrange apenas a linguagem do PowerShell , não a API e o modelo de host.
Joey
Também não abrange os PSProviders, mas há uma vantagem para eles.
12

Você também pode 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

Essa var existe apenas no PowerShell V2.0 e fornece a versão do CLR usada. O resultado normal é:

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

O local dos arquivos executáveis ​​e de suporte do PowerShell não foi alterado para a V2, nem a .ps1extensão de script porque a V2 é totalmente compatível com versões anteriores - substitui a V1 em vez de precisar de algum mecanismo lado a lado.

Richard
fonte
0

Descobri isso

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

Para verificar se a versão 1.0 ou 2.0 do PowerShell está instalada, verifique o seguinte valor no registro:
Local da Chave: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ PowerShellEngine
Nome do Valor: PowerShellVersion
Tipo de Valor: REG_SZ
Dados do Valor: <1.0 | 2.0>

Kenwarner
fonte
O powershell v2 está no diretório v1.0 em win7 / 2008r2. Você não poderia instalar a v1 do powershell nessas plataformas, mesmo que quisesse. Eles são componentes do sistema. Se você estiver em w7 ou r2, pode assumir que possui o PowerShell v2 ou superior.
x0n