App下載

在 Windows 上安裝 PowerShell 的多種方法與完整指南

編程獅(w3cschool.cn) 2025-03-24 16:26:45 瀏覽數(shù) (288)
反饋

在 Windows 上安裝 PowerShell 有多種方式。每種安裝方法都適用于不同的場景和工作流。請選擇最適合您需求的方法。

  • WinGet:推薦在 Windows 客戶端上安裝 PowerShell 的方式
  • MSI 包:適用于 Windows 服務器和企業(yè)部署場景的最佳選擇
  • ZIP 包:“側(cè)載” 或安裝多個版本的最簡單方法

  • 建議用于 Windows Nano Server、Windows IoT 和基于 Arm 的系統(tǒng)
    • .NET 全局工具:適用于安裝和使用其他全局工具的 .NET 開發(fā)者的好選擇
    • Microsoft Store 包:適用于 PowerShell 的休閑用戶,但存在一些限制

使用 WinGet 安裝 PowerShell(推薦)

WinGet 是 Windows 包管理器,是一個命令行工具,允許用戶在 Windows 客戶端計算機上發(fā)現(xiàn)、安裝、升級、刪除和配置應用程序。winget 命令行工具默認與 Windows 11 和較新的 Windows 10 版本捆綁在一起,作為 應用安裝程序。

注意:請參閱 winget 文檔以獲取系統(tǒng)要求和安裝說明列表。Windows Server 2022 及更早版本不支持 winget。Windows Server 2025 預覽版 26085 及更高版本僅在 具有桌面體驗的 Windows Server 上包含 winget。

以下命令可用于使用發(fā)布的 winget 包安裝 PowerShell:

搜索最新版本的 PowerShell

winget search Microsoft.PowerShell

名稱               ID                           版本  來源
---------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.5.0.0 winget
PowerShell 預覽版 Microsoft.PowerShell.Preview 7.6.0.2 winget

使用 id 參數(shù)安裝 PowerShell 或 PowerShell 預覽版

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

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

注意:在使用 X86 或 X64 處理器的 Windows 系統(tǒng)上,winget 安裝 MSI 包。在使用 Arm64 處理器的系統(tǒng)上,winget 安裝 Microsoft Store (MSIX) 包。有關更多信息,請參閱從 Microsoft Store 安裝。

要下載安裝包,可以使用以下鏈接從 GitHub 安裝 PowerShell:

下載完成后,雙擊安裝文件并按照提示進行操作。

安裝程序會在 Windows 開始菜單中創(chuàng)建一個快捷方式。

  • 默認情況下,包安裝在 $env:ProgramFiles\PowerShell\<version>
  • 您可以通過開始菜單或 $env:ProgramFiles\PowerShell\<version>\pwsh.exe 啟動 PowerShell

注意: PowerShell 7.4 安裝在新目錄中,并與 Windows PowerShell 5.1 并行運行。PowerShell 7.4 是就地升級,會刪除之前的 PowerShell 7 版本。PowerShell 7 的預覽版可以與其他版本的 PowerShell 并行安裝。

  • PowerShell 7.4 安裝在 $env:ProgramFiles\PowerShell\7
  • $env:ProgramFiles\PowerShell\7 文件夾被添加到 $env:PATH

如果您需要在同一臺計算機上并行運行 PowerShell 7.4 與其他版本,請使用 ZIP 安裝方法將其他版本安裝到不同的文件夾中。

安裝 MSI 包

MSI 包可以從命令行安裝,允許管理員在沒有用戶交互的情況下部署包。MSI 包包含以下屬性以控制安裝選項:

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL:此屬性控制在 Windows 資源管理器的上下文菜單中添加 打開 PowerShell 選項。
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL:此屬性控制在 Windows 資源管理器的上下文菜單中添加 用 PowerShell 運行 選項。
  • ENABLE_PSREMOTING:此屬性控制在安裝過程中啟用 PowerShell 遠程處理。
  • REGISTER_MANIFEST:此屬性控制注冊 Windows 事件日志記錄清單。
  • ADD_PATH:此屬性控制將 PowerShell 添加到 Windows PATH 環(huán)境變量。
  • DISABLE_TELEMETRY:此屬性通過設置 POWERSHELL_TELEMETRY_OPTOUT 環(huán)境變量來禁用 PowerShell 的遙測功能。
  • INSTALLFOLDER:此屬性控制安裝目錄。默認是 $env:ProgramFiles\PowerShell\。這是安裝程序創(chuàng)建版本化子文件夾的位置。您不能更改版本化子文件夾的名稱。

  • 對于當前版本,版本化子文件夾是 7
  • 對于預覽版本,版本化子文件夾是 7-preview

以下示例顯示如何在啟用所有安裝選項的情況下靜默安裝 PowerShell。

