在 Windows 上安装 PowerShell

有多种方法可以在 Windows 中安装 PowerShell。 每种安装方法旨在支持不同的方案和工作流。 选择最符合需求的方法。

  • WinGet - 在 Windows 客户端上安装 PowerShell 的建议方法
  • MSI 包 - Windows Server 和企业部署方案的最佳选择
  • ZIP 包 - 旁加载 或安装多个版本的最简单方法
    • 将此方法用于 Windows Nano Server、Windows IoT 和基于 Arm 的系统
  • .NET 全局工具 - 非常适用于安装和使用其他全局工具的 .NET 开发人员
  • Microsoft Store 包 - 适用于 PowerShell 临时用户进行安装的一种简单方法,但有一些限制

PowerShell 7 安装到新目录,并与 Windows PowerShell 5.1 并行运行。 较新版本的 PowerShell 7 取代了现有 PowerShell 7 版本。 PowerShell 的预览版可以与其他版本的 PowerShell 并行安装。 较新的预览版本将替换现有的以前的预览版本。

PowerShell 7 支持通过 Microsoft 更新进行更新。 启用此功能时,你将在传统的Microsoft更新(MU)管理流中获取最新的 PowerShell 7 更新,无论是使用适用于企业的 Windows 更新、WSUS、Microsoft Endpoint Configuration Manager 还是 “设置”中的交互式 MU 对话框。

有关详细信息,请参阅 PowerShell Microsoft 更新常见问题解答

WinGet(Windows 包管理器)是一种命令行工具,允许用户在 Windows 客户端计算机上发现、安装、升级、删除和配置应用程序。 此工具是 Windows 程序包管理器服务的客户端接口。 默认情况下,winget 命令行工具作为应用安装程序与 Windows 11 和现代版本的 Windows 10 捆绑在一起。

注释

若要查看系统要求列表和安装说明,请参阅 winget 文档。 winget 在 Windows Server 2022 或更低版本上不可用。 Windows Server 2025 仅适用于winget具有桌面体验的 Windows Server

通过以下命令,可使用已发布的 winget 包安装 PowerShell:

搜索最新版本的 PowerShell

winget search --id Microsoft.PowerShell
Name               Id                           Version Source
---------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.5.4.0 winget
PowerShell Preview Microsoft.PowerShell.Preview 7.6.0.5 winget

使用 --id 参数安装 PowerShell 或 PowerShell 预览版

winget install --id Microsoft.PowerShell --source winget
winget install --id Microsoft.PowerShell.Preview --source winget

注释

在使用 X86 或 X64 处理器的 Windows 系统上,winget 安装 MSI 包。 在使用 Arm64 处理器的系统上,winget 安装 Microsoft Store (MSIX) 包。

安装 MSI 包

若要在 Windows 上安装 PowerShell,请使用以下链接从 GitHub 下载安装包。

最新稳定版本:

最新预览版:

下载后,双击安装程序文件并按照提示进行操作。

安装程序在 Windows“开始”菜单中创建一个快捷方式。

  • 默认情况下,包安装位置为 $Env:ProgramFiles\PowerShell\7
    • 安装位置将被添加至 $Env:PATH 环境变量
  • PowerShell 7 的预览版安装到 $Env:ProgramFiles\PowerShell\7-preview
  • 可以通过“开始”菜单或 $Env:ProgramFiles\PowerShell\7\pwsh.exe 启动 PowerShell

注释

若要与其他版本的 PowerShell 7 并行运行 PowerShell 7.5,请使用 ZIP 安装 方法将其他版本安装到其他文件夹。

从命令行安装 MSI 包

