行业资讯
📅 2026/8/30 11:11:25
PowerShell 安装失败排查:四关卡从报错恢复到可用
PowerShell 安装失败排查四关卡从报错恢复到可用【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell你照着官方一键安装脚本装 PowerShell进度条走到一半弹出报错装完再敲pwsh却提示不是内部或外部命令。这篇 PowerShell 安装失败排查指南覆盖 Linux、macOS、Windows 上 pwsh 7.x 装不上、装错架构、装完不可用的常见场景按四个关卡推进总耗时 10~20 分钟。 关卡一30 秒快速自检先花 30 秒对号入座用命令确认你卡在哪一类症状可能原因自检命令启动报Exec format error或与处理器不兼容安装包架构与系统架构不匹配Linuxuname -mWindowssysteminfo \| findstr /B /C系统类型装完提示pwsh 不是内部或外部命令PATH 未生效或只装了旧版 Windows PowerShellLinuxwhich pwshWindows(Get-Command pwsh -ErrorAction SilentlyContinue).Source启动闪退提示缺少某个*.dll缺少 .NET 运行时依赖Linuxldd $(which pwsh) \| grep not foundWindowsdotnet --list-runtimes安装脚本报 403/权限错误非 root 执行或防火墙拦截Linuxsudo -vWindowswhoami自检全部正常、但问题仍在直接进入关卡二。 关卡二三层修复方案逐层尝试修好即停2.1 快速修复重装官方脚本一条命令级适用信号报错来自一键脚本本身且uname -m输出为x86_64、aarch64等常见架构说明包没下错。# 下载并执行仓库自带的官方安装脚本-preview 可并行装预览版 wget -qO- https://gitcode.com/GitHub_Trending/po/PowerShell/raw/master/tools/install-powershell.sh | sudo bashWindows 侧改用 tools/install-powershell.ps1在新打开的终端里以管理员身份执行该脚本。完成判据脚本走完最后输出Installation Complete随后执行pwsh --version能看到版本号。2.2 彻底修复补装 .NET 运行时适用信号启动闪退或提示缺少 DLL。pwsh 7.5 依赖 .NET 9 运行时运行时缺失时安装本身能完成但启动必挂具体版本对照 CHANGELOG/7.5.md。Linux用发行版软件源安装 Microsoft 的 .NET 9 runtime 仓库中的aspnetcore-runtime-9.0或dotnet-runtime-9.0。Windows/macOS运行 .NET 9 运行时安装器或直接在系统设置里把 pwsh 升级到最新版。完成判据dotnet --list-runtimes输出中包含9.0且pwsh --version正常返回。2.3 换道解决官方容器镜像适用信号架构特殊ARM32 树莓派等、老系统依赖太旧前两层都走不通。不动系统跑容器即可用。# 拉取 7.5 官方镜像并进入容器镜像自带 pwsh 与 .NET 运行时 docker run -it --rm mcr.microsoft.com/powershell:7.5 pwsh完成判据容器内pwsh --version输出PS Version: 7.5.x。如果最终要走源码编译按 docs/building/linux.md 配置工具链再用 global.json 声明的 .NET SDK 版本执行Start-PSBootstrap与Start-PSBuild。✅ 关卡三重启后仍生效的验证方法跑完修复按顺序验证三条# 打印版本表核对 PSVersion 与 PSEdition pwsh -NoLogo -NoProfile -Command $PSVersionTable正常输出PSVersion为 7.x、PSEdition为Core、OS行显示当前系统。异常含义PSEdition显示Desktop说明命令落到旧版 Windows PowerShell 5.1 上PSVersion为 5.1 说明你验证错了程序安装其实还没成功。# 查看 pwsh 可执行文件的真实位置确认不是旧版别名 which pwsh正常输出指向新装目录如/usr/local/bin/pwsh。仍指向老路径说明 PATH 里旧版排在前按发行版方式把新包路径提到前面即可。最后一关关闭终端重新打开再执行pwsh --version。重开后仍能输出版本号才算修复持久化而不是只在当前会话临时生效。 关卡四踩坑备忘装完 pwsh 7 仍敲powershell.exe→ 后果永远执行 Windows PowerShell 5.1新语法直接报错 → 正确做法改用pwsh启动7 与 5.1 是两套独立程序互不替代。在 32 位系统装 x64 包→ 后果启动报Exec format error怎么重装都没用 → 正确做法先用uname -m确认架构再选包32 位系统装 ARM32/x86 对应包或直接用容器。老系统Debian 9、CentOS 7 等装最新版→ 后果glibc 版本过低导致启动即崩溃 → 正确做法改用容器mcr.microsoft.com/powershell:7.5不碰系统环境。离线内网机器直接跑一键脚本→ 后果脚本在拉包阶段卡住或 403 → 正确做法先在可达网络的机器上下载好对应架构的 tarball拷到目标机按发行版流程手工执行。Windows 上误删pwsh.exe后只重跑脚本→ 后果残留文件让启动行为更混乱 → 正确做法先按控制面板卸载旧版再按官方流程干净重装。排障思路就一条先自检定位再分层修复最后验证重启后仍生效。建议以后装前固定先跑一遍关卡一的uname -m与which pwsh30 秒能挡掉绝大多数失败。【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考