msiexec.exe /package PowerShell-7.5.0-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 存檔之一。

根據(jù)下載文件的方式,可能需要使用 Unblock-File cmdlet 解除文件阻止。將內(nèi)容解壓到您選擇的位置,然后從那里運行 pwsh.exe。與安裝 MSI 包不同,安裝 ZIP 存檔不會檢查先決條件。為了使 WSMan 上的遠程處理正常工作,請確保您已滿足先決條件。

使用此方法在像 Microsoft Surface Pro X 這樣的計算機上安裝基于 ARM 的 PowerShell 版本。為了獲得最佳效果,請將 PowerShell 安裝到 $env:ProgramFiles\PowerShell\7 文件夾。

如果您已經(jīng)安裝了 .NET Core SDK,可以將 PowerShell 安裝為 .NET 全局工具。

dotnet tool install --global PowerShell

dotnet 工具安裝程序會將 $HOME\.dotnet\tools 添加到您的 $env:PATH 環(huán)境變量。但是,當前運行的 shell 不會有更新的 $env:PATH。您可以在新 shell 中通過輸入 pwsh 啟動 PowerShell。

可以從 Microsoft Store 安裝 PowerShell。您可以在 Microsoft Store 網(wǎng)站或 Windows 中的 Store 應用程序中找到 PowerShell 版本。

Microsoft Store 包的優(yōu)勢:

  • Windows 中內(nèi)置的自動更新
  • 與其他軟件分發(fā)機制(如 Intune 和 Configuration Manager)集成
  • 可以安裝在使用 x86、x64 或 Arm64 處理器的 Windows 系統(tǒng)上

已知限制

默認情況下,Windows Store 包在應用程序沙盒中運行,該沙盒會虛擬化對某些文件系統(tǒng)和注冊表位置的訪問。對虛擬化文件和注冊表位置的更改不會在應用程序沙盒外部持久化。

此沙盒會阻止對應用程序根文件夾的所有更改。存儲在 $PSHOME 中的任何系統(tǒng)級配置設置都無法修改。這包括 WSMAN 配置。這會阻止遠程會話連接到基于 Store 的 PowerShell 安裝。支持用戶級配置和 SSH 遠程處理。

以下命令需要寫入 $PSHOME。這些命令在 Microsoft Store 實例的 PowerShell 中不受支持。

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

有關更多信息,請參閱了解打包桌面應用在 Windows 上的運行方式。

從 PowerShell 7.2 開始,PowerShell 包現(xiàn)在免于文件和注冊表虛擬化。對虛擬化文件和注冊表位置的更改現(xiàn)在會在應用程序沙盒外部持久化。但是,對應用程序根文件夾的更改仍然被阻止。

重要提示:您必須在 Windows build 1903 或更高版本上運行,此豁免才能生效。

安裝預覽版本

PowerShell 7 的預覽版安裝到 $env:ProgramFiles\PowerShell\7-preview,以便它們可以與非預覽版的 PowerShell 并行運行。PowerShell 7.4 是下一個預覽版。

升級現(xiàn)有安裝

升級時,建議使用首次安裝 PowerShell 時所用的相同安裝方法。如果您不確定 PowerShell 是如何安裝的,可以檢查 $PSHOME 變量的值,該變量始終指向當前會話運行的 PowerShell 所在的目錄。

  • 如果值是 $HOME\.dotnet\tools,則 PowerShell 是通過 .NET 全局工具安裝的。
  • 如果值是 $Env:ProgramFiles\PowerShell\7,則 PowerShell 是作為 MSI 包安裝的,或者在具有 X86 或 x64 處理器的計算機上通過 WinGet 安裝的。
  • 如果值以 $Env:ProgramFiles\WindowsApps\ 開頭,則 PowerShell 是作為 Microsoft Store 包安裝的,或者在具有 ARM 處理器的計算機上通過 WinGet 安裝的。
  • 如果值是其他任何內(nèi)容,則很可能 PowerShell 是作為 ZIP 包安裝的。

如果您通過 MSI 包安裝,該信息還會出現(xiàn)在“程序和功能”控制面板中。

要確定是否可以使用 WinGet 升級 PowerShell,請運行以下命令:

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

如果有可用的升級,輸出將指示最新可用版本。使用以下命令通過 WinGet 升級 PowerShell:

winget upgrade --id Microsoft.PowerShell

在 Windows 10 IoT Enterprise 上部署

Windows 10 IoT Enterprise 配備了 Windows PowerShell,我們可以利用它來部署 PowerShell 7。

# 替換以下變量的占位符信息:
$deviceip = '<設備 IP 地址'
$zipfile = 'PowerShell-7.5.0-win-arm64.zip'
$downloadfolder = 'u:\users\administrator\Downloads'  # 下載位置是設備本地的。
    # 應該有足夠的空間用于存儲 ZIP 文件和解壓后的內(nèi)容。


