Powershell 支持较高版本的.net 1


在vistal,Windows7,Windows Server 2008上自带了Powershell,但是默认都支持.Net2.0,如果要导入或运行一些高版本的代码,可能会报错。
如何让Powershell支持高版本的Framework呢?

方法1:添加配置文件

在C:WindowsSystem32WindowsPowerShellv1.0或者C:WindowsSysWOW64WindowsPowerShellv1.0中添加配置文件名为:Powershell.exe.config
内容如下:

< ?xml version="1.0"?>

 




方法2:修改注册表

修改注册表之前请备份,把 RuntimeVersion 从 v2.0.50727 改成 v4.0.30319。
HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1PowerShellEngine

推荐使用第一种方法。
修改完后重启Powershell控制台查看:

PS C:> [Environment]::OSVersion | ft -AutoSize

Platform ServicePack    Version        VersionString
-------- -----------    -------        -------------
 Win32NT Service Pack 1 6.1.7601.65536 Microsoft Windows NT 6.1.7601 Service Pack 1

PS C:> [Environment]::Version

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      30319  261

当然如果你的系统是windows server 2012 或者 Windows 8 可能会默认已经支持.NET4或者.NET4.5了。

方法3: 修改.NET 运行时

使其默认以最高版本运行

reg add hklmsoftwaremicrosoft.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
reg add hklmsoftwarewow6432nodemicrosoft.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1

本文链接: https://www.pstips.net/powershell-support-higher-version-dotnet.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

一条评论 “Powershell 支持较高版本的.net

  • Leo

    默认以最高版本运行的注册表补充“\”
    reg add hklm\software\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
    reg add hklm\software\wow6432node\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
    RuntimeVersion为指定版本的注册表补充“\”+命令
    reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine /v RuntimeVersion /d v4.0.30319