未安装 .NET Framework 版本 v4.0.30319,需要运行 Windows PowerShell 版本 3

未安装 .NET Framework 版本 v4.0.30319,需要运行 Windows PowerShell 版本 3

我有一个用于批处理的服务器。

我可以使用 svc_account 登录到服务器并运行powershell -f file.ps1,并且它可以通过以下方式在版本 2 或 3 中正常运行 -

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

如果我尝试通过批处理器运行它,我会收到以下消息

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

无论我让批处理器以 powershell v3 还是 v2 形式运行,都会发生此错误。

问题是,.NET 已安装。该服务器上都存在 3.5、4.0 和 4.5,因此帐户登录时由于某种原因无法识别已安装 .NET。

答案1

添加此键并尝试再次运行:

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

答案2

我们在 .NET Framework 版本 4 上运行 powershell (ala:

https://stackoverflow.com/q/2094694

)这涉及使用激活配置文件

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

set COMPLUS_ApplicationMigrationRuntimeActivationConfigPath = %~dp0

在我们的案例中,重要的部分是我们请求框架版本 4.6.1,但我们只安装了 4.5。

错误消息显然不够充分,因为问题不在于框架版本。但由于这个问题是您在搜索该错误消息时得到的第一个结果,因此希望这个答案对其他人有用。

相关内容