在 macOS 上安装 PowerShell

PowerShell 7.0 或更高版本需要 macOS 10.13 或更高版本。 GitHub 版本页面上提供有所有可用包。 安装包以后,从终端运行 pwsh。 安装之前,请查看以下支持的版本列表。

备注

PowerShell 7.2 是删除以前版本的 PowerShell 6.x 和 7.x 的就地升级。

/usr/local/microsoft/powershell/6 文件夹被替换为 /usr/local/microsoft/powershell/7

如果需要使用 PowerShell 7.2 并行运行 PowerShell 的更早版本,请使用二进制存档方法安装所需的版本。

通过 Homebrew 在 macOS 10.13 或更高版本上安装最新的稳定版本

可采用多种方法在 macOS 上安装 PowerShell。 选择下列方法之一:

安装 PowerShell 后,应安装 OpenSSL。 PowerShell WSMan 远程处理需要 OpenSSL。

如果未找到 brew 命令,则需要按照说明安装 Homebrew。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

现在,可以开始安装 PowerShell:

brew install --cask powershell

最后,验证安装是否正常运行:

pwsh

PowerShell 新版本发布后,更新 Homebrew 公式并升级 PowerShell:

brew update
brew upgrade powershell --cask

备注

可从 PowerShell (pwsh) 主机调用上面的命令,但是调用后必须退出 PowerShell 并重启以完成升级,并刷新 $PSVersionTable 中显示的值。

通过 Homebrew 在 macOS 10.13 或更高版本上安装最新的预览版

安装 Homebrew 后,可以安装 PowerShell。 首先,安装 Cask-Versions 包,通过它可安装替代版本的 cask 包:

brew tap homebrew/cask-versions

现在,可以开始安装 PowerShell:

brew install --cask powershell-preview

最后,验证安装是否正常运行:

pwsh-preview

PowerShell 新版本发布后,更新 Homebrew 公式并升级 PowerShell:

brew update
brew upgrade powershell-preview --cask

备注

可能会从 PowerShell (pwsh) 主机调用上面的命令,但是调用后必须退出 PowerShell 并重新启动以完成升级。 然后刷新 $PSVersionTable 中显示的值。

稳定版本和 LTS 版本也支持使用 Homebrew tap 方法安装 PowerShell。

brew install powershell/tap/powershell

现在可以验证你的安装

pwsh

发布新版本的 PowerShell 时,请运行以下命令。

brew upgrade powershell

备注

无论使用 cask 还是 tap 方法,在更新到较新版本的 PowerShell 时,请使用最初安装 PowerShell 所使用的相同方法。 如果使用其他方法,则打开新的 pwsh 会话时将继续使用较旧版本的 PowerShell。

如果决定使用其他方法,可以使用 Homebrew link 方法来解决此问题。

通过直接下载安装

PowerShell 7.2 添加了对 Apple M1 处理器的支持。 从版本页中将安装包下载到计算机。 指向当前版本的链接包括:

可以双击文件并按照提示操作,或者使用以下命令从终端安装。 更改文件的名称以匹配下载的文件。

sudo installer -pkg powershell-7.2.0-osx-x64.pkg -target /

如果在 macOS Big Sur 11.5 或更高版本上运行,则安装包时可能会收到以下错误消息:

无法打开 "powershell-7.2.0-osx-x64.pkg",因为 Apple 无法检查它是否有恶意软件。

可通过两种方法解决此问题:

使用查找器

  1. 在查找器中查找包。
  2. 控制单击(在按住 Ctrl 的同时单击)包。
  3. 从上下文菜单中选择“打开”。

从命令行中

  1. 运行 sudo xattr -rd com.apple.quarantine powershell-7.2.0-osx-x64.pkg。 包括 .pkg 文件的完整路径。
  2. 按平常一样安装包

备注

这是一个与包公证相关的已知问题,以后将得到解决。

安装 OpenSSL. PowerShell 远程处理和 CIM 操作均需要 OpenSSL。

作为 .NET 全局工具安装

如果你已安装 .NET Core SDK,则可以轻松地安装 PowerShell 作为 .NET 全局工具

dotnet tool install --global PowerShell

dotnet 工具安装程序将 ~/.dotnet/tools 添加到 PATH 环境变量中。 但是,当前运行的 shell 没有更新的 PATH。 应该可以通过键入 pwsh 从新 shell 启动 PowerShell。

安装 OpenSSL. PowerShell 远程处理和 CIM 操作均需要 OpenSSL。

二进制存档

已对 macOS 平台提供 PowerShell 二进制 tar.gz 存档,以启用高级部署方案。 使用此方法安装时,还必须手动安装所有依赖项。

安装 OpenSSL. PowerShell 远程处理和 CIM 操作均需要 OpenSSL。

备注

你可以使用此方法安装任何版本的 PowerShell,包括最新版本:

在 macOS 上安装二进制存档

