Como posso obter uma lista de todas as janelas / sistema DLL e suas versões?

1

Eu gostaria de ter o seguinte relatório:

Todas as DLLs em% WIN_DIR% no meu PC e em suas subpastas, de forma recursiva.

Para cada DLL encontrada, eu gostaria de ter sua versão do arquivo, versão do produto, etc. (como pode ser encontrado observando as propriedades do arquivo).

Você conhece alguma utilidade que possa preparar esse relatório?

PS : Eu sei que posso escrever um script, mas essa não é a questão aqui, já que isso deve ser executado como um programa / executável "descendente", e um host de script não está disponível devido a segurança política.

Obrigado por qualquer ajuda / liderança!

    
por Ron Klein 10.01.2010 / 13:01

1 resposta

3

Você pode usar o Windows PowerShell :

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

algumas linhas de saída de exemplo:

File:             C:\windows\assembly\GAC\Microsoft.JScript.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.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)
....

Se você quiser salvá-lo em um arquivo:

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

isso salvaria toda a saída em C:\DLL_Versions.txt .

    
por 10.01.2010 / 13:13