Você não precisa desenterrá-lo das chaves de registro. Basta executar o get-host e verificar a versão.
link declarações
Windows PowerShell 2.0 needs to be installed on Windows Server 2008 and Windows Vista only. It is already installed on Windows Server 2008 R2 and Windows 7.
No entanto, o powershell.exe mora aqui% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe. Isso não parece ser 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 sei com certeza se tenho o Windows PowerShell 2.0 instalado e, se não tiver, onde é um link de download para o Windows 7?
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 somente no PowerShell V2.0 e fornece a versão CLR que você usa. 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
O local dos arquivos executáveis e de suporte do PowerShell não foi alterado para a V2, nem a extensão do script .ps1
porque a V2 é totalmente compatível - ela substitui a V1 em vez de precisar de algum mecanismo lado a lado.
Descobri isso
Para verificar se a versão 1.0 ou 2.0 do PowerShell está instalada, verifique o seguinte valor no registro:
Localização 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 >