PowerShell 的 $PSVersionTable 的内容代表什么?

PowerShell 的 $PSVersionTable 的内容代表什么?

如果我echo $PSVersionTable在 PowerShell 中,我会得到看似多位版本信息的东西。

属性的名称是

  • CLRVersion
  • BuildVersion
  • PSVersion
  • WSManStackVersion
  • PSCompatibleVersions
  • SerializationVersion
  • PSRemotingProtocolVersion

除 1 之外,其余均采用普通版本表示法 ( #.#.#),另外 1 (PSCompatibleVersions) 是一组版本号 ( {1.0, 2.0})

这些分别代表什么?


此外:这个问题是为了深入回答我在安装了哪个版本的 Windows 管理框架?。那里的评论和我链接到的类似问题中的其他评论建议$PSVersionTable可以使用来获取 WMF 的版本。如果其中一个属性确实给出了 WMF 版本,并且保证会这样做,请务必在那里回答。此外,如果您可以提供任何文件或确认证据,我会给您 +2,如果我可以的话:我的 Google 查询没有得到任何令人满意的结果。

答案1

PowerShell 内置帮助描述了 $PSVersionTable:

Get-Help about_Automatic_Variables

Update-Help如果您之前没有运行过,则可能需要先运行一下。

的优点在于Get-Help您不必确切知道要查找的内容。我最初输入来查找此主题的内容实际上只是help PSVersionTable,它列出了所有包含“PSVersionTable”的帮助主题(还有其他一些)。

这是 about_Automatic_Variables 中描述的部分$PSVersionTable,正如 PowerShell 当前为我返回的那样,但它是最不重要的部分,正如 OP 指出的那样:

$PsVersionTable 包含一个只读哈希表,该表显示有关当前会话中运行的 Windows PowerShell 版本的详细信息。该表包括以下项目:

CLRVersion:                The version of the common language runtime (CLR)

BuildVersion:              The build number of the current version

PSVersion:                 The Windows PowerShell version number

WSManStackVersion:         The version number of the WS-Management stack

PSCompatibleVersions:      Versions of Windows PowerShell that are 
                           compatible with the current version

SerializationVersion:      The version of the serialization method

PSRemotingProtocolVersion: The version of the Windows PowerShell remote 
                           management protocol

答案2

根据我的经验,PSVersion(即 PowerShell 版本)与 WMF 版本相匹配,至少就主要版本号而言。不过,我还没有跟踪所有预览版本以了解它们的匹配情况。

相关内容