可以通过命令行安装 MSI 包,这样管理员能够在没有用户交互的情况下部署包。 MSI 包中有下列控制安装选项的属性:

  • USE_MU - 此属性有两个可能的值:

    • 1(默认)- 选择通过 Microsoft 更新、WSUS 或 Configuration Manager 进行更新
    • 0 - 不选择通过 Microsoft 更新、WSUS 或 Configuration Manager 进行更新
  • ENABLE_MU

    • 1(默认)- 选择加入使用 Microsoft 更新进行自动更新

    • 0 - 不选择使用 Microsoft 更新

      注释

      可能已在之前的安装或手动配置中设置了启用更新。 使用 ENABLE_MU=0 并不会删除现有设置。 此外,您的管理员控制的组策略设置可以覆盖此设置。

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL - 此属性控制添加 Open PowerShell 项到 Windows 资源管理器上下文菜单的选项。

  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL - 此属性控制添加 Run with PowerShell 项到 Windows 资源管理器上下文菜单的选项。

  • ENABLE_PSREMOTING - 此属性控制用于在安装过程中启用 PowerShell 远程处理的选项。

  • REGISTER_MANIFEST - 此属性控制Windows事件日志清单注册的选项。

  • ADD_PATH - 此属性控制用于将 PowerShell 添加到 Windows PATH 环境变量的选项。

  • DISABLE_TELEMETRY - 此属性通过设置 POWERSHELL_TELEMETRY_OPTOUT 环境变量来控制用于禁用 PowerShell 遥测的选项。

  • INSTALLFOLDER - 此属性控制安装目录。 默认值为 $Env:ProgramFiles\PowerShell\。 这是安装程序创建按版本管理的子文件夹的位置。 不能更改带版本的子文件夹的名称。

    • 对于当前发布,版本化的子文件夹是 7
    • 对于预览版本,版本控制子文件夹为 7-preview

下面的示例展示了如何在启用所有安装选项的情况下无提示安装 PowerShell。

msiexec.exe /package PowerShell-7.5.4-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1

有关 Msiexec.exe 命令行选项的完整列表,请参阅命令行选项

从 ZIP 包安装

提供了 PowerShell 二进制 ZIP 存档来启用高级部署方案。 从当前版本页下载以下 ZIP 存档之一。

根据该文件的下载方式,你可能需要使用 Unblock-File cmdlet 解锁。 将内容解压到你选择的位置,然后从该位置运行 pwsh.exe。 与安装 MSI 包不一样,安装 ZIP 存档不会检查先决条件。 为了让使用 WSMan 的远程处理能够正常运行,请确保已满足先决条件

使用此方法在类似于 Microsoft Surface Pro X 的计算机上安装基于 ARM 的 PowerShell 版本。为获得最佳结果,请将 PowerShell 安装到 $Env:ProgramFiles\PowerShell\7 文件夹。

作为 .NET 全局工具安装

如果已安装 .NET Core SDK ,则可以将 PowerShell 安装为 .NET 全局工具

dotnet tool install --global PowerShell

dotnet 工具安装程序将 $HOME\.dotnet\tools 添加到 $Env:PATH 环境变量中。 不过,当前运行的 shell 没有更新后的 $Env:PATH。 若要从新 shell 启动 PowerShell,可以键入“pwsh”。

从 Microsoft 应用商店安装

可以从 Microsoft 应用商店安装 PowerShell。 你可以在 Microsoft Store 网站上或在 Windows 应用商店应用程序中找到 PowerShell 版本。

Microsoft Store 包的权益:

  • 直接内置于 Windows 的自动更新
  • 与其他软件分发机制(如 Intune 和 Configuration Manager)集成
  • 可以使用 x86、x64 或 Arm64 处理器在 Windows 系统上安装

已知的限制

默认情况下,Windows 应用商店包在应用程序沙盒中运行,后者用于虚拟化对某些文件系统和注册表位置的访问。 对虚拟化文件和注册表位置的更改不会在应用程序沙盒外部保留。

此沙盒会阻止对应用程序的根文件夹进行的所有更改。 不能修改存储在 $PSHOME 中的任何系统级配置设置。 其中包括 WSMAN 配置。 这可以防止远程会话连接到 PowerShell 的基于应用商店的安装。 支持用户级配置和 SSH 远程处理。

