在 Windows 上安装 PowerShell - PowerShell

在 Windows 上安装 PowerShell - PowerShell

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

WinGet - 在 Windows 客户端上安装 PowerShell 的建议方法

MSI 包 - Windows Server 和企业部署方案的最佳选择

ZIP 包 -“旁加载”或安装多个版本的最简单方法

将此方法用于 Windows Nano Server、Windows IoT 和基于 Arm 的系统

.NET 全局工具 - 非常适用于安装和使用其他全局工具的 .NET 开发人员

Microsoft Store 包 - 适用于 PowerShell 临时用户进行安装的一种简单方法,但有一些限制

注意

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

稳定版本 v7.5。x: https://aka.ms/powershell-release?tag=stable

LTS 版本 v7.4.x:https://aka.ms/powershell-release?tag=lts

预览版 v7.6.0-preview.x:https://aka.ms/powershell-release?tag=preview

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

使用 WinGet 安装 PowerShell(建议)

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

注意

若要查看系统要求列表和安装说明,请参阅 winget 文档。

winget 在 Windows Server 2022 或更低版本上不可用。 Windows Server 2025 预览版内部版本 26085 及更高版本包括仅适用于具有桌面体验的 Windows Server 的 winget。

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

搜索最新版本的 PowerShell

winget search Microsoft.PowerShell

Name Id Version Source

---------------------------------------------------------------

PowerShell Microsoft.PowerShell 7.5.2.0 winget

PowerShell Preview Microsoft.PowerShell.Preview 7.6.0.4 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) 包。 有关详细信息,请参阅 从 Microsoft Store 安装。

安装 MSI 包

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

PowerShell-7.5.2-win-x64.msi

PowerShell-7.5.2-win-x86.msi

PowerShell-7.5.2-win-arm64.msi

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

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

默认情况下,包安装位置为 $Env:ProgramFiles\PowerShell\

可以通过“开始”菜单或 $Env:ProgramFiles\PowerShell\\pwsh.exe 启动 PowerShell

注意

PowerShell 7.5 安装到新目录,并与 Windows PowerShell 5.1 并行运行。

PowerShell 7.5 是一种就地升级,它将替换并移除以前版本的 PowerShell 7。 PowerShell 的预览版可以与其他版本的 PowerShell 并行安装。

PowerShell 7.5 已安装到 $Env:ProgramFiles\PowerShell\7

$Env:ProgramFiles\PowerShell\7 文件夹已添加到 $Env:PATH

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

PowerShell 7.2 及更高版本中对 Microsoft 更新的支持

PowerShell 7.2 及更高版本支持 Microsoft 更新。 启用此功能时,你将在传统 Microsoft 更新 (MU) 管理流中获得最新的 PowerShell 7 更新,无论是包含适用于企业的 Windows 更新、WSUS、Microsoft Endpoint Configuration Manager,还是包含设置中的交互式 MU 对话框。

PowerShell MSI 包包含以下命令行选项:

USE_MU - 该属性有两个可能值:

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

0 - 不选择通过 Microsoft 更新、WSUS 或 Configuration Manager 进行更新

ENABLE_MU

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

0 - 不选择使用 Microsoft 更新

注意

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

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

从命令行安装 MSI 包

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

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.2-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 存档之一。

PowerShell-7.5.2-win-x64.zip

PowerShell-7.5.2-win-x86.zip

PowerShell-7.5.2-win-arm64.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 Store 安装

可在 Microsoft Store 中安装 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 7 的预览版安装到 $Env:ProgramFiles\PowerShell\7-preview,这样它们可以与 PowerShell 的非预览版并行运行。 PowerShell 7.6 是下一个预览版。

升级现有安装

若要在升级时获得最佳结果,应使用首次安装 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

Windows 10 IoT 企业版部署

Windows 10 IoT 企业版随附 Windows PowerShell,可用来部署 PowerShell 7。

# Replace the placeholder information for the following variables:

$deviceip = '

$zipfile = 'PowerShell-7.5.2-win-arm64.zip'

$downloadfolder = 'U:\Users\Administrator\Downloads' # The download location is local to the device.

# There should be enough space for the zip file and the unzipped contents.

# Create PowerShell session to target device

Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip

$S = New-PSSession -ComputerName $deviceIp -Credential Administrator

