Где в реестре находятся установленные программы

Мне нужно разработать процесс, который будет определять, установлены ли на компьютере пользователя определенные программы, и если да, то какую версию. Я считаю, что мне понадобится список с местоположением в реестре и ключами, чтобы найти и передать его программе, что не является проблемой. Есть ли лучший способ добиться этого?

Моя первая мысль заключалась в том, чтобы проверить реестр в записях об удалении, но, похоже, в одном из приложений, которые я хочу обнаружить, его нет. Какое стандартное расположение для всех реестров, в которых используются приложения, в которые вносятся записи?

Mark Stahler 10 Янв 2009 в 00:06

9 ответов

Лучший ответ

Пользовательские настройки должны быть записаны в HKCU Software, настройки для конкретного компьютера — в HKLM Software. В соответствии с этими ключами структура [software vendor name][application name] (например, HKLMSoftwareMicrosoftInternet Explorer ) может быть наиболее распространенной, но это всего лишь соглашение, а не закон природы.

Добавляем ярлык запуска программ в контекстное меню через реестр Windows

Многие (большинство?) Приложений также добавляют свои записи об удалении в HKLMSoftwareMicrosoftWindowsCurrentVersionUninstall[app name] , но, опять же, не все приложения делают это.

Это самые важные ключи; однако содержимое реестра не обязательно должно точно отражать установленное программное обеспечение — возможно, приложение было установлено один раз, но затем было удалено вручную, или, возможно, программа удаления не удалила все его следы. Если вы хотите быть уверенным, проверьте файловую систему, чтобы увидеть, существует ли все еще приложение там, где оно указано в записях реестра.

Если вы являетесь членом группы «Администраторы», вы можете проверить куст HKEY_USERS — HKCU каждого пользователя фактически находится там (вам необходимо знать SID пользователя или просмотреть их все).

Читайте также:
Как в Андроид сбросить все настройки программ

Piskvor left the building 13 Янв 2011 в 19:18

Как заполняется список добавления / удаления программ? Более половины перечисленных мною приложений не имеют записей в реестре в указанных выше местах (за исключением приложений Microsoft).

Mark Stahler
10 Янв 2009 в 00:51

Кроме того, пользователи, не являющиеся администраторами, могут установить программное обеспечение, которое не будет использовать HKLM. Это довольно распространенное явление, оно допускает установку для каждого пользователя.

12 Янв 2009 в 18:49

Некоторые установленные пользователем приложения, такие как Chrome, GoToMeeting, Pixie, WinDirStat и WebEx, не записывают в HKLM . Uninstall. HKCU предназначен только для текущего пользователя, поэтому, если вы не являетесь пользователем, он не будет содержать записей для программного обеспечения, установленного пользователем (не администратором).

13 Янв 2011 в 19:00
Piskvor left the building
13 Янв 2011 в 19:20
Не знал о \ live.sysinternals.com tools. Отличный совет! Спасибо.

2 Сен 2018 в 18:46

Для приложения не требуется запись в реестре. Фактически, многие приложения вообще не нужно устанавливать. USB-накопители U3 — хороший тому пример; программы на них просто запускаются из файловой системы.

Автозагрузка Windows в диспетчере задач и в реестре

Как уже отмечалось, большинство хороших приложений можно найти через раздел реестра для удаления. На самом деле это пара ключей, на пользователя и на машину (HKCU / HKLM — Писквор упомянул только HKLM). Однако он (всегда) не дает вам установочный каталог.

Если это в HKCU, то вы должны понимать, что HKEY_CURRENT_USER на самом деле означает «Текущий пользователь». У других пользователей есть собственные записи HKCU и собственное установленное программное обеспечение. Вы не можете этого найти. Чтение каждого HKEY_USERS улья — катастрофа для корпоративных сетей с перемещаемыми профилями. Вы действительно не хотите получать 1000 учетных записей из удаленного офиса [США | Китай | Европа].

Даже если приложение установлено и вы знаете где, оно может не иметь того же понятия «версия», что и вы. Лучший источник — это ресурс «версия» в исполняемых файлах. Это действительно множественное число, поэтому вам нужно найти их все, извлечь ресурсы версий из всех и в случае конфликта решить что-то разумное.

Читайте также:
Не устанавливает программы с Андроид маркета

Удачи. Есть масса способов потерпеть неудачу.

MSalters 12 Янв 2009 в 19:00

Вы можете использовать сценарий PowerShell для просмотра регистров и получения сведений об установленной программе. Приведенный ниже сценарий сгенерирует файл с полным списком установленных программ. Сохраните его с расширением «.ps» и дважды щелкните файл.

