Powershell 错误:“System.Net.ServicePointManager”的类型初始值设定项引发异常

gom*_*mmb 6 windows powershell windows-10

每当我尝试打开 Powershell 时,它就是打不开。当我尝试从 cmd 打开它时,出现以下错误:

外壳无法启动。初始化期间发生故障:“System.Net.ServicePointManager”的类型初始值设定项引发异常。

我尝试过的事情:

  • 以管理员身份打开
  • sfc /scannow 没有显示错误

如果有任何帮助的话,32 位版本的 powershell 出于某种原因仍然可以工作。

sha*_*awn 7

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

删除文件是不够的。

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

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

<?xml version="1.0" encoding="UTF-8"?>
<configuration />
Run Code Online (Sandbox Code Playgroud)

用同一版本的“已知良好”副本替换machine.config这两个文件为我解决了这个问题,并且不用担心稍后会出现一些未知问题。

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

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

%Windows%\Microsoft.NET\Framework\v{version}\CONFIG
%Windows%\Microsoft.NET\Framework64\v{version}\CONFIG
Run Code Online (Sandbox Code Playgroud)

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"
Run Code Online (Sandbox Code Playgroud)