如何获取所有 Windows/系统 DLL 及其版本的列表?

Ron*_*ein 3 windows dll report

我想得到以下报告:

我的 PC 及其子文件夹中 %WIN_DIR% 中的所有 DLL 递归。

对于找到的每个 DLL,我想要它的文件版本、产品版本等(因为它可以通过查看文件的属性找到)。

您知道可以准备此类报告的任何实用程序吗?

PS:我知道我可以编写脚本,但这不是这里的问题,因为这应该作为“下降”程序/可执行文件执行,并且由于安全策略,脚本主机不可用。

感谢您的任何帮助/领导!

Joh*_*n T 5

您可以使用Windows PowerShell

PS C:\Windows> Get-ChildItem c:\windows -include *.dll -recurse | foreach-object { "{0}" -f [System.Diagnostics.FileVersionInfo]::GetVersionInfo($_) }

几行示例输出:

文件:C:\windows\assembly\GAC\Microsoft.JScript\7.0.5000.0__b03f5f7f11d50a3a\Microsoft.JScript.dll
内部名称:Microsoft.JScript.dll
原始文件名:Microsoft.JScript.dll
文件版本:7.10.3052.4
文件描述:Microsoftr JScript 引擎
产品:Microsoftr JScript .NET
产品版本:7.10.3052.4
调试:错误
修补:错误
预发布:错误
私有构建:错误
SpecialBuild:错误
语言:英语(美国)


文件:C:\windows\assembly\GAC\Microsoft.StdFormat\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.stdformat.dll
内部名称:
原文件名:
文件版本:7.00.9466
文件描述:
产品:Microsoft Visual Studio .NET
产品版本:7.00.9466
调试:错误
修补:错误
预发布:错误
私有构建:错误
SpecialBuild:错误
语言:英语(美国)
....

如果您想将其保存到文件中:

PS C:\Windows> Get-ChildItem c:\windows -include *.dll -recurse | foreach-object { "{0}" -f [System.Diagnostics.FileVersionInfo]::GetVersionInfo($_) } > C:\DLL_Versions.txt

这会将所有输出保存到C:\DLL_Versions.txt.