Powershell x64 无法在 Windows 8.1 中启动

Powershell x64 does not start in Windows 8.1

我需要解决的问题是 Visual Studio 2013 中的 Nuget Package Manager Console 无法启动,因为 Windows Powershell 引发错误:

无法启动shell。初始化期间发生故障:'System.Management.Automation.SessionStateScope' 的类型初始化程序抛出异常。

重装nuget,修复VS2013,更改powershell x86中的执行策略(Whosebug中给出的通用解决方案),但错误依旧。

直到我意识到问题出在 x64 powershell(C:\Windows\SysWOW64\WindowsPowerShell\v1.0) 因为 x86 版本没问题。

我在 Windows 8.1 x64

中使用 Visual Studio Ultimate 2013 Update 4 32 位

我找到了答案,它与 .Net 中的遗留安全策略有关

我打开文件C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config并设置属性"enabled" 在标签 NetFx40_LegacySecurityPolicy 中设置为 False 瞧,SysWoW64 的 powershell 正在工作。

在我的例子中,我收到了同样的错误,原因不明,多亏了这个提示,我在

中查找了 NetFx40_LegacySecurityPolicy

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config

但找不到那个标签...

我确实在

中看到了 LegacyCasPolicy enabled="true"

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config

并将其设置为 false...中提琴,工作起来很有魅力...不知道这是如何设置的,但在任何地方都找不到解决此问题的方法,不,我没有任何损坏的系统文件。

同样的问题,不同的密钥。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config

改为假

NetFx40_LegacySecurityPolicy enabled="true"