用于查找自带 Java 版本的应用程序的 Powershell 脚本

Powershell script to find applications that come with their own Java versions

我正在寻找一种方法来找出所有已安装的应用程序,一个带有自己的 java 版本的应用程序。有在线脚本可以查看 PC 上安装的版本,但没有脚本可以获取使用 Java 的应用程序以及它们拥有的 java 版本。

我发现了一些与使用系统资源管理器接近的东西,我可以在其中查看所有 运行 进程,但我想要的是一个脚本,可以找到这些应用程序及其使用的 java 版本,然后导出结果为 csv 文件或其他东西。

Get-Childitem –Path c:\ -Include java.exe -Recurse -ErrorAction SilentlyContinue | select FullName

我也写了一行代码,显示了很少的应用程序(在我的例子中是 2 个),但我知道还有更多。

一些 java.exe 文件可能隐藏在隐藏文件夹中。要同时列出这些,请添加 -Force 开关。像这样:

Get-Childitem -Path 'C:\' -Filter 'java.exe' -Recurse -Force -ErrorAction SilentlyContinue | ForEach-Object {
    [PsCustomObject]@{
        'Path'       = $_.FullName
        'Version'    = (Get-Command java | Select-Object -ExpandProperty Version)
        'ExeVersion' = $_.VersionInfo.ProductVersion 
    }
}