在 Windows 上安裝 PowerShell

  • 文章
  • 02/02/2023
  • 11分鐘閱讀
  • 8 位貢獻者

反饋

在 Windows 中安裝 PowerShell 有多種方法。每種安裝方法都旨在支持不同的場景和工作流程。選擇最適合您需要的方法。

  • Winget - 在 Windows 客戶端上安裝 PowerShell 的推薦方法
  • MSI 包- Windows 服務器和企業部署方案的最佳選擇
  • ZIP 包

    - “側面加載”或安裝多個版本的最簡單方法

    • 將此方法用於 Windows Nano Server、Windows IoT 和基於 Arm 的系統
  • .NET 全局工具- 對於安裝和使用其他全局工具的 .NET 開發人員來說是一個不錯的選擇
  • Microsoft Store 包- 一種為 PowerShell 臨時用戶安裝的簡單方法,但有局限性

筆記

本文中的安裝命令適用於最新穩定版本的 PowerShell。要安裝不同版本的 PowerShell,請調整命令以匹配您需要的版本。以下鏈接將您定向到 GitHub 上 PowerShell 存儲庫中每個版本的發布頁面。

每個包的下載鏈接都可以在發布頁面的資產部分找到。資產 部分可能已折疊,因此您可能需要單擊以展開它。

使用 Winget 安裝 PowerShell(推薦)

Winget,即 Windows 包管理器,是一個命令行工具,使用戶能夠在 Windows 客戶端計算機上發現、安裝、升級、刪除和配置應用程序。此工具是 Windows 程序包管理器服務的客戶端接口。默認情況下,命令winget行工具作為App Installer與 Windows 11 和現代版本的 Windows 10 捆綁在一起。

筆記

有關係統要求和安裝說明的列表, 請參閱winget 文檔。Winget當前不在 Windows 服務器上運行。

以下命令可用於使用已發布的winget包安裝 PowerShell:

搜索最新版本的 PowerShell

電源外殼複製

winget search Microsoft.PowerShell

輸出複製

1
2
3
4
Name               Id                           Version Source
--------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.3.2.0 winget
PowerShell Preview Microsoft.PowerShell.Preview 7.4.1.0 winget

id使用參數安裝 PowerShell 或 PowerShell Preview

電源外殼複製

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 下載安裝包。

下載後,雙擊安裝程序文件並按照提示進行操作。

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

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

筆記

PowerShell 7.3 安裝到新目錄並與 Windows PowerShell 5.1 並行運行。PowerShell 7.3 是替代 PowerShell 7.0 及更低版本的就地升級。

  • PowerShell 7.3 安裝到$env:ProgramFiles\PowerShell\7
  • 文件$env:ProgramFiles\PowerShell\7夾添加到$env:PATH
  • 先前發布版本的文件夾已刪除

如果您需要同時運行 PowerShell 7.3 和其他版本,請使用ZIP 安裝 方法將其他版本安裝到不同的文件夾。

在 PowerShell 7.2 及更高版本中支持 Microsoft Update

PowerShell 7.2 及更高版本支持 Microsoft Update。啟用此功能後,您將在傳統的 Microsoft 更新 (MU) 管理流程中獲得最新的 PowerShell 7 更新,無論是使用適用於企業的 Windows 更新、WSUS、Microsoft 端點配置管理器,還是設置中的交互式 MU 對話框。

PowerShell 7.3 MSI 包包括以下命令行選項:

  • USE_MU
    

- 該屬性有兩個可能的值:

  • 1(默認)- 選擇通過 Microsoft Update、WSUS 或 Configuration Manager 進行更新
  • 0- 不要選擇通過 Microsoft Update、WSUS 或 Configuration Manager 進行更新
  • ENABLE_MU
    
    • 1(默認)- 選擇使用 Microsoft Update 進行自動更新
    • 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 環境變量的選項。

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

電源外殼複製

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

根據下載文件的方式,您可能需要使用 cmdlet 取消阻止文件Unblock-File 。將內容解壓縮到您選擇的位置並pwsh.exe從那裡運行。與安裝 MSI 包不同,安裝 ZIP 存檔不會檢查先決條件。要通過 WSMan 進行遠程處理以正常工作,請確保您已滿足先決條件

使用此方法在 Microsoft Surface Pro X 等計算機上安裝基於 ARM 的 PowerShell 版本。為獲得最佳效果,請將 PowerShell 安裝到 to 文件夾$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 安裝

PowerShell 7.3 可以從 Microsoft Store 安裝。您可以在Microsoft Store站點或 Windows 的 Store 應用程序中找到 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 7.2 開始,PowerShell 包現在免於文件和註冊表虛擬化。對虛擬化文件和註冊表位置的更改現在保留在應用程序沙箱之外。但是,對應用程序根文件夾的更改仍然被阻止。

重要的

您必須在 Windows build 1903 或更高版本上運行才能使用此豁免。

安裝預覽版

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

升級現有安裝

為了在升級時獲得最佳效果,您應該使用與首次安裝 PowerShell 時相同的安裝方法。每種安裝方法都會將 PowerShell 安裝在不同的位置。如果您不確定 PowerShell 是如何安裝的,您可以將安裝位置與本文中的包信息進行比較。如果您是通過 MSI 軟件包安裝的,該信息會出現在 程序和功能控制面板中。

筆記

