如何使用 Get-WmiObject 返回最新版本的 java

Posted

技术标签:

【中文标题】如何使用 Get-WmiObject 返回最新版本的 java【英文标题】:How to return the latest version of java using Get-WmiObject 【发布时间】:2021-09-28 21:37:04 【问题描述】:

我想弄清楚如何使用 Get-WmiObject -Class Win32_Product -ComputerName $System -Filter "Name like 'Java%'" | Select -Expand Version'" 以返回查询的 JAVA 的最新版本。

返回

8.0.2610.12
8.0.2810.9
8.0.2910.10
2.8.261.12

期待回归

8.0.2910.10

【问题讨论】:

顺便说一句:CIM cmdlet(例如,Get-CimInstance)在 PowerShell v3(2012 年 9 月发布)中取代了 WMI cmdlet(例如,Get-WmiObject)。因此,应该避免使用 WMI cmdlet,尤其是因为 PowerShell (Core) (v6+),未来所有努力的方向,甚至不再拥有它们。但是请注意,WMI 仍然是 CIM cmdlet 的基础。有关详细信息,请参阅this answer。 【参考方案1】:

使用the Sort-Object cmdlet对版本字符串进行排序,然后取最大值:

$versions = Get-WmiObject -Class Win32_Product -ComputerName $System -Filter "Name like 'Java%'" | Select -Expand Version 
$versions | Sort  $_ -as [version]  -Descending | Select -First 1

【讨论】:

成功了!谢谢您的帮助!非常感谢。 嘿,我还有一个问题。一旦我添加了 Select-Object -Property @n="Hostname";e=$System,Name,Version 它就不再排序了。 Sort $_ -as [version] 更改为 Sort $_.Version -as [version]

以上是关于如何使用 Get-WmiObject 返回最新版本的 java的主要内容,如果未能解决你的问题,请参考以下文章

win8系统快要过期激活,输入(Get-wmiObjeCt.......PrOductkey出现不

npm - 如何显示包的最新版本

Get-WmiObject:“未找到提供程序”(0x80041013)

没有使用 (Get-WmiObject -Class win32_computersystem -ComputerName $computer).UserName 获取远程用户名

Get-WmiObject 不能在 PowerShell (x86) 但在 PowerShell 上执行

Get-WmiObject : RPC 服务器不可用。 (HRESULT 异常:0x80070 6BA