[玩转系统] 检查 PowerShell 版本的 4 种方法(好与坏)
作者:精品下载站 日期:2024-12-14 20:49:42 浏览:13 分类:玩电脑
检查 PowerShell 版本的 4 种方法(好与坏)
在 PowerShell 中,有无数种方法可以完成相同的操作(或接近的操作)。在这篇博文中,您将了解检查本地和远程计算机上的 PowerShell 版本的各种方法。我们将介绍不好的方法和我推荐的方法。
有些网站展示了检查 Powershell 版本的各种方法。但没有人编制出所有这些因素的全面清单。我决定改变这一点。
所有这些方法都应该适用于 Windows PowerShell 和 PowerShell Core。这些方法也应该适用于 Windows PowerShell 版本 1.0 一直到 PowerShell 7。
查找正在运行的 PowerShell 版本的方法有:
(Get-Host).Version
属性$host.Version
属性- 注册表(仅限 Windows PowerShell)
$PSVersionTable.PSVersion
属性
让我们按照从最少到最推荐的方式来分解查找 PowerShell 版本的所有方法。
获取主机
PowerShell 有一个称为“主机”的概念。 主机是托管 PowerShell 引擎的程序。它不是 PowerShell 引擎本身。 PowerShell 控制台或带有集成终端的代码编辑器是 PowerShell 主机。
主机可以有一个完全独立于PowerShell本身的版本。 这可能会欺骗许多新手。让我告诉你原因。
如果运行 (Get-Host).Version
,您会看到它返回一个版本号,看起来可能是 PowerShell 引擎版本。人不可貌相。
下面我在 Windows PowerShell 5.1 上运行了 Get-Host
,您可以看到它返回了 5.1.17134.858。这看起来像是一个合法版本。
PS51> (Get-Host).Version
Major Minor Build Revision
----- ----- ----- --------
5 1 17134 858
但是,有时在集成终端中运行 Get-Host
时,版本会不相同。尽管通常主机将代表相同版本的引擎,但它并不一定总是这样做。
通过远程计算机上的 Get-Host 检查 Powershell 版本
尽管在本地计算机上运行时 Get-Host
似乎返回相同的版本,但在远程计算机上却永远不会。
例如,让我们通过 Invoke-Command
在远程 Windows Server 2016 服务器上运行 Get-Host
并看看会发生什么。
PS51> Invoke-Command -ComputerName 10.0.0.5 -ScriptBlock {Get-Host} -Credential $cred
Major Minor Build Revision PSComputerName
----- ----- ----- -------- --------------
1 0 0 0 10.0.0.5
上次我检查时,无法在 Windows Server 2016 上运行 PowerShell v1。
依赖 Get-Host
无论如何都是一个坏主意。
检查 Powershell 版本 $host.Version 命令
引用 $host.Version
是检查 Powershell 版本的另一种方法。 $host
变量是一个自动变量,它返回与 Get-Host
相同的输出。
这个方法没有什么特别的。它与运行 Get-Host
完全相同。
远程计算机上的 $host.Version
您将通过使用 $host.Version
的 PowerShell Remoting 看到与运行 Get-Host
相同的行为。
PS51> Invoke-Command -ComputerName 10.0.0.5 -ScriptBlock {$host.Version} -Credential $cred
Major Minor Build Revision PSComputerName
----- ----- ----- -------- --------------
1 0 0 0 10.0.0.5
危险,威尔·罗宾逊!
登记处
如果您不想打开PowerShell本身,也可以检查注册表。 PowerShell 的版本隐藏在注册表项路径 HKLM:\SOFTWARE\Microsoft\PowerShell\PowerShellEngine
的值下。此注册表项有一个名为 PowerShellVersion
的值,您可以使用 Get-ItemProperty
引用该值。
PS51> (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion
5.1.17134.1
您可以看到这个版本是相似的,但不包括像其他选项那样的修订。
PS51> [version](Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 17134 1
使用其他工具
使用注册表还意味着您根本不需要使用 PowerShell 来查找版本。您可以从命令提示符或其他可以读取注册表的工具运行命令。
CMD> reg query HKLM\SOFTWARE\Microsoft\PowerShell\PowerShellEngine /v PowerShellVersion
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\PowerShellEngine
PowerShellVersion REG_SZ 5.1.17134.1
远程计算机上的注册表
注册表是静态的,值不会在本地或远程更改。您可以确信,您在本地看到的内容将与您在远程看到的内容相同。
PS51> $scriptBlock = {
[version](Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion
}
PS51> Invoke-Command -ComputerName 10.0.0.5 -ScriptBlock $scriptBlock -Credential $cred
Major Minor Build Revision PSComputerName
----- ----- ----- -------- --------------
5 1 17763 1 10.0.0.5
在本地和远程显示相同的版本是很好的。但我有一个更好的方法来向您展示如何使用 $PSVersionTable
自动变量。
通过 $PSVersionTable.PSVersion 命令检查 Powershell 版本
最后一个方法是引用 $PSVersionTable
自动变量上的 PSVersion
属性。此方法将始终代表 PowerShell 引擎。
PS51> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 17134 858
$PSVersionTable
自动变量是一个只读哈希表,专门返回有关 PowerShell 引擎版本的信息。此自动变量不仅返回版本,还返回 PSEdition。此属性可以是“Core”或“Desktop”,以提供有关正在运行的 PowerShell 版本的更多信息。
远程计算机上的 $PSVersionTable
使用 $PSVersionTable
自动变量在本地和远程都是准确的。您可以在下面看到,通过将 $PSVersionTable.PSVersion
包装在脚本块中并在远程计算机上执行该代码,它将返回相同的版本。
PS> Invoke-Command -ComputerName 10.0.0.5 -ScriptBlock {$PSVersionTable.PSVersion} -Credential $cred
Major Minor Build Revision PSComputerName
----- ----- ----- -------- --------------
5 1 17763 592 10.0.0.5
概括
在这篇博文中,您了解了本地和远程检查 PowerShell 版本的所有方法。我希望前几种方法能让您了解哪些方式不检查版本!
我建议始终使用 $PSVersionTable.PSVersion
。所有其他方法可能看起来与 PowerShell 引擎版本类似,但可能并不总是反映引擎版本。
如果我错过了任何方式,请在评论中告诉我。我很高兴更新这篇文章并给予您信任。
猜你还喜欢
- 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 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][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
[电视剧] [突围] [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