![PowerShell 的 $PSVersionTable 的内容代表什么?](https://linux22.com/image/641347/PowerShell%20%E7%9A%84%20%24PSVersionTable%20%E7%9A%84%E5%86%85%E5%AE%B9%E4%BB%A3%E8%A1%A8%E4%BB%80%E4%B9%88%EF%BC%9F.png)
如果我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 版本相匹配,至少就主要版本号而言。不过,我还没有跟踪所有预览版本以了解它们的匹配情况。