在PowerShell中查看版本信息可以通过多种方式实现。以下是几种常用的方法来查看你当前使用的PowerShell版本:
方法1: $PSVersionTable
变量
这是检查PowerShell版本最简单和最常用的方法。只需在PowerShell窗口中输入以下命令:
powershellCopy Code$PSVersionTable.PSVersion
此命令会显示当前PowerShell会话的主要版本信息,包括主版本号、次版本号、修补程序版本号和预览版标志(如果有的话)。
方法2: Get-Host
命令
另一种获取PowerShell版本的方法是使用Get-Host
或其别名gh
。运行以下命令:
Get-Host | Select-Object Version
或者使用别名:
powershellCopy Codegh | Select-Object Version
这将返回一个对象,其中包含当前PowerShell主机的版本信息。
方法3: $PSVersionTable
变量的详细输出
如果你想获得关于当前PowerShell环境更详细的信息,可以直接查看$PSVersionTable
变量的全部内容而不仅仅是.PSVersion
属性。这将包括CLR版本、构建版本、PS兼容版本等信息。
$PSVersionTable
这个命令会展示一个表格,列出了所有相关的版本信息,包括PowerShell引擎版本、CLR版本以及其他组件的版本信息。
这段输出展示了$PSVersionTable
命令在PowerShell中的执行结果,以下是每个字段的功能说明:
-
PSVersion: 显示当前PowerShell的主版本号。在这个例子中,版本号为5.1.20348.2227,表明这是Windows PowerShell 5.1的一个特定构建版本。
-
PSEdition: 描述PowerShell的版本类型。在这个例子中,值为“Desktop”,表示这是适用于桌面操作系统(如Windows 10)的Windows PowerShell版本。
-
PSCompatibleVersions: 列出了与当前PowerShell版本兼容的早期PowerShell版本号。这意味着当前环境支持运行为这些版本编写的脚本和模块。在此例中,它列出了从1.0到更高版本。
-
BuildVersion: 显示当前PowerShell构建的具体版本号。这个信息有助于识别特定的修补程序或更新。在这个例子中,构建版本号为10.0.20348.2227。
-
CLRVersion: 表示公共语言运行时(Common Language Runtime, CLR)的版本,这是.NET Framework的一部分,PowerShell基于它运行。在这个例子中,CLR版本为4.0.30319.42000,指的是.NET Framework 4的一个版本。
-
WSManStackVersion: 显示Windows远程管理(WS-Management)协议栈的版本。这是PowerShell远程管理功能所依赖的技术。在这个例子中,版本为3.0。
-
PSRemotingProtocolVersion: 显示PowerShell远程协议的版本。这个版本号有助于确定使用的PowerShell远程通信协议的兼容性。在这个例子中,版本为2.3。
-
SerializationVersion: 表示PowerShell对象序列化的版本。序列化是将对象状态转换为可存储或可传输的形式的过程,在远程通信和作业中尤其重要。在这个例子中,序列化版本为1.1.0.1。
在PowerShell中,查询版本信息主要依赖于几个关键的命令和变量。这些工具提供了不同层面上的版本信息,包括PowerShell本身的版本、.NET Framework或.NET Core的版本,以及操作系统的版本信息。以下是一些用于查询PowerShell版本信息的主要方法:
1. $PSVersionTable
变量
这是查询PowerShell版本最直接的方法。$PSVersionTable
提供了一个包含多个属性的哈希表,其中PSVersion
属性就是PowerShell的版本号。
$PSVersionTable.PSVersion
2. Get-Host
或其别名 gh
Get-Host
命令(或其简写形式gh
)也可以用来获取当前PowerShell会话的宿主信息,包括版本号。
Get-Host | Select-Object Version
3. 查看全部$PSVersionTable
如果你想获取更全面的版本信息,包括CLR版本、构建版本等,可以直接输出$PSVersionTable
的全部内容。
$PSVersionTable
4. 使用[Environment]::Version
查询.NET版本
虽然这不直接反映PowerShell的版本,但了解当前PowerShell环境运行在哪个版本的.NET上也是很重要的。这对于理解某些功能的可用性尤其关键。
powershellCopy Code[Environment]::Version
总结
基于上述方法,实际上有两个主要的命令/变量用于直接查询PowerShell的版本信息:$PSVersionTable
和Get-Host
。$PSVersionTable
是最常用且推荐的方式,因为它提供了最全面的信息。其他方法如[Environment]::Version
提供了关于底层.NET环境的信息,这虽然与PowerShell的版本不完全相同,但对于开发和调试脚本也非常有用。
查看安装的模块版本
如果你想了解特定PowerShell模块的版本,可以使用Get-Module
命令配合-ListAvailable
参数。这对于排查模块兼容性问题很有帮助。
Get-Module -ListAvailable | Select-Object Name,Version
此命令列出了所有可用模块及其版本,你可以通过增加| Where-Object { $_.Name -eq "ModuleName" }
来过滤特定模块的信息。
6. 查询特定应用或组件版本
在某些情况下,你可能需要查询系统上特定应用程序或组件的版本,这可以通过多种方式实现,包括使用Get-AppxPackage
、Get-ItemProperty
等命令。例如,查询Windows商店应用版本:
Get-AppxPackage Microsoft.WindowsStore | Select-Object Name,Version
7. 使用WMI/CIM查询操作系统版本
虽然这不直接关联到PowerShell版本,但了解操作系统版本对于编写兼容脚本也很重要。可以使用WMI(Windows Management Instrumentation)或CIM(Common Information Model)来查询。
powershellCopy CodeGet-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber
或者:
powershellCopy CodeGet-WmiObject Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber
8. 访问注册表获取版本信息
对于某些特定的应用程序或组件,可能需要直接从Windows注册表中读取版本信息。这通常涉及到使用Get-ItemProperty
访问注册表路径。
Get-ItemProperty 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion' | Select-Object ProductName, CurrentVersion, CurrentBuild
查看安装路径
在某些情况下,查看PowerShell的安装路径也可以提供一些版本相关的线索,尤其是当你在系统上安装了多个版本时。例如,PowerShell Core(PowerShell 6及以上版本)通常安装在不同的路径下,这与Windows PowerShell(5.1及以下版本)有所区别。
powershellCopy Code(Get-Command powershell).Source
或者对于PowerShell Core:
powershellCopy Code(Get-Command pwsh).Source
标签:powershellCopy,shell,power,Get,PSVersionTable,Code,版本,PowerShell,大全 From: https://www.cnblogs.com/suv789/p/18009090