升級時,PowerShell 不會從 LTS 版本升級到非 LTS 版本。它只會升級到最新版本的 LTS,例如從 7.2.3 升級到 7.2.9。要從 LTS 版本升級到更新的穩定版本或下一個 LTS,您需要使用該版本的 MSI 安裝新版本。

當安裝的版本不是 LTS 版本時,PowerShell 會升級到最新的穩定版本。

在 Windows 10 IoT Enterprise 上部署

Windows 10 IoT Enterprise 附帶 Windows PowerShell,我們可以使用它來部署 PowerShell 7。

電源外殼複製

# Replace the placeholder information for the following variables:
$deviceip = '<device ip address'
$zipfile = 'PowerShell-7.3.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.3.2-win-arm64.zip

# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.3.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 Remoting 時,您會收到一條錯誤消息並與設備斷開連接。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.3.2

在 Windows 10 IoT Core 上部署

當您包含IOT_POWERSHELL功能時,Windows 10 IoT Core 會添加 Windows PowerShell ,我們可以使用它來部署 PowerShell 7。上面為 Windows 10 IoT Enterprise 定義的步驟也可以用於 IoT Core。

要在發貨映像中添加最新的 PowerShell,請使用Import-PSCoreRelease命令將程序包包含在工作區中,並將OPENSRC_POWERSHELL功能添加到您的映像中。

筆記

對於 ARM64 體系結構,包含IOT_POWERSHELL時不會添加 Windows PowerShell 。所以基於 zip 的安裝不起作用。您需要使用Import-PSCoreRelease命令將其添加到圖像中。

在 Nano Server 上部署

這些說明假定 Nano Server 是一個“無外設”操作系統,其上已經運行了一個 PowerShell 版本。有關詳細信息,請參閱Nano Server Image Builder 文檔。

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

  1. 脫機 - 安裝 Nano Server VHD 並將 zip 文件的內容解壓縮到您在安裝的映像中選擇的位置。
  2. 在線 - 通過 PowerShell 會話傳輸 zip 文件並將其解壓縮到您選擇的位置。

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

PowerShell 離線部署

  1. 使用您最喜歡的 zip 實用程序將包解壓縮到已安裝的 Nano Server 映像中的目錄中。
  2. 卸載映像並啟動它。
  3. 連接到 Windows PowerShell 的內置實例。
  4. 按照說明使用 “另一個實例技術”創建遠程端點。

PowerShell在線部署

使用以下步驟將 PowerShell 部署到 Nano Server。

電源外殼複製

# Replace the placeholder information for the following variables:
$ipaddr = '<Nano Server IP address>'
$credential = Get-Credential # <An Administrator account on the system>
$zipfile = 'PowerShell-7.3.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.3.2-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'

如果您想要基於 WSMan 的遠程處理,請按照說明使用“另一個實例技術”創建遠程處理端點 。

PowerShell 遠程處理

PowerShell 支持基於 WSMan 和 SSH 的 PowerShell 遠程協議 (PSRP)。有關詳細信息,請參閱:

必須滿足以下先決條件才能在舊版本的 Windows 上通過 WSMan 啟用 PowerShell 遠程處理。

  • 安裝 Windows Management Framework (WMF) 5.1(根據需要)。有關 WMF 的詳細信息,請參閱WMF 概述
  • 在 Windows 10 之前的 Windows 版本上安裝通用 C 運行時。它可以通過直接下載或 Windows 更新獲得。完全修補的系統已經安裝了這個包。

支持的 Windows 版本

下表列出了 PowerShell 版本及其支持的 Windows 版本。支持這些版本,直到 PowerShell 版本 達到支持終止或 Windows 版本 達到支持終止

  • 支持的圖標表示該操作系統或 PowerShell 版本仍受支持
  • 失去支持圖標表示該版本的操作系統不再支持 PowerShell 版本
  • 測試中圖標表示我們尚未在該操作系統上完成 PowerShell 測試
  • 不支持圖標表示操作系統或 PowerShell 的版本不受支持
  • 當操作系統版本和 PowerShell 版本都有圖標時支持的,表示支持該組合
視窗 7.2(LTS-電流) 7.3 7.4(預覽)
支持的Windows 服務器 2016、2019 或 2022 支持的 支持的 支持的
支持的Windows 服務器 2012 R2 支持的 支持的 支持的
支持的Windows Server Core(2012 R2 或更高版本) 支持的 支持的 支持的
支持的Windows Server Nano(1809 或更高版本) 支持的 支持的 支持的
支持的視窗 11 支持的 支持的 支持的
支持的Windows 10 1607+ 支持的 支持的 支持的

筆記

對特定版本的 Windows 的支持由 Microsoft 支持生命週期策略決定。有關詳細信息,請參閱:

對於以下處理器體系結構,Windows 支持 PowerShell。

視窗 7.2(LTS-電流) 7.3 7.4(預覽)
Nano 服務器版本 1803+ x64 x64 x64
Windows 服務器 2012 R2+ x64, x86 x64, x86 x64, x86
Windows 服務器核心 2012 R2+ x64, x86 x64, x86 x64, x86
Windows 10 或 11 客戶端 x64、x86、Arm64 x64、x86、Arm64 x64、x86、Arm64

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

安裝支持

Microsoft 支持本文檔中的安裝方法。可能有其他來源的其他第三方安裝方法。雖然這些工具和方法可能有效,但 Microsoft 不支持這些方法。


推薦內容

原出處

jangow5iqUxQmK20230207

Edit

Pub: 14 Feb 2023 05:55 UTC

Edit: 14 Feb 2023 05:55 UTC

Views: 50