在 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 二進制文件。
- 離線 - 掛載 Nano Server VHD 并將 zip 文件的內(nèi)容解壓到掛載映像中您選擇的位置。
- 在線 - 通過 PowerShell 會話將 zip 文件傳輸?shù)侥x擇的位置并解壓。
在這兩種情況下,您都需要 Windows x64 ZIP 發(fā)布包。請在“管理員”實例的 PowerShell 中運行命令。
離線部署 PowerShell
- 使用您喜歡的 zip 工具將包解壓到掛載的 Nano Server 映像中的目錄。
- 卸載映像并啟動它。
- 連接到內(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 無法支持這些方法。