PowerShell启动后立即闪退 报错无法加载System.Management.Automation程序集
报错信息:
英文原文:Could not load file or assembly 'System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The module was expected to contain an assembly manifest.
中文翻译:无法加载文件或程序集“System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或其某一个依赖项。该模块应包含程序集清单。
该报错核心原因是PowerShell依赖的核心程序集损坏,在你已经尝试过新建用户、sfc /scannow无效的前提下,可按以下优先级执行修复操作:
步骤1:修复.NET Framework环境
System.Management.Automation是.NET Framework和PowerShell共有的核心依赖,先修复.NET运行时:
- 按下Win+R输入
appwiz.cpl打开程序和功能面板 - 找到已安装的.NET Framework 3.5、.NET Framework 4.x条目,右键选择「更改」,在弹出窗口中选择「修复」,完成后重启电脑
- 如果修复后仍然无效,卸载当前所有.NET Framework组件,再从系统可选功能中重新安装.NET Framework 3.5和.NET Framework 4.8版本
步骤2:重装对应版本PowerShell
报错指向的是PowerShell 3.0的核心程序集,按以下操作重装:
- 按下Win+X选择「Windows终端(管理员)」,如果终端也无法打开,就用Win+R输入
cmd,右键选择以管理员身份运行命令提示符 - 执行以下命令卸载现有PowerShell 3.0及以上版本:
wusa /uninstall /kb:2506143 /quiet /norestart - 重启电脑后,Win10/11系统会自动重装默认的PowerShell 5.1版本;Win7系统可手动下载对应版本的PowerShell安装包安装即可
步骤3:修复底层系统镜像
你已经执行过sfc /scannow,补充执行DISM命令修复系统组件存储:
管理员身份打开命令提示符,依次执行以下3条命令,每条执行完成后再运行下一条:DISM /Online /Cleanup-Image /CheckHealthDISM /Online /Cleanup-Image /ScanHealthDISM /Online /Cleanup-Image /RestoreHealth
所有命令执行完成后重启电脑,再次尝试启动PowerShell
步骤4:校验系统环境变量配置
极少数情况是.NET的加载路径被篡改导致的加载失败:
- 右键「此电脑」选择「属性」-「高级系统设置」-「环境变量」
- 在系统变量列表中找到
Path变量,确认以下路径存在,不存在就手动添加:
-C:\Windows\Microsoft.NET\Framework\v4.0.30319
-C:\Windows\Microsoft.NET\Framework64\v4.0.30319
-C:\Windows\System32\WindowsPowerShell\v1.0\ - 保存修改后重启电脑
如果以上步骤全部执行后仍然报错,可直接覆盖安装当前版本的Windows系统,选择保留个人文件和应用的安装模式,不会丢失本地数据,可直接修复所有系统级文件损坏问题。
内容的提问来源于stack exchange,提问作者kineticcat_

