ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

PowerShell(pwsh)安装失败?新手4步自助修复指南

PowerShell(pwsh)安装失败?新手4步自助修复指南

PowerShell(pwsh)安装失败?新手4步自助修复指南

【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell

PowerShell 是微软推出的跨平台命令行外壳与自动化引擎,可执行命令是pwsh。装完之后提示找不到pwsh命令,或者报Exec format error、permission denied,先别急着重装——大多数情况只是包或 PATH 出了问题。这篇文章带你先定位报错类型,再用官方一键脚本完成修复,全程约 10 分钟。

🧭 先对号入座:判断你属于哪种报错

先看终端到底说了什么,再决定动手方向。4 种高频症状与真实原因对照如下:

报错信息通俗解释真实原因
pwsh: command not found系统完全不认识这个命令没装好,或安装目录没进 PATH
Exec format error: bad magic文件无法被识别为可执行程序包架构与 CPU 不匹配(x64/ARM64 选反)
bash: ...: permission denied系统拒绝执行权限不足,需要用sudo
... is not allowed to runPowerShell 装了但策略挡着执行策略未放开

前两种按下面主路线走即可;后两种看最后一节。

🔍 用一条命令确认架构是否匹配

这一步的目标:10 秒确认你的机器是什么架构、该拿哪个包。Exec format error大多在这一步就破案。

Linux/macOS 上查看 CPU 架构:

uname -ms

输出x86_64 Linux就对应 x64 包,arm64 Darwin就对应 ARM64 包。

Windows 上查架构,顺便看 pwsh 是否其实已装好:

$env:PROCESSOR_ARCHITECTURE; Get-Command pwsh -ErrorAction SilentlyContinue

显示AMD64就选 x64 版;如果第二条命令打印出路径,说明 PowerShell 已安装、只是没进 PATH,修环境变量就行,不必重装。

🗺️ 挑一条修复路线:三条里选你适用的

按场景对号入座,推荐路线适合绝大多数人:

路线适用场景
① 官方一键安装脚本(推荐)标准 x64/ARM64、有外网,脚本自动识别架构
② 手动下载官方包安装内网无外网,提前备好 .deb / .rpm / .msi
③ Docker 镜像直接运行老旧或特殊系统,用官方镜像绕开系统依赖

下面展开路线①,②③一句带过:内网环境提前下载对应架构包并核对校验值;Docker 路线拉取官方镜像即可运行,不碰本机系统。

⚡ 跑通官方脚本:3步装好 pwsh

这是主路线。全程不要手动挑包,脚本替你检测架构,这是避免"装错架构"的关键。

第1步:拿脚本。克隆源码仓库,脚本在tools目录里:

git clone https://gitcode.com/GitHub_Trending/po/PowerShell

看到什么算对:当前目录出现PowerShell/文件夹,里面有tools/install-powershell.sh或install-powershell.ps1。

第2步:一条命令跑起来。Linux/macOS 直接执行:

bash tools/install-powershell.sh

脚本自动识别架构与发行版,装完会在 Linux 上建好/usr/bin/pwsh软链接。看到什么算对:结尾不再是红色报错,期间会提示输入 sudo 密码(安装需要管理员权限)。

Windows 则在 PowerShell 中执行,-AddToPath负责把安装目录写进用户级 PATH:

powershell -ExecutionPolicy Bypass -File tools\install-powershell.ps1 -AddToPath

第3步:关掉终端再重开。旧会话不刷新 PATH,跳过这步,下一步验证必然"假失败"。

需要预览版就给命令加-Preview参数,它会与正式版并行安装、互不覆盖。

✅ 跑这两条命令,验证安装成功

在新终端里依次执行:

pwsh --version pwsh -Command "1+1"

预期输出:第一行显示PowerShell 7.x.x,第二行返回2。如果仍提示找不到命令,先怀疑终端没重开,回到第3步,而不是怀疑安装本身。

🎯 顺手一句:想写 Cmdlet,给 NuGet 加个包源

装好只是开始。如果你还要开发 Cmdlet,有个高频"装不上":在 Visual Studio 里新建 .NET Standard 类库项目后,要去 NuGet Package Manager 添加powershell-core包源,否则找不到包:

完整步骤见 docs/cmdlet-example/visual-studio-simple-example.md。若提示找不到包,通常是网络或包源配置问题,不是 PowerShell 本体安装失败。

📌 记住这5条,下次少踩坑

  • 先查架构再下载包:uname -ms或$env:PROCESSOR_ARCHITECTURE先跑一遍,多数Exec format error到这步就结案。
  • 装完必开新终端验证:别把 PATH 未刷新误判成安装失败。
  • 内网环境提前备包:下载对应架构包并核对校验值,防损坏、防选错。
  • 源码编译先对 SDK:构建用的 SDK 版本写在 global.json 里,编译步骤参考 docs/building/linux.md。
  • 反复失败查已知问题:对照 CHANGELOG/7.6.md,多数问题在新版本已修复,直接装最新版往往就是解法。

【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进