Я хотел бы иметь следующий отчет:
Весь DLLs в %WIN_DIR % в моем ПК, и в его подпапках, рекурсивно.
Для каждого найденного DLL я хотел бы иметь его версию файла, версия продукта и т.д. (поскольку это может быть найдено путем рассмотрения свойств файла).
Вы знаете какую-либо утилиту, которая может подготовить такой отчет?
PS: Я знаю, что могу записать сценарий, но это не вопрос здесь, так как это должно быть выполнено как программа/исполняемый файл "спуска", и хост сценария недоступен из-за политики безопасности.
Спасибо за любую справку/вывод!
Можно использовать Windows PowerShell:
PS C:\Windows> Get-ChildItem c:\windows -include *.dll -recurse | foreach-object { "{0}" -f [System.Diagnostics.FileVersionInfo]::GetVersionInfo($_) }
несколько строк примера производят:
File: C:\windows\assembly\GAC\Microsoft.JScript\7.0.5000.0__b03f5f7f11d50a3a\Microsoft.JScript.dll InternalName: Microsoft.JScript.dll OriginalFilename: Microsoft.JScript.dll FileVersion: 7.10.3052.4 FileDescription: Microsoftr JScript Engine Product: Microsoftr JScript .NET ProductVersion: 7.10.3052.4 Debug: False Patched: False PreRelease: False PrivateBuild: False SpecialBuild: False Language: English (United States) File:C:\windows\assembly\GAC\Microsoft.StdFormat\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.stdformat.dll InternalName: OriginalFilename: FileVersion: 7.00.9466 FileDescription: Product: Microsoftr Visual Studio .NET ProductVersion: 7.00.9466 Debug: False Patched: False PreRelease: False PrivateBuild: False SpecialBuild: False Language: English (United States) ....
Если требуется сохранить это в файл:
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
.