# 創(chuàng)建到目標設備的 PowerShell 會話
Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip
$S = New-PSSession -ComputerName $deviceIp -Credential Administrator
# 將 ZIP 包復制到設備
Copy-Item $zipfile -Destination $downloadfolder -ToSession $S


# 連接到設備并解壓存檔
Enter-PSSession $S
Set-Location u:\users\administrator\Downloads
Expand-Archive .\PowerShell-7.5.0-win-arm64.zip


# 設置到 PowerShell 7 的遠程處理
Set-Location .\PowerShell-7.5.0-win-arm64
# 確保使用 -PowerShellHome 參數(shù),否則它會嘗試使用 Windows PowerShell 5.1 創(chuàng)建新的端點
.\Install-PowerShellRemoting.ps1 -PowerShellHome .

當您設置 PowerShell 遠程處理時,會收到錯誤消息并從設備斷開連接。PowerShell 必須重新啟動 WinRM。現(xiàn)在您可以連接到設備上的 PowerShell 7 端點。

# 確保使用 -Configuration 參數(shù)。如果您省略它,您將連接到 Windows PowerShell 5.1
Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.5.0

在 Windows 10 IoT Core 上部署

當您包含 _IOTPOWERSHELL 功能時,Windows 10 IoT Core 會添加 Windows PowerShell,我們可以利用它來部署 PowerShell 7。上述 Windows 10 IoT Enterprise 的步驟也適用于 IoT Core。

要將最新的 PowerShell 添加到發(fā)貨映像中,請使用 Import-PSCoreRelease 命令將包包含在工作區(qū)中,并將 _OPENSRCPOWERSHELL 功能添加到您的映像中。

注意:對于 ARM64 架構(gòu),當您包含 _IOTPOWERSHELL 時,不會添加 Windows PowerShell。因此,基于 zip 的安裝無法工作。您需要使用 Import-PSCoreRelease 命令將其添加到映像中。

在 Nano Server 上部署

這些說明假設 Nano Server 是一個“無頭”操作系統(tǒng),它已經(jīng)在其上運行了 PowerShell 的某個版本。有關更多信息,請參閱 Nano Server 映像生成器文檔。

可以使用兩種不同的方法部署 PowerShell 二進制文件。

  1. 離線 - 掛載 Nano Server VHD 并將 zip 文件的內(nèi)容解壓到掛載映像中您選擇的位置。
  2. 在線 - 通過 PowerShell 會話將 zip 文件傳輸?shù)侥x擇的位置并解壓。

在這兩種情況下,您都需要 Windows x64 ZIP 發(fā)布包。請在“管理員”實例的 PowerShell 中運行命令。

離線部署 PowerShell

  1. 使用您喜歡的 zip 工具將包解壓到掛載的 Nano Server 映像中的目錄。
  2. 卸載映像并啟動它。
  3. 連接到內(nèi)置的 Windows PowerShell 實例。

在線部署 PowerShell

按照以下步驟將 PowerShell 部署到 Nano Server。

# 替換以下變量的占位符信息:
$ipaddr = '<Nano Server IP 地址>'
$credential = Get-Credential # <系統(tǒng)上的管理員賬戶>
$zipfile = 'PowerShell-7.5.0-win-x64.zip'
# 連接到內(nèi)置的 Windows PowerShell 實例
$session = New-PSSession -ComputerName $ipaddr -Credential $credential
# 將文件復制到 Nano Server 實例
Copy-Item $zipfile c:\ -ToSession $session
# 進入交互式遠程會話
Enter-PSSession $session
# 解壓 ZIP 文件
Expand-Archive -Path C:\PowerShell-7.5.0-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'

PowerShell 遠程處理

PowerShell 支持通過 WSMan 和 SSH 的 PowerShell 遠程處理協(xié)議 (PSRP)。有關更多信息,請參閱:

支持的 Windows 版本

Microsoft 支持 PowerShell,直到 PowerShell 達到支持結(jié)束或 Windows 版本達到支持結(jié)束。

  • 包含 PowerShell 7.4 和 PowerShell 7.5-preview(適用于 x64)的 Docker 映像,適用于 Windows Server 2022、Windows Server Core 2022 和 Windows Server Nano build 1809,可從 Microsoft Artifact Registry 獲得。
  • PowerShell 7.4 及更高版本可以安裝在 Windows 10 build 1607 及更高版本、Windows 11、Windows Server 2016 及更高版本上。

您可以通過運行 winver.exe 來檢查您正在使用的版本。

安裝支持

Microsoft 支持本文檔中的安裝方法??赡苓€有其他第三方安裝方法可從其他來源獲得。雖然這些工具和方法可能有效,但 Microsoft 無法支持這些方法。

1 人點贊