На форуме OSZone модератор DJ Mogarych задал вопрос на тему удаления программ по сети. Команда wmic не видела ряд приложений, отображаемых в элементе панели управления «Установка и удаление программ». Нужно было их найти!
По условиям задачи, у вас нет возможности работать в системе интерактивно, поэтому нужно сформировать команду для тихого удаления программы. Ее выполнение – уже дело техники или инфраструктуры (есть psexec). Но сначала давайте познакомимся со способом, который ветеран OSZone применяет для решения задачи.
[+] Сегодня в программе
Сведения из класса WMI Win32_Product
Этот способ базируется на инструментарии управления Windows (WMI). Сведения об установленных программах содержатся в классе Win32_Product, поэтому можно удалять программы из командной строки или PowerShell.
CMD
Коллега по форуму пользуется командaми из арсенала консоли WMI. Вот так можно посмотреть список установленных программ наряду с основными сведениями о них:
wmic product get name,version,vendor
Зная имя программы, можно тихо удалить ее:
wmic product where name="Имя программы" call uninstall /nointeractive
PowerShell
Командлет Get-WMIObject вам хорошо знаком. Список программ:
Get-WmiObject Win32_Product | ft name,version,vendor,packagename
Удаление программы:
(Get-WmiObject Win32_Product -Filter "Name = 'Имя программы'").Uninstall()
Недостаток способа
Этот подход сопряжен с большим ограничением, которое отчасти породило вопрос на форуме. Элемент панели управления «Установка и удаление программ» отображает больше приложений, чем выводят wmic и PowerShell.
В списке WMI присутствуют только приложения, установленные с помощью Windows Installer.
Это не совсем очевидно, но я специально добавил в первую команду PowerShell вывод имен пакетов — все они MSI. Инструментарий управления Windows спроектирован в том числе и для управления состоянием ПО, но далеко не все программы используют установщик Windows, к сожалению.
Сведения из реестра Windows
Зато все нормальные программы при установке должны записывать сведения в реестр, откуда их извлекает элемент панели управления appwiz.cpl. Конкретный раздел реестра хорошо известен и давно задокументирован в статье KB314481 (ее я всегда нагугливаю запросом uninstall registry).
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
У каждого приложения там свой подраздел, именем которого по воле разработчика является название или идентификатор программы. Команда для удаления записана в параметре UninstallString – именно она вызывается из панели управления.
Заметьте, что команда открывает графический интерфейс деинсталлятора, но не удаляет программу автоматически, как в случае со способом WMI. Поэтому нужно еще выяснить ключ тихой установки/удаления, зависящий от типа установщика. Зачастую, это /s или /silent, и тогда команда для автоматического удаления выглядит примерно так:
"C:\Program Files\VideoLAN\VLC\uninstall.exe" /s
Но и у этого способа есть нюанс – в обсуждаемом разделе реестра могут отображаться не все программы. Например, я не нашел там установленный uTorrent (проверьте у себя).
Откуда панель управления о нем знает? К ответу можно прийти поиском по реестру или просто догадаться, но лучше сразу взять простой и удобный инструмент — Process Monitor.
Быстрый мониторинг реестра с помощью Process Monitor
Давайте выясним, откуда «Установка и удаление программ» берет сведения об установленном uTorrent. На панели инструментов Process Monitor и Process Explorer есть мишень, помогающая точно определить процесс.
- Перетяните мишень из Process Monitor на окно панели управления.
- В панели управления выполните поиск программы, чтобы спровоцировать запрос в реестр.
- В Process Monitor нажмите Ctrl + F и поищите имя программы или издателя (я искал torrent).
- Перейдите в редактор реестра сочетанием клавиш Ctrl + J.
Process Monitor автоматически определит процесс окна и отфильтрует по нему результаты мониторинга, в чем легко убедиться, открыв список фильтров сочетанием Ctrl + L. В данном случае за руку был схвачен процесс explorer.exe с PID 3704.
Обратите внимание на имя раздела реестра. Это пользовательский раздел HKEY_CURENT_USER, а остальной путь идентичен системному разделу HKLM, который рассматривался выше.
Помимо uTorrent в этом разделе у меня отметился браузер Яндекс и одно приложение Microsoft, пожелавшее не афишировать свое название в имени подраздела. Заметьте, что Process Monitor помог найти нужную информацию моментально!
Почему приложения записывают сведения в разные разделы реестра
Для эксперимента выполните повторную установку uTorrent или любого другого приложения из списка HKCU. По ходу дела вы не увидите запроса UAC. Приложению для установки и работы не нужны права администратора, поэтому нет необходимости ставить его в Program Files и вносить изменения в HKLM. Оно устанавливается в профиль и пишет сведения только в раздел реестра HKCU.
Применительно к удалению тут есть еще один нюанс – программа установлена в профиль конкретного пользователя, что видно на рисунке выше (Users\Vadim). Поэтому при дистанционном удалении команда должна содержать абсолютный путь, если только не выполняется от имени этого пользователя.
Традиционный же способ установки программ сопряжен с требованием прав администратора, сохранением файлов приложения в Program Files и записью сведений в HKLM. Даже если технически в этом нет нужды, разработчики могут идти навстречу администраторам, помогая им контролировать установку программ на ПК и проводить инвентаризацию ПО.
Мне попадались приложения, в которых установщик ориентируется на текущие права пользователя – администратору показывает запрос UAC, а пользователю сразу ставит в профиль.
Литература
Для дальнейшего изучения вопроса вам могут пригодиться подобранные мной материалы. Открывает список статья, которой скоро исполнится 10 лет. Она еще из первой волны материалов на тему автоустановки, но вполне актуальна.
- Типы инсталляторов
- Using a Command Line to Uninstall Software on Remote PCs – инструкция по удалению программ с помощью wmic
- Use PowerShell to Quickly Find Installed Software – разбор побочного эффекта при опросе класса Win32_Product и скрипт PowerShell для извлечения сведений из раздела реестра Uninstall (опять же, только HKLM)
- Use PowerShell to Find and Uninstall Software – Эд Уилсон мучает класс Win32_Product при помощи своего модуля
Дискуссия
Я решил рассказать про мишень после того, как дважды за вполне праздничный день воспользовался ей сначала в Process Explorer, а затем в Process Monitor. Такие инструменты значительно упрощают изучение системы, и в нашем случае ответ на совсем неочевидный вопрос нашелся очень легко. У меня почти два десятка записей об утилитах sysinternals, и почти все задачи решаются в 2-3 хода.
Судя по форуму и почте, новогодние праздники многие читатели посвятили [пере]установке Windows, и я не исключаю появления небольшой заметки по мотивам вопросов. Обычно, в каникулы я создаю несколько статей и ставлю их на будущие даты, но в этот раз не получилось. Я не так много времени проводил за ПК и даже не сумел подвести итоги велосезона оТ-о Впрочем, идей и набросков только прибавилось :) Однако я поковырял блог и помимо прочего прикрутил поиск в мобильное меню, о чем вы меня просили.
А вы чем высокотехнологичным занимались в каникулы? Готовы к Windows 10 Consumer Preview через неделю? :)
strafer
Невиндово перенёс линукс с винта на свежекупленный ссд, по пути освоив разметку GPT и загрузку через UEFI.
До велостатьи в конце года руки так и не дошли? :)
Vadim Sterkin
Не дошли и в начале, я ж пишу ^^ :)
strafer
Да, сперва пропустил, перечитал и увидел. Ну ждём-с.
Vlad
Сегодня получил в Ситилинке по гарантии новый WD Black WD2003FZEX, 2Тб, HDD, SATA III, 3.5″, старый унёс Windows 10-64 b9879. Установлю из образа, буду ждать часа Ч. B9901, мне кажется тупиковой, сейчас на ней……может….ошибаюсь….время покажет
Слава
Вадим, любопытную тему вы затронули.
Мне давно интересно, почему есть необходимость в разного рода утилитах типа Your Uninstaller и т.п.
Почему даже инcталятор Windows оставляет после себя хвосты в реестре, не удаляет за собой пустые и не очень папки, файлы, ассоциации файлов.
Vadim Sterkin
Почему молоток забивает гвозди криво? Установщик Windows — это инструмент. Им должен уметь пользоваться создатель программы. Вы можете привести конкретные примеры программ, после установки которых остаются полные папки и ассоциации файлов?
Меня часто спрашивают, но я так и не сподобился написать статью, ибо… бесполезно :) Но я считаю, что в таких утилитах нет необходимости. Есть два варианта:
1. Делается снимок (Ashampoo Uninstaller, если не изменился за 10 лет, что я его не брал в руки :). Откуда снимку знать, что произошло после установки? Может, другие приложения пользуются этой папкой или пользователь туда файлы сохранил.
2. Ведется игра в угадайку. Сначали вызвали штатный деинсталлятор, потом за ним начали чистить, руководствуясь какими-то своими принципами. Какими, куда именно полезли? Зачем мне пускать еще одну программу в систему, чтобы она удаляла мне что-то с диска или из реестра?
strafer
Видимо проблема в том, что слишком многое позволяется создателям программ, а с большими возможностями приходит большая ответственность, которую не все хотят/могут нести. В итоге заложником ситуации становится пользователь.
Слава
В первую очередь приложения от Adobe и Google оставляют много следов.
А также ряд программ устанавливающих драйвера, не удаляют их за собой после установки.
Яркий пример, у AMD есть отдельная утилита, чтобы удалить все следы драйверов. Но почему это не делает их стандартный деинсталятор?!
Часто пользуюсь Your Uninstaller! Pro, он всегда в конце показывает какие папки и ключи реестра нашел и стоит ли их удалять.
По поводу своих алгоритмов, вы правы. Например, намедни разбирался с проблемами вывода DTS звука на SPDIF (кстати, в этой связи у меня к вам позже будет вопрос). Так вот, у Revo Uninstaller были паттерны для удаления K-Lite Codec Pack. (думал, что проблемы в нём, а оказалось в настройках Windows).
Меня эти две утилиты выручают, когда надо разобраться с заглючившим софтом, ибо удаление-установка стандартными средствами не всегда решает проблему.
Конечно, я создаю контрольную точку восстановления системы, перед манипуляциями. Даже не смотря на то, что эти утилиты тоже создают их при каждой операции. Главное, когда всё стабильно заработает, не забыть удалить эту массу контрольных точек. =)
Вадим, так может стоит написать статью о том, почему вы считаете, что не нужно пользоваться подобными утилитами. Думаю, дискуссия на этот счёт будет жаркая и доказательная, с каждой стороны.
Vadim Sterkin
Слава, я не пользуюсь универсальными деинсталляторами, потому что:
а) Мне практически нечего удалять. Я не ставлю всякое засоряющее и конфликтное барахло вроде K-lite Codec Pack, я редко ставлю новые программы, у меня давно устоялся набор. А если надо поэкспериментировать, есть виртуалка, которая мало отличается от основной системы по производительности.
б) При отсутствии проблем удаление ничего не дает. Если есть проблема, надо ее решать по факту, а не повальным удалением.
Я в блоге пишу о том, чем пользуюсь сам, и не пишу о том, чем не пользуюсь. Поэтому я не буду тут сидеть и рассуждать, почему вам это не нужно. Вам нужно — пользуйтесь.
Слава
а) Вадим как вы смотрите фильмы в MKV контейнере со звуком DTS без сторонних приложений?
Возможно, вы не слушаете многоканальную музыку или HiRes Stereo. Но Windows из коробки этого тоже не может.
б) Удаление лишних «хвостов» освобождает драгоценное место на жестких и твердотельных дисках. Не у всех дома стоит NAS.
Грубо вы реагируете на просьбу. Я не настаивал, а лишь предложил.
Vadim Sterkin
а) Я использую сторонние плееры с кодеками, но я не устанавливаю кодек-паки
б) —
в) Я не грубил, вам показалось. Попробуйте перечитать ответ без эмоций.
Ника Гурджумелидзе
Вот как раз с K-Lite Codec Pack проблем и не возникает. Он за собой убирает хорошо. А конфликтует он у тех, кто ставит зоопарк кодек паков вместо одного.
Vadim Sterkin
Ника, мне все равно, хорошо он убирает или плохо. Я просто не вижу смысла интегрировать в систему кодеки, когда можно обойтись без этого.
Ника Гурджумелидзе
Вадим, я к тому, что это плохой пример.
Vadim Sterkin
Ника, это хороший пример установки в систему ПО, без которого можно прекрасно обойтись.
strafer
А заголовки «В чем риск работы в устаревшей операционной системе», «Можно ли работать в Windows без антивируса» и «6 ошибок людей с маленьким системным разделом» говорят об обратном. Или вы без антивируса работаете в устаревшей операционной системе, установленной на маленьком системном разделе? :)
При этом в статье «Как свободное место на SSD влияет на его производительность и срок службы» вы отмечаете, что свободное место на SSD не всегда бывает лишним.
Vadim Sterkin
Попытка придраться к словам засчитана.
strafer
Ну в первой части поста что-то такое было, да.
Что касается части второй, то не пытаетесь ли вы выдать баг за фичу?
Хотя это конечно не баг как таковой, а попросту дурацкое архитектурное решение.
Vadim Sterkin
Я не понимаю, о чем вы говорите. Если вас не затруднит, ведите обсуждение по теме этой записи. От этой просьбы невозможно отказаться.
strafer
Успокойтесь, оно касается темы записи, т.е. установки/удаления программ.
Очистка системы при удалении отдана на откуп создателю программы. Если он не смог, не захотел или более того — злонамеренно захотел, то после процедуры удаления на носителе остаются файлы, которые не используются ни системой, ни непосредственно пользователем. Бесполезный мусор, занимающий место.
У меня язык как-то не поворачивается назвать это элегантным архитектурным решением.
Vadim Sterkin
Я спокоен. Приведу вам простой пример.
1. Человек установил браузер Google Chrome
2. При первом запуске был создан профиль в %userprofile%\AppData\Local\Google\Chrome
3. Человек пользовался браузером полгода, потом возникла какая-то проблема, он решил его переустановить — удалил, поставил заново.
Вопрос: с точки зрения удобства пользователя и здравого смысла, следует ли Google удалять с диска папку AppData\Local\Google\Chrome после удаления браузера?
Это простой вопрос «Да/Нет», но я уверен, что вы сможете написать на эту тему целый опус.
strafer
Если просто «да/нет», то разумеется нет.
Причина проста: это не относится к процессу установки/удаления программы. По аналогии: стоит ли удалять все офисные документы на подключенных в данный момент носителях в процессе удаления мс офиса? А что делать, если некоторые документы оказались на отключенных в данных момент носителях или вовсе уплыли куда-то в инет?
Это не файлы, создаваемые на диске при установке программы, они созданы в процессе последующей работы уже установленной программы. И это, очевидно, к теме не относится. Могу я попросить вас следовать вашей же безотказной просьбе вести обсуждение только по теме этой записи?
Vadim Sterkin
Вы не уточнили, о каких файлах речь, отсюда и мой пример. Тогда вам нужно привести конкретные примеры программ со списком папок и файлов, которые они создают, но не удаляют, если тут же удалить программу. Желательно штук несколько, чтобы проверить. Переливать из пустого в порожнее я не буду.
strafer
Я считал, что непричастность пользовательских данных к вопросу установки/удаления программ очевидна для нас обоих.
Но если подумать, ваш предыдущий пост только льёт воду на мою мельницу, расширяя проблему. Ведь действительно, в процессе деинсталляции может иметь место не только неудаление ранее установленных файлов, но и (и что гораздо хуже) удаление пользовательских данных. Для этого вовсе необязательна злонамеренность, достаточно, как следует из вами вышенаписанного, не уметь пользоваться инструментом «установщик Windows».
Моя позиция заключается не в недовольстве какими-то отдельными конкретными программами, а в критике подхода в целом, когда программа инсталляции самостоятельно принимает решения.
Вы же, вместо того, чтобы признать порочность такого подхода (я понимаю, что изменить его вы не в силах), начинаете выступать его адвокатом и пытаетесь увести разговор в частности.
Vadim Sterkin
Я считаю ваши тезисы и обвинения как минимум странными, поэтому отказываюсь от дальнейшей дискуссии.
strafer
Т.к. вместо попытки прояснения тезисов вы избрали отказ от дискуссии, скорее всего тезисы вам как раз вполне понятны, просто есть желание сделать хорошую мину при плохой игре.
Ваше право.
Vadim Sterkin
Извините, у меня сейчас нет времени на пространные дискуссии. В этой короткой записи есть конкретика с примерами, поэтому если у вас есть то же самое (что плохо, как должно быть, где сделано правильно), я с удовольствием прочту.
strafer
Что плохо: (де)инсталлятор неподконтролен системе. Он может писать и удалять что угодно и куда/где угодно. То, насколько он правильно (т.е. ожидаемо) будет работать — целиком на совести разработчика (как самого инсталлятора, так и устанавливаемой программы, который его настраивал). Если он профессионален, аккуратен — всё будет работать идеально. Если нет — в лучшем случае после удаления программы могут остаться бесполезные файлы, в худшем могут пострадать пользовательские данные.
Как должно быть: предназначенный для этого дела модуль операционной системы тоталитарно контролирует процесс установки и удаления. Дистрибутив программы не является исполняемым файлом, а просто содержит файлы программы плюс служебные файлы, содержащие описательную часть, электронные подписи, зависимости, список необходимых программе ключей реестра, какие-то карты вариантов установки и т.п. Установочный модуль ОС читает и анализирует служебные файлы, проверяет конфликты, после чего распаковывает и записывает файлы, создаёт ключи реестра. Все эти действия записываются в базу данных.
Соответственно можно запретить запись в какие-либо каталоги или ветви реестра (даже если пользователь имеет право за запись туда), либо сделать несколько зон доступа и в интерфейсе выводить сообщения пользователю с запросом подтверждения.
Во время жизни программы в системе можно в любой момент узнать куда что было записано при установке любой программы.
Когда наступает пора удалить программу, всё возвращается в исходное положение: установочный модуль, подглядывая в базу данных, удаляет созданные при установке файлы и ключи реестра.
Насколько припоминаю, часть этих действий делает ряд программ-оболочек установки, где-то в комментах пролетало знакомое название даже. По их образу и подобию в этом гипотетическом установочном модуле можно обеспечить обратную совместимость с уиллионом уже существующих дистрибутивов с «классическими» установщиками.
Где сделано правильно: в подавляющем большинстве бинарных дистрибутивов линукс, в более широком охвате — возможно в большинстве бинарных *никсов.
Vadim Sterkin
Спасибо за развернутый комментарий. Как я и думал, все сведется к модели Linux и ее преимуществам. Я все-таки оставлю техническую часть без комментариев, поскольку превращения Windows в Linux в ближайшее время не предвидится (за исключением доли рынка :).
strafer
При чём тут какая-то «модель Linux»? Это модель тоталитарного контроля за установкой. Да, она используется в большинстве линуксовых пакетных менеджеров, но забавно, что вы это использовали как повод для отказа от дискуссии :)
Ну и вообще, микрософту не привыкать коммуниздить фичи из мира опенсорса :)
Именно поэтому в винде появляется трёхмерная визуализация интерфейса, многостоловость, пилится консоль и создаётся пакетный менеджер?
Это можно интерпретировать в обе стороны.
Vadim Sterkin
Я не понимаю, чего вы от меня хотите. Размахивать флагом линукс в этом блоге — ваша прерогатива. Моя — объяснять, как работает Windows. Объясняю упрощенно (конечно, вы все это знаете, просто вам скучно и вы требуете ответов).
В Windows процессы получают права, которые имеет пользователь — полные (при повышении или отключенном UAC) или ограниченные. Соответственно, если пользователь запустил процесс, тому позволено делать все что угодно в рамках его прав. Этих прав может быть недостаточно, чтобы нарушить работу системы, потому что важнейшими объектами владеют SYSTEM и TrustedInstaller. Но их точно хватает, чтобы удалять любые файлы в профиле пользователя. См. также [видео] Почему не всегда работает перетаскивание файлов при включенном UAC
Так работает Windows, и о грядущих изменениях в этом аспекте мне ничего неизвестно (перечисленное вами — мелкая косметика, по совместительствую повышающая ЧСВ линуксоидов). Главные изменения уже произошли — это приложения из Магазина, которые жестко ограничены в правах. Это единственный путь в Windows, если вас не устраивает модель классических приложений.
Аминь.
strafer
Даже уже не знаю как мне написать, чтобы вы поняли мою мысль.
Не было нужды столь подробно описывать права в винде: во всех многопользовательских системах логика работы в этом отношении в первом приближении идентична. Я веду речь не за права доступа вовсе.
Достаточно перечитать мой пост https://www.outsidethebox.ms/17408/comment-page-1/#comment-28051 и понять, что речь в первую очередь идёт о скрупулёзном учёте в процессе установки программ и не менее скрупулёзной подчистке при удалении. При этом установкой/удаление занимается модуль ОС и можно ли что-то куда-то писать — решает он (и необязательно руководствуясь только правами инициировавшего установку пользователя) и на это разработчик устанавливаемой программы повлиять не может.
Что касается ЧСВ линуксоидов, то его уж скорее повышает то, что у них, в отличие от, управление файлами пакетов в полном порядке. Всегда можно посмотреть какие файлы есть в составе пакета. Всегда можно узнать какому пакету принадлежит любой файл. И если удаляется ранее установленный пакет, будьте уверены, что на диске от него не осталось ни одного файла, кроме разве что конфигов в /etc, если у него таковые в составе были.
Ну, если говорить о том аспекте, о котором говорю именно я, то возможно что-то собираются поменять, я о http://www.howtogeek.com/200334/windows-10-includes-a-linux-style-package-manager-named-oneget (веселит, что сторонний сайт не стесняется прямо в заголовке без обиняков сравнить нововведение с линуксовыми аналогами). Правда в статье (как и на офсайте) налегают на простые и быстрые поиск и установку пакетов (ещё одно преимущество централизованного управления), и на скорую руку я не нашёл ничего по вопросу учёта файлов и чистового удаления, но думаю это прилагается, т.к. установщик судя по всему тоталитарен и рассматривает программные пакеты только как данные.
Ну если совсем утрируя, то чтобы вы согласились с моим первоначальным суждением о кривости виндового подхода к вопросу установки/удаления приложений.
А получилось, что вы не просто со мной несогласны (что, разумеется, всегда может случиться) — вы всё ещё не понимаете точку зрения оппонента. В таких условиях диалог закономерно разрастается в размерах.
Александр [Маздайщик]
Меня недавно позабавил Гугл. Установил Google Drive, вместе с ним установилась служба Google Update для обновления гугловских программ. Облако не понравилось, снёс. Служба осталась (причём ЕМНИП она отсутствует в «Установке и удалении программ»). В итоге в фоне висит служба, которая время от времени обновляет себя — такая вот «вещь в себе». :-)
Conqueror Gun Carriage
Не пробывал Ashampoo Uninstaller. Зато тестил удалялки, а именно, вначале устанавливался софт по дефолту, как обычно полагается с довеском мусора.
Revo Uninstaller Pro частично норм справился с задачей и оставил мало следов.
А вот его соседи Reg Organizer, Soft Organizer, Advanced Uninstaller PRO, GeekUninstaller, Uninstall Tool, Your Uninstaller! Pro — с задачей не справились! Система была сильно замусорена.
Reg Organizer и Soft Organizer — вообще систему уложили. Хорошо, что это в песке было. Хотя, пробывал на реальной их от Комодо следы почистить — систему уложил. Хотя, аккуратно юзал. Поэтому крайне их НЕ рекомендую!!!
Есть одно но… Я удалялкам очень не доверяю. Хотя, хочется норм софт по удалению, чтобы потом не мучатся.
Вот взять Комодо. Его удаляешь, утилитой его проходишь, а он не ставится — ошибка. Я к тому, что я например хочу удалить его так, чтобы в системе следов его не осталось, как будто его и не устанавливал.
Хочу сменить Комодо на что-нить другое, но как быть, чтобы он в системе не остался?
Вот что посоветуете?
Vadim Sterkin
Мои советы тут: Как настроить Windows, чтобы переустанавливать ее как можно реже (3 и 4)
Conqueror Gun Carriage
у меня 8.1 х64 лицензионная, а там про 7-ку
Vadim Sterkin
Сожалею, что вы не осилили дальше первого абзаца.
Conqueror Gun Carriage
Ashampoo Uninstaller. По ходу лучше использовать перед установкой и удалением программ?
Ника Гурджумелидзе
Эти хвосты никак не влияют на работу системы. Но если очень хочется их подчистить:
1. Удаляем программу штатными средствами.
2. Проверяем наличие оставшихся от неё папок в Appdata, ProgramData, Program Files и т.д.
3. Берем в руки Autoruns и смотрим оставшиеся от программы библиотеки, драйвера (коробочные версии игр часто оставляют всякие дрова для защит от копирования) и прочее. Удаляем, но осторожно.
Вот в принципе и всё. Напомню, всё это можно и не делать — система как работала так и будет работать.
Слава
Ника, многое можно сделать ручками, но это занимает много времени.
Например, CCleaner намного эффективнее собирает мусор в системе, чем я бы это делал каждый раз ручками. А у штатной «Очистки системы» лишь один плюс в сравнении — сжатие базы установленных обновлений.
Vadim Sterkin
Слава, это просто вы знаете только про один плюс. Между тем, утилита может и драйверы ненужные удалить, и старую установку Windows — привет всем клинерам.
Слава
Вадим, много лет пользуюсь названным софтом. Не только на своём ПК, но и на компьютерах родственников и знакомых. Ни разу не было проблем.
Есть ещё CCEnhancer, дополнения поддерживаемые свободным сообществом.
И то если с некоторыми из них есть риск, выводится предупреждение.
Vadim Sterkin
Слава, на меня мантра «ни разу не было проблем» применительно к чистильщикам и деинсталляторам не действует, потому что я уже 13й год на OSZone вижу их жертв. Мантра «свободное сообщество» тоже не действует, сразу HeartBleed приходит на ум :)
Если вы видите великую пользу в конкретных и распространенных задачах, напишите статью — я опубликую ее. Заголовок и структуру пришлите в почту, обсудим.
strafer
Что-то сразу не заметил этой фразы.
Есть какая-то нехорошая корреляция между свободным сообществом и ошибками в программах?
Насколько я понял, свободное сообщество ошибку всё-таки нашло до какой-либо масштабной эксплуатации и никаких серьёзных взломов не произошло. А может и вообще никаких не произошло вовсе. Так что пример какой-то неубедительный.
Vadim Sterkin
Корреляция в другом. В подобных заявлениях «свободное сообщество» подается как некий знак качества, с чем я не согласен. Я бы не хотел дальше уходить от темы и обосновывать приведенный пример. Не думаю, что надо разжевывать.
strafer
Ну так пример для знаковости качества как раз — ошибку нашли, методику исправления предоставили, баловства не вышло. Одни плюсы.
Conqueror Gun Carriage
CCEnhancer. Хорошо бы по ней статью, чтобы знать, что можно там выставлять для чистки и что нельзя и почему. Спс.
Ника Гурджумелидзе
Ccleaner, Wise Disk Cleaner и прочие — не очистят так, как это делают прямые руки. Драйвера ни одна утилита автоматом не снесет, а если и снесет, то с большой долей вероятности что-то поломается. Ключи реестра вообще лучше не трогать (за исключением случаев, когда надо подправить/удалить конкретный ключ для решения проблемы, и то надо резервную копию делать перед любыми действиями), а если и трогать, то явно не утилитами. Из AppData ни одна утилита не умеет папки сносить на совесть, все что-то оставляют или лишнее забирают. И вообще, хвосты чистить никто не заставляет. Они никак не мешают работе Windows. Ну разве что драйвера иногда могут загрузку Windows замедлять, у меня были драйвера от MediaTek устройства, которое я подключал где-то полгода назад и они мне больше не нужны — вот их я снес через AutoRuns, а остальное лучше вообще не трогать и будет счастье.
Proverka
Какой же кайф, получать нужные статьи в нужное время ;) И почему то тут это происходит довольно часто!
Alexiz Kadev
К Consumer Preview готовы ещё со времён Tech Preview =)
Вот интересно, прислушаются ли в Микрософте к тому, что сообщают через обратную связь пользователи?!
P.S. В Windows 10 TP и свои пожелания оставляю или голосую за аналогичные, добавленные до меня. И если хотя бы половину того, что там есть реализуют, будет интересно.
Vadim Sterkin
Конечно, прислушаются. Уж ко всем самым популярным запросам точно. К вашему одному прислушаются, а потом к 10 другим, от которых вы на стенку полезете :)
Billy Kid
Доброе время суток.
Не испытываю нужды в поисках «хвостов», т.к. не занимаюсь бесконечным удалением/установкой программ. Обхожусь устоявшимся минимальным набором приложений, а точнее почти отсутствующим набором. Правда, Sysinternals все-таки имеется. Все остальное, необходимое лично мне, позволяют сделать приложения и сервисы MS.
В каникулы произвел сохранение мультимедийного личного содержимого. Но использовал для этого не архивацию Windows, и не Историю файлов. Решил использовать для этой цели Windows Media Player и его возможности синхронизации с подключенными носителями. На данный момент посчитал это весьма удобным. Синхронизировал исключительно мультимедию(видео, фото, аудио). При последующем подключении устройства архивации на него переносятся изменения произошедшие с содержимым, такие как добавление/удаление информации, а также изменение метаданных.
Зы. По поводу ваших слов о кодеках и их нужности(ненужности). Если вам необходимо лишь воспроизвести видеофайл, то достаточно и дополнительного плеера. А если нужно его отредактировать? Значит нужно ставить еще и программу-редактор. Я например использую Movie Maker как для редактирования, так и для извлечения содержимого, например с DVD. Т.е. мне не нужна куча стороннего ненужного софта. Обхожусь инструментами Windows.
Спокойной ночи, с добрым утром.
Vadim Sterkin
Хорошее замечание насчет кодеков. Думаю, что всевозможные кодек-паки ставят как раз те, кому не надо ничего редактировать. Вообще, ставят всякое барахло подряд, и вот свежий пример — новичок поинтересовался стандартным набором ПО и в обоих предложенных списках (сообщения 4 и 12) минимум половина программ не нужна.
strafer
Справедливости ради, не все плееры всегда одинаково полезны, в частности упомянутый вами на форуме VLC.
Столкнулся недавно сам, приобретя аудиосистему, умеющую самостоятельно декодировать звук из разных форматов Dolby и DTS. Выяснилось, что VLC очень ревнив и категорически не любит отдавать декодирование наружу, даже если в настройках прямо указать цифровой выход и поставить галку использования SPDIF. Гугление рассказало, что это не мой частный случай, а системный подход авторов плеера. Мучил я линуксовый vlc, но в винде судя по всему ситуация симметрична.
Но многое делается к лучшему, благодаря отказу по вышеупомянутой причине от VLC я-таки нашёл (почти) идеальный плеер :)
Vadim Sterkin
VLC был упомянут для примера, а так — он ужасен с точки зрения UI. Фокус моего сообщения на том, что не надо ставить лишнее ПО. Обратите внимание, что в сообщении 12 человек предлагает поставить кодеки и плеер с кодеками.
strafer
Вообще такой подход «что мне нужно поставить?» в корне неверный, т.к. надо исходить из задач, а не из инструментов.
Vadim Sterkin
Конечно, поэтому я закрыл тему :)
Lecron
В процессе дискуссии, поднялся вопрос оставления хвостов деинсталяторами. И что проблема не в инструменте Установщике Windows, а в неправильной с ними работе, создателей дистрибутива приложения. Но! Чуть позже всплыл Линукс и у меня возник вопрос.
Можно ли в Линукс неправильно создать пакет (rpm, deb) программы? Точнее, насколько это сложно, если не стоит такая цель?
И если вдруг это не так легко, то может все-таки дело в инструменте? Может не квалификация плотника виновата, а молоток с ручкой в виде штопора и смещенном центре тяжести бойка?
strafer
Не получится, как пакетный менеджер скрупулёзно все файлы запишет при установке, так же скрупулёзно он их при удалении удалит.
Vadim Sterkin
Так и Windows Installer и любой другой установщик для Windows тоже запишет и удалит то, что ему прописали записывать и удалять.
Ника Гурджумелидзе
Пользователь strafer негодует, как и я порой, от отсутствия аналога purge в Windows. Я подобный фичреквест оставил в Windows Insider, может сделают в 10 наконец такую штуку.
strafer
Vadim Sterkin
Я понимаю разницу, но не считаю это проблемой. Разработчик знает, куда и что он сохраняет, т.е. может точно так же удалить. Если он ошибается в этом, страшно подумать, что он напрограммировал.
Хорошо, тогда вернемся к моему примеру с браузером. При желании разработчик может предложить пользователю удалить вместе с программой и личные данные, чтобы на диске не хранился мусор.
Чудесно! Пакетный менеджер это может?
Lecron
На хабре много проверок с использованием PVS-Studio. Ошибки есть везде. Где-то больше, где-то меньше. Думаю закрытого кода это касается в той же мере. Как и настройки установщика.
Винда неплохая ОСь, но вся это статья, и есть классический пример «костыля», подпирающего не самое лучшее решение.
Можно сетовать на непрофессионализм разработчиков софта, а можно попросту не дать им возможности накосячить в принципе. Думаю сами вспомните кучу разных примеров, иллюстрирующих эти два подхода. Как пример — бескорпусные процессоры (сколы при установке кулера) и отсутствие тротлинга (сгорают от перегрева). Можно жить и с этим, но корпусировка и защита от перегрева, встроенная в процессор все-таки лучше.
Vadim Sterkin
К сожалению, Windows Installer появился поздно и без удобного бесплатного инструмента для создания пакетов (его до сих пор нет вроде). Наверное, в нем нет каких-то возможностей, которые нужны разработчикам (точно так же, как во встроенном ПО Microsoft нет каких-то фич, которые нужны пользователям).
Поэтому неудивительно, что разработчики используют другие инсталляторы, исключая тем самым стандартизацию установки, управления и удаления ПО в Windows. Это проблема, конечно, и даже на этапе развертывания в организациях (GPO), на которые ориентирована MSFT.
strafer
Может удалить, может не удалить. В первом случае никто не обратит внимания, во втором микрософт может сделать круглые глаза — «это ж разработчик виноват!». И все довольны, кроме пользователя, как я уже говорил, ставшего заложником этой ситуации.
Он представления не имеет, что делала программа в течение своей жизни в системе. Конечно нет.
Да, как и многие другие вещи в винде. Например сохранение данных, создаваемых программой, отдельно от программы, в каталоге пользователя. В результате у миллионов разработчиков совместное хранение вросло в привычку и пришлось делать виртуализацию файловой системы для обеспечения обратной совместимости таких быдлопрограмм.
Всех пересадить на Windows Installer тоже не панацея, нужен новый инструмент с принципиально другой логикой, в котором костыли да, останутся, но только лишь для обеспечения обратной совместимости с WI и остальным наследием.
Пока же ситуация всех как бы устраивает — микрософту не нужно дёргаться, разработчики настраивают инсталляторы кто как умеет, ну а пользователи либо мирятся с остающимся мусором и дырами в безопасности, либо вооружаются проводником с кнопкой delete и сторонними утилитами разной степени кривости. И тоже часто в результате получают боль в нежных местах. А на форумах (да даже в комментариях к этой записи) их обзывают буратинами, хотя в корне, изначально, во всём вина разработчика ОС, за десятки лет не удосужившегося оборудовать нормальную систему управления установкой.
Ну нет фич — это ещё мягко сказано :)
Но тут есть принципиальная разница: встроенное ПО — по определению затычки, на сервере инишник подправить блокнотом, скриншот в техподдержку по-быстрому обрезать в пейнте и т.п. Тот, кому постоянно нужен текстовый редактор, конечно поставит себе нормальный сторонний, то же самое касается редактора графического.
Установка/удаление программ — одна из ключевых задач операционной системы, поэтому во встроенном ПО фич может и не быть, но в установке/удалении они быть обязаны.
Ника Гурджумелидзе
Вадим, в Ubuntu при использовании apt-get remove сохраняются все настройки приложения в скрытой папке в home, а для удаления приложения вместе с настройками применяется apt-get purge. И работает это для всех программ.
И не поймите меня неправильно, я большой поклонник ОС Windows, хорошо с ней знаком во многих аспектах, но пакетный менеджер намного удобнее того, что сейчас предлагает Windows.
Vadim Sterkin
Я не отрицаю, что со стандартным централизованным удалением удобнее, чем без оного. Но мне интересно, насколько это повернуто лицом к пользователю.
Это все в консоли делается? GUI есть? И главное — удаляются ли при этом пользовательские данные, созданные программой, как показано на скриншоте моего примера?
Lecron
К консольной утилите очень просто прилепить фронтенд.
Synaptic.
Aptitude.
Думаю, это далеко не полный список.
Vadim Sterkin
@strafer
Вот и квинтэссенция…
Из чего следует, что созданные программой в процессе работы данные никуда не деваются после удаления программы и оседают в системе в качестве мусора (в вашей терминологии), если только пользователь их не удалит вручную.
И это после конкретного примера приложения для Windows, предлагающего вместе с собой удалить пользовательские данные. Что характерно, ни к селу ни к городу упомянуты какие-то дыры в безопасности.
Знаете, у меня нет проблем с тем, чтобы признать преимущества менеджера пакетной установки Linux в контексте поднятого в статье вопроса — централизованная установка и удаление ПО. Собственно, само по себе появление этой статьи указывает на недостаток экосистемы и операционной системы Windows в этом вопросе. Эта запись не случайно помечена тегом нестыковки (и она стала в ней юбилейной — 60й, при том что в категории Windows сейчас 269 статей).
При этом я вообще не поднимал тему оставленного мусора, ее подняли в комментариях на уровне общих заявлений. И до сих пор, несмотря на мои просьбы, никто не привел конкретных примеров — вот приложение, вот оставленный за ним мусор. Действительно, зачем напрягаться, если можно выставить мусор как непреложный факт, не требующий доказательств.
Но когда я вам показываю реализованные в Windows вещи, позволяющие разработчикам программ удалять созданные в процессе работы программы данные с разрешения пользователя (чего нет в Linux или вы забыли об этом рассказать), вы делаете вид, что в Windows таких инструментов не существует, продолжая как заклинание твердить мусор-мусор-мусор, притворно жалея пользователей ОС Microsoft.
Именно по этой причине я изначально не хотел дискутировать с вами. Мне не нравятся ваши приемы ведения дискуссии, ибо я не считаю их честными по отношению к собеседнику. У меня сейчас не очень хорошо со свободным временем, поэтому я бы предпочел фокусироваться на полезных статьях, а не биться головой об стену в комментариях. Поэтому я хорошо подумаю в следующий раз, прежде чем что-нибудь написать вам в ответ. Спасибо за понимание.
strafer
Читая ваши записи (да хотя бы эту), с трудом верится, что консоль вас может отпугнуть :)
Ника Гурджумелидзе
Да, это консольные команды. GUI я не пользуюсь, но вроде есть.
Opera удаляет то, что лежит в Appdata\Roaming\Opera. Эта папка в Ubuntu хранится в home и скрыта. apt-get remove удаляет только программу, оставляя папку с конфигами, apt-get purge удаляет программу и эту папку с конфигами. И там это действует для всех программ, а на Windows разработчики редко озадачивают себя подобными вопросами.
Дыры есть как раз. Программа-установщик запускается от имени администратора и получает полный контроль над системой. А теперь вспомните ситуацию с удалением яндекс диска пару-тройку месяцев назад, когда из-за ошибки в деинсталляторе программа уносила за собой всё что могла удалить. А это — почти целиком профиль пользователя и часть файлов в системных каталогах (Windows, Program files). В nix это невозможно.
Однако, не всё так плохо. В Windows 10 уже есть (но пока не работает вроде) пакетный менеджер — OneGet. К релизу (и даже раньше) можно будет ставить программы простым Install-Package Opera например. Видимо, классические приложения допустят в Windows Store (они сейчас там есть, но только в виде ссылок на официальные сайты разработчиков) и он станет эдаким репозиторием для всех Windows программ. Так что майкрософт в курсе этих недостатков и в скором времени, видимо, их устранит. Вам же спасибо за хорошую статью и удачи.
strafer
Пакетный менеджер не в состоянии отследить чего насоздавала программа за время её жизни. Да, можно в пакет засунуть информацию, где программа по умолчанию хранит какие-то свои файлы, но это места по умолчанию. Стоит что-то поменять (у той же оперы есть возможность передать ей в параметром другой конфиг, в котором могут быть прописаны произвольные пути до всего её барахла), и умолчание работать перестанет.
Я рад за системы с апт-гетом (честно говоря о purge представления не имел, я сам арчер), но лично меня вмешательство в пользовательские данные в таком не совсем явном виде не очень привлекает, т.к. если они не нужны, то удалить их проще некуда, не надо ничего искать, всё лежит в домашнем каталоге. И это будет явным действием пользователя, за которое он сам несёт ответственность.
«Мусор» в моей терминологии — файлы самой программы, созданные в процессе установки.
Ну это лукавство, эти вещи реализованы не в Windows, а в установщике оперы.
Обратной стороной таких удобств становятся забавные приколы, пример которых описала Ника Гурджумелидзе. Это не столько ошибка разработчиков яндекса, сколько системная проблема винды в данном аспекте: разработчику приложения разрешено катать произвольную программу, но при этом же никто не следит, чтобы он откатал обязательную.
Два вопроса:
1. Может ли деинсталлятор не удалить все файлы, установленные инсталлятором?
2. Может ли деинсталлятор удалить файлы помимо тех, что установил инсталлятор?
Возможно в процессе ответа на эти два вопроса у вас пропадёт часть претензий ко мне.
Ника Гурджумелидзе
описал. Я не девушка :D
Хотя путают часто, да.
Ника Гурджумелидзе
На оба вопроса ответ один — все зависит от разработчика. Пример яндекс-диска показал, что деинсталлятор способен на всё.
Но Вадим не отрицает преимущества менеджера пакетов, так что ваши претензии к нему выглядят как минимум странно.
strafer
Извини :)
И это логично.
Как я вижу предмет нашего спора сейчас: я утверждаю, что установщики — это костыль, который делает, что хочет и это хорошо бы поменять на что-то более элегантное, он говорит, что с ними всё нормально и ваш линукс нам тут не нужен.
Ника Гурджумелидзе
Это наверное из этого текста вытекает:
А ваш линукс тут действительно не нужен, это же блог о Windows :D Установщик оперы он привел для того, чтобы показать что и на Windows возможно полное удаление, если автор программы соизволит об этом позаботиться. Угадайте какой процент разработчиков себя этим озадачивает. И таким разработчикам не помогают никакие гибкие средства разработки — в магазине Windows тоже полно некачественного софта, а ведь там для написания приложения усилий нужно прилагать минимум.
strafer
«Ваш линукс» здесь означает подход к процессу.
В этом же самом посте, который вы процитировали, он по-прежнему утверждает, что мусора после удаления не бывает, а с безопасностью никаких проблем. Как по мне, так это какое-то частичное признание.
Ника Гурджумелидзе
5 раз тот пост перечитал, не заметил ничего подобного. Он просто сказал, что тему мусора не поднимал — её подняли в комментариях.
Lecron
Именно. Т.е. ключевой инструмент, для ключевой задачи, даже после многих лет развития не проработан.
Весь этот спор возник из за вашего (неосторожного?) высказывания: «Почему молоток забивает гвозди криво? Установщик Windows — это инструмент. Им должен уметь пользоваться создатель программы.»
Я же считаю, что стоит разделять область ответственности, между разработчиками софта и ОСи. В том числе за последствия и ошибки. Дайте прямой молоток и не будет нужды винить в неумении пользоваться инструментом.
Vadim Sterkin
Почему неосторожного? Я констатировал факт.
Я только за, но если этого нет, а вы хотите ваять, будьте любезны учиться. Наличие простых инструментов разработки не панацея. С одной стороны, это снижает порог вхождения в касту разработчиков ПО, а с другой — снижает качество этого ПО.
Например, Microsoft пиарит App Studio в качестве простого инструмента, потому что ей нужно больше разработчиков, создающих приложения (с моделью установки/безопасности, значительно превосходящей классику). Но это только порождает тысячи г-приложений в магазине.
Разработка хорошего приложения стоит десятки и сотни тысяч долларов, это должны делать профессионалы. Простых инструментов недостаточно…
Vadim Sterkin
Все спасибо за выраженные мнения