[玩转系统] 更新 Windows 上的 PowerShell 版本
作者:精品下载站 日期:2024-12-15 00:50:17 浏览:16 分类:玩电脑
更新 Windows 上的 PowerShell 版本
本文介绍如何将 Windows PowerShell 更新到最新版本 5.1 以及如何安装(升级)PowerShell Core 7.3。目前PowerShell有两个分支:
经典的Windows PowerShell(最高版本为5.1,已不再开发);
新的 PowerShell Core 平台(7.3 版现已推出)。
尽管 PowerShell 版本编号从 5.1 开始延续(6.0、6.1、7.0、7.1 等),但它们是两个不同的平台。因此,将单独介绍更新 Windows PowerShell 和 PowerShell Core。
PowerShell Core 7.x 是与经典 Windows PowerShell 最兼容的版本。这意味着您可以在 PowerShell Core 中轻松运行旧的 PS1 脚本文件和 cmdlet。
升级到 Windows PowerShell 5.1
从 Windows 10 和 Windows Server 2016 开始,所有版本均已默认安装 Windows PowerShell 5.1。
对于早期版本(Windows 7/8.1 和 Windows 2008 R2/2012),您必须手动升级到 PowerShell 5.1。例如,Windows Server 2012 R2 (Windows 8.1) 安装了 PowerShell 4.0。
让我们尝试在 Windows Server 2012 R2 中将 Windows PowerShell 版本升级到 5.1。
首先,检查当前的PowerShell版本(截图显示为PowerShell 4.0):
$PSVersionTable.PSVersion
要将 PowerShell 版本升级到 5.1,请安装 Windows Management Framework 5.1,这需要 .NET Framework 4.5.2(或更高版本)。确保使用以下命令安装 .NET 4.5.2 或更高版本:
(Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’ -Name Release).Release
就我而言,发布版本
378675
表示已安装 .NET Framework 版本 4.5.1。因此,我必须下载并安装最新的 .NET Framework 4.8(以下是离线安装程序的链接:https://go.microsoft.com/fwlink/?linkid=2088631 —
ndp48-x86-x64-allos-enu.exe
)。
安装 .NET 4.8 包(您需要重新启动计算机):
如果您在没有 .NET 4.5.2 的情况下安装 WMF 5.1,则某些 PowerShell 功能将不可用。
下载适用于 Windows Server 2012 R2 的 WMF 5.1 —
Win8.1AndW2K12R2-KB3191564-x64.msu
(https://go.microsoft.com/fwlink/?linkid=839516)。
从 MSU 文件安装 Windows Management Framework 5.1。
重启服务器后,打开powershell.exe控制台并确保PowerShell版本已更新至5.1。
如果您的Windows 7或Windows Server 2008 R2不受支持,您可以以相同的方式将PowerShell版本从2.0升级到5.1。首先,安装.Net Framework 4.5.2(或更高版本),然后安装WMF 5.1 (下载链接与Windows Server 2012 R2 的下载链接不同)。
如何安装或更新PowerShell Core 7?
PowerShell Core 是跨平台的,并且正在积极开发中(与 Windows PowerShell 5.1 不同)。实际上,PowerShell Core 是与经典 Windows PowerShell 一起安装在操作系统上的新平台。这意味着您无法从 PowerShell 5.1 升级到 PowerShell Core 7.3。 PowerShell 7.x 与 Windows PowerShell 5.1 分开(并行)安装在您的计算机上。
PowerShell Core 6.x 和 7.x 目前可用。建议您始终安装最新版本的 PowerShell(当前为 7.3),除非您需要与旧脚本的特殊兼容性。
在 Windows 10 和 11 上升级(安装)PowerShell Core 版本有多种方法:
使用 PowerShell Core MSI 安装程序,可以从 GitHub 下载该安装程序;
使用内置的Windows 10/11包管理器WinGet;
使用微软商店。
接下来,我们以在 Windows 10 22H2 上将 PowerShell Core 更新到 7.3 的示例来了解所有这些方法。
使用 MSI 安装升级 PowerShell Core
如果您想使用MSI包安装PowerShell Core,请进入项目页面https://github.com/PowerShell/PowerShell并下载适合您操作系统版本的安装包。在撰写本文时,PowerShell 的最新版本是 v7.3.3,发布日期为 2023 年 2 月 24 日(例如,
PowerShell-7.3.3-win-x64.msi
或者
PowerShell-7.3.3-win-x86.msi
)。仅在生产环境中使用稳定版本或 LTS 版本。
下载 MSI 文件并安装。
可以使用以下安装选项:
将 PowerShell 添加到 Path 环境变量
注册 Windows 事件日志记录清单(为 PowerShell 事件创建单独的事件查看器日志。
%SystemRoot%\System32\Winevt\Logs\PowerShellCore%4Operational.evtx
)
启用 PowerShell 远程处理(为 PowerShell 远程处理启用并配置 WinRM)
将“在此处打开”上下文菜单添加到资源管理器
为 PowerShell 文件添加“使用 PowerShell 7 运行”上下文菜单
接下来,您可以通过 Windows Update/WSUS 启用 PowerShell Core 自动更新(见下文)。
要在安静模式下使用 SCCM/MDT/脚本从 MSI 包安装 PowerShell Core,您可以使用带有以下参数的命令:
ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELLADD_FILE_CONTEXT_MENU_RUNPOWERSHELLENABLE_PSREMOTINGREGISTER_MANIFESTADD_PATHDISABLE_TELEMETRYUSE_MU- 使用 Microsoft Update 获取 PSCore 更新
ENABLE_MU- 允许通过 Windows Update 更新 PowerShell Core
例如,静默安装的命令可能如下所示:
msiexec.exe /package PowerShell-7.3.3-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 ADD_PATH=1 ENABLE_MU=1 ADD_PATH=1
您可以直接从控制台升级 PowerShell。要安装或升级到最新版本的 PowerShell Core,请运行以下命令:
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
此命令从 GitHub 下载 PowerShell 7.3 MSI 文件,然后通过 MSI 安装程序开始安装。
安装完成后,将出现 PowerShell Core (pwsh.exe) 窗口。检查 PowerShell 版本以确保其已更新到 PoSh 7.3.3。
使用 WinGet 包管理器安装或更新 PowerShell Core
如果您安装了 WinGet 包管理器,则可以安装 PowerShell 版本或将其更新为最新命令:
winget install --id Microsoft.Powershell --source winget
或者,您可以安装特定版本的 PowerShell Core:
winget install --id=Microsoft.PowerShell -v "7.1.2" -e
如果您安装了 Chocolatey 包管理器,请使用以下命令(对于 5.1):
choco install powershell -y
choco upgrade powershell -y
或对于 PowerShell 7.x:
choco install pwsh -y
choco install pwsh -y
请注意不同版本的 PowerShell 的默认目录:
Windows PowerShell 5.1:
$env:WINDIR\System32\WindowsPowerShell\v1.0
PowerShell 核心 6.x:
$env:ProgramFiles\PowerShell
PowerShell 核心 7.x:
$env:ProgramFiles\PowerShell
如果您的计算机上安装了 PowerShell 6.x,
$env:ProgramFiles\PowerShell
安装 PowerShell 7.3 时,该目录会自动删除。
请注意,PowerShell 可执行文件的名称已更改。在 PowerShell Core 中,它是 c:\Program Files\PowerShell \pwsh.exe。它在“开始”菜单中有自己的图标。
要运行基于 .NET Framework 的 Windows PowerShell,
powershell.exe
使用命令
要运行基于 .NET Core 的 PowerShell Core,请使用
pwsh.exe
这意味着您的计算机上安装了 Windows PowerShell 5.1 和 PowerShell Core 7.3。
要查找设备上安装的 PowerShell 的版本和内部版本,您可以检查 pwsh.exe 文件的版本:
(Get-Command 'C:\Program Files\PowerShell\pwsh.exe').Version
您可以通过以下方式检查远程计算机上文件的版本:
Invoke-Command -Computername computer1 -Scriptblock {(Get-Command 'C:\Program Files\PowerShell\pwsh.exe').Version}
Windows PowerShell 提供了一种特殊的向后兼容模式,即使您安装了较新版本,也允许您运行旧版本的 PowerShell。您可以使用以下命令运行特定版本的 PowerShell 示例(4.0):
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Version 4
通过 Microsoft Store 在 Windows 10 和 11 上安装 PowerShell Core
在 Windows 10 和 11 上,您可以通过 Microsoft Store 安装或更新 PowerShell。您可以在应用商店中手动查找 PowerShell 应用程序或使用此链接。
您还可以使用 WinGet 安装 PowerShell 的应用商店版本:
winget search powershell --source msstore
winget install --id 9MZ1SNWT0N5D
从 Microsoft Store 安装 PowerShell Core 的优点是,App Store 会自动检查您安装的 PowerShell 版本,并在更新可用时自动安装。
要验证您是否已安装 PowerShell Core 的应用商店版本,请使用以下命令:
Get-AppPackage Microsoft.PowerShell
本示例中安装了 Microsoft.PowerShell_7.3.3.0_x64__8wekyb3d8bbwe 软件包。
然而,这样的 PowerShell 实例将在沙箱环境中运行也存在缺点。
您可以下载 APPX/MSIX 应用程序文件并使用以下命令进行安装
Add-AppxPackage
cmdlet(或如“修复 Microsoft Store”一文中所述)。
在远程计算机上安装/更新 PowerShell Core
考虑在多台远程计算机上安装或更新 PowerShell Core 的两种方案。
使用组策略部署 PowerShell Core
您可以使用组策略在 Active Directory 域中集中部署和更新 PowerShell Core。使用 GPO 的功能将 MSI 包部署到域计算机。
下载PowerShell MSI安装文件并将其复制到域控制器上的SYSVOL目录;
打开域组策略管理控制台(
gpmc.msc
),创建一个新的GPO并将其链接到具有计算机和服务器的OU;
进入GPO部分计算机配置 -> 软件设置,新建一个包,并指定域中SYSVOL文件夹中PowerShell MSI安装文件的路径(使用UNC路径);
为了更准确地将策略定位到域设备,您可以使用 GPO WMI 筛选器。
要更新软件安装的组策略设置,您必须重新启动计算机。新版本的 PowerShell 将在启动时安装在所有计算机上。
如何从命令提示符更新远程计算机上的 PowerShell?
您可以使用命令行提示符更新远程计算机上的 PowerShell。
第一种方法使用共享网络文件夹中的 MSI 安装程序来远程更新计算机上的 PowerShell:
Invoke-Command -ComputerName mun-srv01 -ScriptBlock {Start-Process msiexec.exe -ArgumentList '/package "\mun-fs01\install\PowerShell-7.3.3-win-x64.msi" /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1' -Wait}
以下脚本从 Active Directory 域中选择所有运行 Windows 10 的已启用计算机,并开始在每台计算机上下载和安装 PowerShell Core:
$ADComputers = Get-ADComputer -Filter 'operatingsystem -like "*Windows 10*" -and enabled -eq "true"' ForEach ($computer in $ADcomputers) { Invoke-Command -ComputerName $computer {iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"} }
您必须在计算机上安装 Active Directory PowerShell 模块才能使用 GetADComputer cmdlet。
连接到远程计算机时使用 PowerShell Remoting 命令时要小心(使用
Enter-PSSession
和
Invoke-Command
cmdlet)。如果需要连接到 PowerShell 7 端点,则必须使用以下命令:
Enter-PSSession -ComputerName dc01 -ConfigurationName "powershell.7"
否则,您将连接到 PowerShell Remoting 5.1 端点。
在 Linux 发行版上更新 PowerShell Core 的最常见方法是使用本机包管理器。
通过 Windows Update 或 WSUS 更新 PowerShell
在 PowerShell Core 7.2 之前,pwsh.exe 不会自动更新。新版本发布后控制台只有一条通知:
A new PowerShell stable release is available. Upgrade now, or check out the release page at: https://aka.ms/PowerShell-Release?tag=v7.1.3
从版本 7.2 开始,PowerShell Core 支持通过 Windows Update(Microsoft Update、Windows Update for Business、内部 WSUS 服务器或 SCCM)自动更新。为此,您必须在安装 MSI 软件包期间启用适当的选项。
第一个允许 PowerShell 使用任何可用通道自动更新(在注册表中启用注册表参数 UseMU =1)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShellCore
钥匙)
第二个复选框将允许您接收所有 Microsoft 软件的更新,而不仅仅是 Windows。如果禁用此选项,您将不会从 Microsoft Update 接收 PowerShell 更新,但可以从 WSUS/SCCM 接收更新(注册表参数 registeredwithAU=1
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services71F918-A847-4430-9279-4A52D1EFE18D
)
检查“设置”->“更新和安全”->“Windows 更新”->“高级”选项下的更新 Windows 时接收其他 Microsoft 产品的更新选项是否已启用。
管理员可以配置更新安装 通过组策略设置选项。
现在,当您单击检查更新按钮或通过 PSWindowsUpdate 模块运行更新扫描时,您还将收到 PowerShell Core 的更新。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag