Powershell 错误:“System.Net.ServicePointManager”的类型初始化程序引发了异常

Powershell 错误:“System.Net.ServicePointManager”的类型初始化程序引发了异常

每当我尝试打开 Powershell 时,它都无法打开。当我尝试从 cmd 打开它时,出现此错误:

无法启动 shell。初始化过程中发生故障:“System.Net.ServicePointManager”的类型初始化程序引发异常。

我尝试过的事情:

  • 与管理员一起打开
  • sfc /scannow 没有显示任何错误

如果有任何帮助的话,32 位版本的 powershell 仍然有效。

答案1

我刚刚在客户端计算机上处​​理了这个问题。问题是machine.config.NET Framework 4.x 的文件都已损坏(它们不知何故变成了零长度文件)。

删除文件是不够的。

只需用下面的代码替换零长度文件即可,但我使用了“已知良好”的版本以确保没有任何长期副作用。

这是文件所需的最低限度的内容machine.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration />

更换这两个文件具有machine.config来自同一版本的“已知良好”副本,为我解决了这个问题,并且让我不必担心以后会出现一些未知问题。

修复或替换machine.config文件后需要重新启动。

Windowsmachine.config文件位于以下文件夹之一:

%Windows%\Microsoft.NET\Framework\v{version}\CONFIG
%Windows%\Microsoft.NET\Framework64\v{version}\CONFIG

machine.config各个应用程序的文件夹下也可能存在损坏的文件*\mono\{version},但如果不使用来自同一平台和 CPU 架构上的同一应用程序和应用程序版本的副本,我会更加犹豫是否要替换它们。

无论如何,在 Windows 上,您可以通过在名为 的 Windows 文件夹下搜索零长度文件来查找特定的缺陷文件machine.config。此命令将为您执行此操作。

forfiles /P %windows% /S /M machine.config /C "cmd /c if @isdir==FALSE if @fsize EQU 0 echo @path"

答案2

这个问题是由于 powershell 需要访问安装在微软的 .NET 框架而产生的。对我来说,是安装 GIT 并在 MinTTy 上使用 windows 默认编辑器导致了这个问题。.NET 需要正确配置才能使 powershell 正常工作。幸运的是,通常有一个默认配置文件,其中包含正确的设置来帮助您入门。

这是可行的解决方案。

找到以下两个文件:

%Windows%\Microsoft.NET\Framework\v{version}\CONFIG\machine.config.default
%Windows%\Microsoft.NET\Framework64\v{version}\CONFIG\machine.config.default

复制它们分别进入:

%Windows%\Microsoft.NET\Framework\v{version}\CONFIG\machine.config
%Windows%\Microsoft.NET\Framework64\v{version}\CONFIG\machine.config

打开 PowerShell,瞧!

注意:我甚至不需要重新启动 powershell 就可以工作。

相关内容