A versão v4.0.30319 do .NET Framework não está instalada e é necessária para executar a versão 3 do Windows PowerShell

3

Eu tenho um servidor que estamos usando para processamento em lotes.

Eu posso fazer o login no servidor com svc_account e executar powershell -f file.ps1 e ele é executado na versão 2 ou 3 pela seguinte -

powershell -Version 2 -f file.ps1
powershell -f file.ps1

Se eu tentar executá-lo em nosso processador de lote, recebo a seguinte mensagem

Version v4.0.30319 of the .NET Framework is not installed and it is required to run version 3 of Windows PowerShell.

Esse erro ocorre independentemente de eu obter meu processador em lote para executar como v3 ou v2 de powershell.

A coisa é, o .NET está instalado. 3.5, 4.0 e 4.5 todos existem neste servidor, então é algo com o login da conta que, por algum motivo, não reconhece que o .NET está instalado.

    
por whoisearth 29.05.2015 / 23:50

2 respostas

1

Adicione esta chave e tente executá-la novamente:

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework] "InstallRoot"="C:\Windows\Microsoft.NET\Framework64\"

    
por 26.06.2015 / 20:09
0

Estávamos executando o powershell no .NET Framework versão 4 (ala:

link

) envolveu o uso de um arquivo de configuração de ativação

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup> 

e

set COMPLUS_ApplicationMigrationRuntimeActivationConfigPath = %~dp0

A parte importante no nosso caso foi que estávamos solicitando a versão 4.6.1 do framework e tínhamos apenas 4.5 instalados.

A mensagem de erro é claramente inadequada porque a versão do framework não era o problema. Mas como essa pergunta é o primeiro a ser atingido quando você pesquisa essa mensagem de erro, essa resposta provavelmente será útil para outra pessoa.

    
por 25.02.2017 / 07:42