# Copy the ZIP package to the device

Copy-Item $zipfile -Destination $downloadfolder -ToSession $S

#Connect to the device and expand the archive

Enter-PSSession $S

Set-Location U:\Users\Administrator\Downloads

Expand-Archive .\PowerShell-7.5.2-win-arm64.zip

# Set up remoting to PowerShell 7

Set-Location .\PowerShell-7.5.2-win-arm64

# Be sure to use the -PowerShellHome parameter otherwise it tries to create a new

# endpoint with Windows PowerShell 5.1

.\Install-PowerShellRemoting.ps1 -PowerShellHome .

设置 PowerShell 远程处理时,你收到一条错误消息,并与设备断开连接。

PowerShell 必须重启 WinRM。 现在可以连接到设备上的 PowerShell 7 端点。

# Be sure to use the -Configuration parameter. If you omit it, you connect to Windows PowerShell 5.1

Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.5.2

Windows 10 IoT 核心版部署

当你添加 IOT_POWERSHELL 功能后,Windows 10 IoT 核心版便会添加 Windows PowerShell,我们可以使用它来部署 PowerShell 7。 对于 IoT 核心版,还可以遵循为 Windows 10 IoT 企业版定义的步骤。

若要在随附映像中添加最新的 PowerShell,请使用 Import-PSCoreRelease 命令在工作区域中添加包,然后将 OPENSRC_POWERSHELL 功能添加到映像中。

注意

对于 ARM64 体系结构,在你添加 IOT_POWERSHELL 功能后,它不会添加 Windows PowerShell。 因此,基于 zip 的安装将不起作用。 需要使用 Import-PSCoreRelease 命令将其添加到映像中。

在 Nano Server 上进行部署

为了更好地理解这些说明,假定 Nano Server 是已运行 PowerShell 版本的“无外设”操作系统。 有关详细信息,请参阅 Nano Server 映像生成器文档。

可以使用两种不同的方法来部署 PowerShell 二进制文件。

脱机 - 安装 Nano Server VHD,并将 zip 文件的内容解压到安装映像中的所选位置。

联机 - 通过 PowerShell 会话传输 zip 文件,并在所需位置中将其解压。

在这两种情况下,都需要 Windows x64 ZIP 版本包。 在 PowerShell 的“管理员”实例中运行命令。

PowerShell 脱机部署

使用常用 zip 实用工具将包解压到已安装的 Nano Server 映像中的目录。

卸载映像并启动。

连接到 Windows PowerShell 的内置实例。

PowerShell 在线部署

若要将 PowerShell 部署到 Nano Server,请按照以下步骤操作。

# Replace the placeholder information for the following variables:

$ipaddr = ''

$credential = Get-Credential #

$zipfile = 'PowerShell-7.5.2-win-x64.zip'

# Connect to the built-in instance of Windows PowerShell

$session = New-PSSession -ComputerName $ipaddr -Credential $credential

# Copy the file to the Nano Server instance

Copy-Item $zipfile C:\ -ToSession $session

# Enter the interactive remote session

Enter-PSSession $session

# Extract the ZIP file

Expand-Archive -Path C:\PowerShell-7.5.2-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'

PowerShell 远程处理

PowerShell 支持通过 WSMan 和 SSH 的 PowerShell 远程处理协议 (PSRP)。 有关详细信息,请参阅:

在 PowerShell 中进行 SSH 远程处理

在 PowerShell 中进行 WSMan 远程处理

支持的 Windows 版本

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

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

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

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

注意

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

Windows 客户端生命周期常见问题解答

新式生命周期策略常见问题解答

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

安装支持

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

相关推荐

揭秘“章鱼帝”为什么那么神奇?
365bet足球比

揭秘“章鱼帝”为什么那么神奇?

📅 07-11 👁️ 8670
花露的历史
365bet足球比

花露的历史

📅 07-06 👁️ 1744
33立方米等于多少升
det365APP

33立方米等于多少升

📅 07-26 👁️ 4755
女足世界杯
det365APP

女足世界杯

📅 07-14 👁️ 8436
装备属性表(官方装备即为顶级装备)
36365快速检测中心

装备属性表(官方装备即为顶级装备)

📅 06-29 👁️ 4536
梦里花落知多少
36365快速检测中心

梦里花落知多少

📅 07-12 👁️ 7334