
Расширяя наКак удалить остаточные следы удаленного программного обеспечения из реестра?-- каждый раз, когда я удаляю программу, а затем ищу ее через RegEdit, она все еще там!
Почему большинство приложений Windows так стремятся оставить крошечные следы себя в реестре? Виновата ли в этом Windows или разработчики?
решение1
Потому что это невозможно.
Реестр имеет несколько корневых узлов, но интерес представляют только два из них:LocalMachineиТекущий пользователь. Обычно программа установки записывает значения в LocalMachine, а запущенная программа записывает ТОЛЬКО в CurrentUser (на самом деле, если программа установки не вмешивается в разрешения, запущенная программане мочь(Запишите в LocalMachine.)
Хотя хранить остатки в LocalMachine лень, как указано в других ответах, очистить часть User невозможно.
Если программа установлена на компьютере (а таких большинство) и ее используют несколько пользователей, что должен сделать деинсталлятор? Он может безопасно удалить пользовательские настройки текущей учетной записи, но текущая учетная запись может быть не вашей учетной записью. (Это происходит, если вы запустили деинсталлятор из учетной записи, отличной от учетной записи администратора, а затем ввели учетные данные учетной записи администратора — теперь установка выполняется под этой учетной записью, а не под первой).
А как насчет других пользователей? Он может попытаться перечислить всех пользователей, но их ключи реестра могут быть не загружены. (Windows ленив и загружает только то, что ему нужно.)
Но вам даже не стоит пробовать это. Если вы используете перемещаемые профили, например, для терминальных служб, а затем удаляете все настройки при удалении, вы можете действительно все испортить и удалить то, что на самом деле все еще используется.
Терминальный сервер — это, по сути, одна машина под управлением Windows, на которой одновременно работают несколько пользователей и используют приложения.
Допустим, у вас есть два терминальных сервера, на которых запущено одно приложение. Вы удаляете приложение на TS1, теперь все настройки для всех пользователей на TS2 удалены, потому что у вас перемещаемые профили. Упс.
То же самое относится и к файлам в пользовательских каталогах.
При настройке программы моей компании я удаляю данные, относящиеся к каждому компьютеру, но не трогаю данные, относящиеся к каждому пользователю, даже того пользователя, который в данный момент запускает установку.
решение2
Причин тому много, однако это не вина Microsoft или операционных систем Windows.
Ниже приведен список некоторых случаев и причин оставления записей в реестре:
Плохое программирование - Разработчик не написал деинсталлятор приложения должным образом, и записи реестра остались. Кроме того, деинсталлятор может не иметь/не использовать надлежащие разрешения для удаления записей реестра. Также может быть, что существует более одного приложения, которое использует эти ключи. Например, два приложения от одного разработчика, которые записывают в одни и те же ключи.
Оставлено нарочно- Как было отмечено в одном из комментариев, эти записи могли быть оставлены намеренно. Некоторые приложения имеют пробный период, и по истечении этого периода вы можете решить удалить приложение. Если вы решите переустановить приложение позже, эти ключи предоставят приложению информацию о том, когда оно было установлено. Кроме того, некоторые разработчики могут решить оставить эти ключи на случай, если вывыбиратьпереустановить приложение. Если разработчик использовал ключи реестра для хранения ваших настроек, он мог их там оставить, так что при повторной установке все ваши настройки сохранятся. По большому счету, ключи реестра занимают всего несколько байтов.
Стоит ли удалять ключи? Это зависит от обстоятельств. Реестр Windows — опасное место для возни. Вы можете непреднамеренно сломать свою систему. Оставление лишних ключей не повредит системе. Некоторые люди скажут, что очистка/дефрагментация реестра ускорит вашу систему, но это былодоказано ложнонеоднократно.
Если вы действительно хотите избавиться от этих программ, есть несколькодеинсталляторинструменты, которые могут удалить все следы программы. Эти программы будут следить за установщиком другой программы и записывать все действия, выполненные в файловой системе и реестре, а затем полностью удалять эти действия. Одна из проблем с этими инструментами заключается в том, что этовозможныйчто они могут удалить то, что вы хотели бы сохранить.
решение3
Чтобы избавиться от остатков реестра, попробуйте использовать IOBIT uninstaller. Это, безусловно, лучший деинсталлятор из всех. Кроме того, он бесплатный. Я использую его все время. У него есть мощная функция удаления, которая идет прямо туда, где находится оставшийся ключ реестра, нажмите на флажок, когда появится запрос, и ключи реестра удалятся. Iobit поставляется с другими программами, просто используйте деинсталлятор, чтобы избавиться от них