# # Generates a full list of installed programs. # # Temporary auxiliar file. $tmpFile = «tmp.txt» # File that will hold the programs list. $fileName = «programas-instalados.txt» # Columns separator. $separator = «,» # Delete previous files. Remove-Item $tmpFile Remove-Item $fileName # Creates the temporary file. Create-Item $tmpFile # Searchs register for programs — part 1 $loc = Get-ChildItem HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall $names = $loc |foreach-object foreach ($name in $names) < IF(-Not [string]::IsNullOrEmpty($name.DisplayName)) < $line = $name.DisplayName+$separator+$name.DisplayVersion+$separator+$name.InstallDate Write-Host $line Add-Content $tmpFile «$line`n» >> # Searchs register for programs — part 2 $loc = Get-ChildItem HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall $names = $loc |foreach-object foreach ($name in $names) < IF(-Not [string]::IsNullOrEmpty($name.DisplayName)) < $line = $name.DisplayName+$separator+$name.DisplayVersion+$separator+$name.InstallDate Write-Host $line Add-Content $tmpFile «$line`n» >> # Sorts the result, removes duplicate lines and # generates the final file. gc $tmpFile | sort | get-unique > $filename
Arivan Bastos 27 Окт 2017 в 21:23

Похоже, что поиск чего-то особенного для установленной программы будет работать лучше, но стоит обратить внимание на HKCU Software и HKLM Software.

Nick 10 Янв 2009 в 00:21

Win32_Product никогда не показывает все, только программное обеспечение, установленное с помощью установщика MSI (насколько я могу судить).

Есть множество программных пакетов, которые устанавливаются через другие установщики, которые там не отображаются. нужен другой способ.

Naikrovek 29 Июн 2010 в 19:02

HKEY_CURRENT_USER Software Microsoft Windows NT CurrentVersion AppCompatFlags Compatibility Assistant Persisted

user10211111 11 Авг 2018 в 07:30

Вы можете использовать MSI API для перечисления всего, что установлено установщиком Windows, но это не будет перечислять все программное обеспечение, доступное на машине. Не зная больше о том, что вам нужно, я думаю, что понятие «установленный» немного расплывчато. Есть много способов развернуть программное обеспечение в системе, от больших сложных установщиков до файлов ZIP и всего, что между ними.

Читайте также:
Как удалить все программы с жесткого диска

Brian Ensink 10 Янв 2009 в 00:40

+1; использование API-интерфейсов MSI вместо того, чтобы вручную преследовать реестр, будет более надежным и менее болезненным для вас в долгосрочной перспективе .

Источник: question-it.com

установленные программы в реестре windows 10

вопрос откуда всетаки панель управления (appwiz.cpl) берет перечь зарегистрированных программ в системе.

Ответы

РЕШЕНИЕ ЗАДАЧИ СОБИРАЕТ ВСЕ!

echo off
CHCP 1251
REG QUERY HKEY_USERS /s /k /c /f Uninstall | find «WindowsCurrentVersionUninstall» > REESTR.LIST
REG QUERY HKLM /s /k /c /f Uninstall | find «WindowsCurrentVersionUninstall» >> REESTR.LIST
REG QUERY HKCU /s /k /c /f Uninstall | find «WindowsCurrentVersionUninstall» >> REESTR.LIST
TYPE NUL > LIST.TXT
for /f «Tokens=1*» %%a in (REESTR.LIST) do reg query %%a /s | FIND «DisplayName» >> LIST.TXT

Все ответы

Помимо HKLM (где фиксируются программы, установленные для всех пользователей в системе) есть ещё ветка, где есть список программ установленных для конкретного пользователя, вот тут, если не ошибаюсь:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionUninstall

UPDATE: Соответственно, если несколько пользователей осуществляло вход на компьютер и устанавливали для себя программы, то поискать их надо в HKEY_USERSSID_Пользователя SoftwareMicrosoftWindowsCurrentVersionUninstall

Как вручную удалить записи из списка в диалоговом окне «Установка и удаление программ»

Все о реестре Regedit / All about registry

Home HKEY_LOCAL_MACHINE Работа с веткой HKEY_LOCAL_MACHINE Где в реестре хранится информация о каталоге Program Files?

Где в реестре хранится информация о каталоге Program Files?

31.10.2012 09:36 Администратор

Информация о каталоге Program Files находится в разделе

Раздел [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion]

Значение «ProgramFilesDir»=»C:\Program Files»

Интересная статья? Поделись ей с другими:

Системный реестр

  • Главная
  • HKEY_CLASSES_ROOT
  • HKEY_CURRENT_USER
  • HKEY_LOCAL_MACHINE
  • Работа с веткой HKEY_LOCAL_MACHINE

Операционные системы

  • Windows
  • FreeBSD
  • Командная строка / Command prompt

Сообщество в VK / COMMUNITY in VK

Вопросы по поводу написанных статей можно обсудить в нашем сообществе в Вконтакте / Questions about written articles can be discussed in our community in Vkontakte

  • Вопросы по поводу написанных статей можно обсудить в нашем сообществе в Вконтакте / Questions about written articles can be discussed in our community in Vkontakte

Источник: regedit.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru