如何查看已安装的 Windows Management Framework (WMF) 版本?看起来这应该是一件简单的事情,但我做不到。甚至在谷歌上搜索一堆不同版本的问题也几乎没有结果。
它不在 appwiz.cpl 中,并且 regedit 没有为“Windows Management Framework”找到任何东西,它为“wmf”找到了太多无关的东西
我只想知道如何以任何合理的方式检查它。是否有它的注册表项?有文件可以查吗?任何事物???
我能找到的最接近的是 serverfault:Methods to Detect version of Windows Management Framework。这个问题的开头是一样的,但它似乎要求在 GPO 中使用一种特定的检查方式。也许这就是它没有得到答案的原因。
我要检查多台计算机。我开始使用的是 Windows Server 2008 R2 Standard。还将有其他 Windows Server 操作系统。
如果您知道任何比我更好的标签,请发表评论或重新标记;我找不到能很好地描述这个问题的任何东西。
更新:有些人似乎认为“ $PSVersionTable
”(和/或它的各种属性)是一个答案。我最近终于意识到这是一个 PowerShell 变量(也许“PS”前缀应该已经为我提供了它,但它没有)并试图更深入地挖掘。这导致了另一个问题:PowerShell 的 $PSVersionTable 的内容代表什么?.
更新 2:根据我现在收集的所有信息和我更好的理解,我相当肯定 PowerShell 的内置变量$PSVersionTable.PSVersion
在技术上不是解决这个问题的答案,但它通常(有时?总是?不确定)相同,因为在版本中可能会齐头并进。该$PSVersionTable.WSManStackVersion
变量可能是我想要的,但该属性的官方简短描述显示它代表 WS-Management 堆栈。WS-Management 堆栈是否与 WMF 相同?谷歌搜索表明它们密切相关,但我不确定答案是否是肯定的。
请参阅 Microsoft 的此文档:
https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell?view=powershell-5.1
在“升级现有的 Windows Powershell”部分中,它特别指出:
我想这就是答案。运行
$PSVersionTable.PSVersion
以获取版本。我知道这是一个老问题,但对于从谷歌搜索中找到这个的其他人:
我想说这
$PSVersionTable.PSVersion
是 WMF 版本最可靠的指标。请参阅以下示例。Windows 7 全新安装:
.NET 4.5 和 WMF 4 安装后的 Windows 7:
安装 WMF 5 后的 Windows 7:
Windows 10,其中包括开箱即用的 WMF 5:
如您所见,for
$PSVersionTable.WSManStackVersion.Major
only 的版本似乎在 WMF 4 安装时发生变化,然后保持在 3。而$PSVersionTable.PSVersion.Major
似乎报告了 WMF 的准确版本。在 PowerShell 中,它可以从
$PSVersionTable.WSManStackVersion.Major
我家的 Windows 7 系统:
然后在安装更新的 Windows 管理框架后:
如果已安装,您将在“appwiz.cpl”中找到它。请记住查看“查看已安装的更新”下的内容,因为 WMF 作为 Windows 更新分发,具有不同 Windows 版本的唯一 KB 编号。
您可以通过识别您正在检查的版本的 KB 编号来检查安装了哪个版本的 Windows Management Framework (WMF),然后使用 wmic 查询来确定是否已安装该 KB 编号。这些示例都是基于使用 cmd.exe 运行命令。
** 检查 WMF 4.0 的命令
** 运行命令示例:
在上面的示例中,安装了 WMF 4.0: KB 从 wmic 查询返回,返回代码为零。
** 检查 WMF 5.0 的命令
** 运行命令示例:
因此,在上面的示例中,未安装 WMF 5.0:wmic 查询没有返回任何内容,返回码非零。
您可能使用不同的 KB 来安装给定级别的 WMF,但这些是我目前正在使用的。
我总是检查 PowerShell(作为 WMF 的一部分安装或升级):
如果未安装 .NET 4.5,升级到 WMF 4.0(稍后再升级到 5.0)时会出现问题,因此如果 PS 命令输出错误,您可能应该安装 .NET 4.5。