以下命令需要写入 $PSHOME。 PowerShell 的 Microsoft Store 实例中不支持这些命令。

  • Register-PSSessionConfiguration
  • Update-Help -Scope AllUsers
  • Enable-ExperimentalFeature -Scope AllUsers
  • Set-ExecutionPolicy -Scope LocalMachine

有关详细信息,请参阅了解打包的桌面应用如何在 Windows 上运行

从 PowerShell 7.2 开始,PowerShell 包不再受文件和注册表虚拟化的影响。 现在,对虚拟化文件和注册表位置的更改会在应用程序沙盒外部保留。 不过,仍会阻止对应用程序根文件夹所做的更改。

重要

要使此例外生效,你必须在 Windows 1903 或更高版本上运行。

升级现有安装

若要在升级时获得最佳结果,应使用首次安装 PowerShell 时使用的相同安装方法。 如果不确定 PowerShell 的安装方式,可以检查 $PSHOME 变量的值,该变量始终指向包含当前会话运行的 PowerShell 的目录。

  • 如果值为 $HOME\.dotnet\tools,则 PowerShell 随 .NET Global 工具一起安装。
  • 如果值是 $Env:ProgramFiles\PowerShell\7,则 PowerShell 作为 MSI 包安装,或用 WinGet 在具有 X86 或 x64 处理器的计算机上安装。
  • 如果该值以 $Env:ProgramFiles\WindowsApps\开头,PowerShell 被作为 Microsoft 应用商店包 或通过 WinGet 安装在具有 ARM 处理器的计算机上。
  • 如果该值是其他任何值,则可能表明 PowerShell 是作为 ZIP 包 安装的。

如果是通过 MSI 包安装的,则该信息还会显示在“程序和功能”控制面板中。

若要确定是否可以使用 WinGet 升级 PowerShell,请运行以下命令:

winget list --id Microsoft.PowerShell --upgrade-available

如果有可用的升级,输出会指示最新的可用版本。 使用以下命令通过 WinGet 升级 PowerShell:

winget upgrade --id Microsoft.PowerShell

卸载 PowerShell 7

卸载 PowerShell 7 的过程取决于使用的安装方法。

  • 如果使用 WinGet 安装 PowerShell,请运行以下命令:

    winget uninstall --id Microsoft.PowerShell
    
  • 如果使用 MSI 包安装了 PowerShell,则可以从 “程序和功能 ”控制面板中卸载它。

  • 如果使用 ZIP 包安装了 PowerShell,请删除解压缩文件的文件夹。

  • 如果从 Microsoft 应用商店安装了 PowerShell,请打开 “开始 ”菜单并搜索 PowerShell 7。 从选项菜单中选择 “卸载 ”。

  • 如果将 PowerShell 安装为 .NET 全局工具,请运行以下命令:

    dotnet tool uninstall --global PowerShell
    

支持的 Windows 版本

Microsoft 在 PowerShell 到达支持终止日期Windows 版本到达支持终止日期之前仍然支持 PowerShell。

.NET SDK 的 Docker 映像包含最新版本的 PowerShell。 这些映像可从 Microsoft工件注册表获取。

这些映像可能没有最新的安全更新。 Microsoft 建议将 OS 包更新到最新版本,以确保应用最新的安全更新。

这些映像用于测试目的。 如果你需要用于生产工作负载的 Docker 映像,则应该构建和维护自己的映像。

注释

对特定版本的 Windows 的支持由 Microsoft 支持部门生命周期策略决定。 有关详细信息,请参见:

可通过运行 winver.exe 来检查所使用的版本。

安装支持

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

注释

本文中的安装命令适用于 PowerShell 的最新稳定版本。 若要安装其他版本的 PowerShell,请调整命令以匹配所需的版本。 以下链接将带您到 GitHub 上每个版本的最新发布页面。

在“发布”页的“资产”部分中可以找到每个包的下载链接。 由于“资产”部分可能处于折叠状态,因此可能需要单击展开它。