版本页中将安装包下载到计算机。 指向当前版本的链接包括:

使用以下命令从二进制存档安装 PowerShell。 更改下载 URL 以匹配要安装的版本。

# Download the powershell '.tar.gz' archive
curl -L -o /tmp/powershell.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-7.2.0-osx-x64.tar.gz

# Create the target folder where powershell is placed
sudo mkdir -p /usr/local/microsoft/powershell/7.2.0

# Expand powershell to the target folder
sudo tar zxf /tmp/powershell.tar.gz -C /usr/local/microsoft/powershell/7.2.0

# Set execute permissions
sudo chmod +x /usr/local/microsoft/powershell/7.2.0/pwsh

# Create the symbolic link that points to pwsh
sudo ln -s /usr/local/microsoft/powershell/7.2.0/pwsh /usr/local/bin/pwsh

安装依赖关系

PowerShell 远程处理和 CIM 操作均需要 OpenSSL。 如有需要,可通过 MacPorts 安装 OpenSSL。

备注

在同一系统上使用 MacPorts 和 Homebrew 时可能会出现问题。 但是,Homebrew 没有适用于 OpenSSL 1.0 的包。 有关详细信息,请参阅 MacPorts 常见问题解答

  1. 安装 Xcode 命令行工具。 MacPorts 需要 Xcode 工具。

    xcode-select --install
    
  2. 安装 MacPorts。 如需说明,请参阅安装指南

  3. 通过运行 sudo port selfupdate 更新 MacPorts。

  4. 通过运行 sudo port upgrade outdated 升级 MacPorts 包。

  5. 安装 OpenSSL:

    • 对于基于 x64 的系统,请运行 sudo port install openssl10
    • 对于基于 M1 的系统,请运行 sudo port install openssl10 +universal
  6. 链接库,使其可供 PowerShell 使用:

    sudo mkdir -p /usr/local/opt/openssl
    sudo ln -s /opt/local/lib/openssl-1.0 /usr/local/opt/openssl/lib
    

卸载 PowerShell

如果使用 Homebrew 安装 PowerShell,请使用以下命令进行卸载:

brew uninstall --cask powershell

如果通过直接下载安装 PowerShell,则必须手动删除 PowerShell:

sudo rm -rf /usr/local/bin/pwsh /usr/local/microsoft/powershell

若要删除其他 PowerShell 路径,请参阅本文档的路径一节,并使用 sudo rm 删除路径。

备注

如果使用 Homebrew 安装,则此步骤并非必要步骤。

路径

  • $PSHOME/usr/local/microsoft/powershell/7.2.0/
  • 用户配置文件是从 ~/.config/powershell/profile.ps1 中读取的
  • 默认配置文件是从 $PSHOME/profile.ps1 中读取的
  • 用户模块是从 ~/.local/share/powershell/Modules 中读取的
  • 共享模块是从 /usr/local/share/powershell/Modules 中读取的
  • 默认模块是从 $PSHOME/Modules 中读取的
  • PSReadline 历史记录将记录到 ~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt

配置文件采用 PowerShell 的每个主机配置。 因此主机特定的默认配置文件位于相同位置的 Microsoft.PowerShell_profile.ps1

PowerShell 采用 macOS 上的 XDG Base Directory 规范

由于 macOS 派生自 BSD,因此前缀为 /usr/local而不是 /opt。 因此,$PSHOME/usr/local/microsoft/powershell/7.2.0/,且符号链接位于 /usr/local/bin/pwsh 中。

支持的版本

下表列出了当前受支持的 PowerShell 版本以及支持它们的 Windows 版本。 这些版本在 PowerShell 版本到达支持终止日期或 [macOS 版本到达支持终止日期][eol-windows]之前仍受支持。

  • ✅ 指示仍支持 OS 或 PowerShell 版本
  • ❌ 指示不支持 OS 或 PowerShell 版本
  • 🟡 指示该 OS 版本不再支持 PowerShell 版本
  • 当 OS 版本和 PowerShell 版本都具有 ✅ 时,将支持该组合
macOS 7.0 (LTS) 7.1 7.2 (LTS-current)
✅ macOS Big Sur 11.5
✅ macOS Catalina 10.15
✅ macOS Mojave 10.14
✅ macOS High Sierra 10.13

尚未测试 macOS Monterey 12.0。

对 macOS 的支持由 Apple 定义。 有关详细信息,请参阅:

以下处理器体系结构在 macOS 上支持 PowerShell:

macOS 7.0 (LTS) 7.1 7.2 (LTS-current)
macOS Big Sur 11.5 X64 X64 x64、Arm64
macOS High Sierra 10.13 及更高版本 X64 X64 X64

安装支持

Microsoft 支持本文档中的安装方法。 其他源可能会提供其他安装方法。 尽管这些工具和方法可能有效,但 Microsoft 无法支持这些方法。

其他资源