Запрос версии файла с помощью powershell

#powershell #registry

#powershell #реестр

Вопрос:

У меня есть код, который позволяет мне запрашивать одну версию файла одновременно.Как я могу запросить все версии файлов внутри этого раздела реестра или если я просто хочу запросить определенные файлы, включая firefox, chrome и т. Д.?

 (Get-ItemProperty -Path 'HKLM:SoftwareMicrosoftWindowsCurrentVersionApp Pathscommunicator.exe').'(Default)' | ForEach-Object {
    Get-ChildItem -Path $_ | Select-Object -ExpandProperty VersionInfo | Select FileDescription,ProductVersion
} | Format-Table -AutoSize
 

Ответ №1:

Вместо того, чтобы указывать буквальный путь, вы должны запустить Get-ChildItem «папку», в которой содержатся интересующие вас разделы реестра. Результат этого вы передаете в свой фрагмент кода… вот так:

 $Path =  'HKLM:SoftwareMicrosoftWindowsCurrentVersionApp Paths'

Get-ChildItem -Path $Path | 
ForEach-Object {
    Get-ItemProperty -Path $_.PSPath |
    Select-Object -ExpandProperty '(default)' -ErrorAction SilentlyContinue |
    ForEach-Object {
        Get-Item -Path $_ -ErrorAction SilentlyContinue |
        Select-Object FullName -ExpandProperty VersionInfo
    }
} |
    Format-Table -AutoSize
 

Комментарии:

1. Хорошо, мне просто нужны fileversion, productversion и installdate

2. Код, который я опубликовал, является предложением. Конечно, вы можете адаптировать его к своим потребностям по своему усмотрению. Насколько я знаю, в файловой системе или в пути реестра, который вы указали в своем вопросе, нет атрибута «installdate». Вам нужно будет выяснить, где хранится эта информация, и извлечь ее соответствующим образом. 😉