如何使用Get-WmiObject查询并返回设备安装的Java最新版本
PowerShell 命令调整方案
你可以将原有命令补充版本转换、排序和取首行的逻辑即可实现需求,调整后的命令如下:
Get-WmiObject -Class Win32_Product -ComputerName $System -Filter "Name like 'Java%'" | Select -Expand Version | Sort-Object { [version]$_ } -Descending | Select-Object -First 1
逻辑说明
- 原有命令返回的版本号是字符串格式,直接按字符串排序不符合版本号的比较规则,所以通过
{ [version]$_ }将每一行版本号强制转换为 .NET 内置的 Version 类型,按照标准版本号规则排序 -Descending参数指定按版本从高到低降序排列- 最后用
Select-Object -First 1取排序后的第一个结果,即为最高版本号
补充说明:
Win32_Product类查询时会触发MSI安装包一致性校验,执行速度可能较慢,如果需要更高的执行效率,也可以替换为查询注册表相关类实现,上述命令已可直接满足需求。
内容的提问来源于stack exchange,提问作者jin xinbo
相关产品推荐
相关产品推荐

