#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». Вам нужно будет выяснить, где хранится эта информация, и извлечь ее соответствующим образом. 😉