вторник, 19 июля 2016 г.

Как удалить стандартные Windows Apps в Windows 10

Приблизительно месяц назад я стал обладателем планшета Jumper EZPad 4s с Windows 10 на борту (см. обзор), в котором внутренний диск (эдакая карта памяти) имеет размер всего ~28 ГБ (формально 32 ГБ). Предустановленная Windows 10 Home 64-bit English занимает более 10 ГБ, что оставляет совсем немного места для разгула фантазий, так что вскоре я озадачился чисткой системы от всякой-разной предустановленой ерунды. Почти сразу же я обнаружил, что задача эта не решается наскоком неподготовленным пользователем, даже если у него есть немалый опыт работы с Windows 7 и другими системами от Microsoft. Поэтому мне пришлось изучать народные премудрости на эту тему, найденные в этих ваших интернетах. О результатах спешу должить…

IObit Uninstaller

Подсказка об этом волшебном приложении нашлась в комментариях к статье по теме How to Uninstall Windows 10’s Built-in Apps (and How to Reinstall Them) – мол, такая замечательная помощница, умеет удалять стандартные приложения Windows.

После недолгих колебаний я решил проверить эту функциональность и установил IObit Uninstaller 5.4.0.119. Приложение действительно удобное, умеет показывать Windows Apps в отдельном месте и позволяет их удалить, в добавок предлагая почистить и реестр после этого. Классно?

К сожалению, как выяснилось, эта утилита удаляет Windows Apps только для текущего пользователя (точнее для пользователя, под которым запущен IObit Uninstaller, а запускаться он позволяет только с правами администратора). Фактически таким образом можно почистить меню пуск только для супер-пользователей. Что делать остальным пользователям, разработчики, видимо, пока не придумали.

Естественно, я эту поделку удалил, и вскоре совершенно случайно обнаружил, что это чудо оставило за собой хвост в виде сервиса LiveUpdate. Мелочь, а неприятно.

Выкосить сей хвост надлежит таким образом (см. How to remove LiveUpdate.exe from your computer – руководство трёхлетней давности, а воз и ныне там):

  1. services.msc: остановить и отключить Live Update (сервисов с таким неконкретным именем в вашей системе может быть несколько – будьте внимательны)
  2. Удаляем запись о сервисе – в командной строке (с правами администратора): sc delete LiveUpdateSvc
  3. Удаляем каталог с сервисом.

После этого про IObit Uninstaller можно забыть.

PowerShell

Большинство руководств по чистке стандартных приложений основывается на использовании PowerShell (см. habrahabr.ru, howtogeek.com, superuser.com, tenforums.com, winaero.com):

  • удалить приложения для конкретного (текущего) пользователя с помощью Get-AppXPackage и Remove-AppXPackage
  • удалить “исходники” приложений так, что для новых профилей пользователей они не будут устанавливаться, с помощью Get-AppXProvisionedPackage и Remove-AppXProvisionedPackage

Прежде, чем упражняться с командной строкой, стоит отключить автоматическое обновление (скачивание?) пользовательских приложений: в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate необходимо для DWORD-переменной AutoDownload задать значение 2 (два).

Некоторые стандартные приложения (Cortana, Edge и т.п.) удалить нижеприведенными способами не получится.

Чистка для новых профилей

Обычно сносят все приложения, кроме Windows Store. На мой взгляд, это имеет смысл, т.к. через магазин все приложения потом можно вернуть обратно.

Для удаления всего, кроме Windows Store, в командной строке PowerShell (с правами администратора):

Get-AppXProvisionedPackage –online | where-object {$_.packagename –notlike “*store*”} | Remove-AppXProvisionedPackage -online

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

Get-AppXProvisionedPackage –online | Remove-AppXProvisionedPackage -online

Если вам хочется удалить только некоторые приложения, то это сделать можно в интерактивном режиме (отсюда):

Get-AppXProvisionedPackage -Online | Out-GridView -PassThru | Remove-AppXProvisionedPackage -Online

Чистка существующих профилей

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

В интернетах предлагается быстрое решение в виде команды для чистки всего, кроме Windows Store:

Get-AppXPackage -AllUsers | where-object {$_.name -notlike “*store*”} | Remove-AppXPackage

К сожалению, в моём случае это не сработало – кроме текущего пользователя фактически никого команда не затронула. Возможно, из-за того, что для этого пользователя ранее я запускал IObit Uninstaller с той же целью.

Использование параметра –User username вместо –AllUser тоже как-будто не помогало. У меня, признаться, сложилось впечатление, что Remove-AppXPackage действует в контексте текущего пользователя, а все “умельцы”, предлагающие этой команде передавать других или даже всех пользователей, занимаются копипастом без реальной проверки.

Окончилось дело тем, что я логинился в профиль каждого пользователя и чистил приложения в интерактивном режиме:

Get-AppXPackage | Out-GridView -PassThru | Remove-AppXPackage

Таким образом я сохранил калькулятор :)

Результаты

Для быстрой проверки результатов применения вышеприведенной методики достаточно глянуть в “C:\Program Files\WindowsApps”: если этот каталог содержит более 600 МБ “добра” от Microsoft, значит, Вы, скорее всего, забыли выкосить приложения из какого-то профиля пользователя локально.

В моём случае создание нового профиля и последующий логин показывал, что большинство стандартных приложений на месте (даже “солитёр”), хотя в живых должен был остаться только “магазин”, который честно высвечивается в списке при выполнении команды Get-AppXProvisionedPackage -Online. Правда, некоторые из этих приложений (по-моему, только те, которые можно деинсталлировать обычным образом) имеют битые “плитки” – запустить невозможно, и плитка имеет “невнятное название” (напр.,”@{Microsoft.BingNews_4.6.169.0_…”). Впрочем, допускаю, что набор плиток для новых пользователей берётся из стандартного файла, и система просто не умеет обрабатывать ситуации, когда каких-то стандартных приложений нет в наличии на момент создания нового профиля.

Что делать? Для ответа на данный вопрос следует понять, что пока какой-либо пользователь имеет какое-либо приложение установленным, оно не будет удалено из “свалки добра”. Соответственно, заходим к каждому лично и в интерактивном режиме ищем залипшее приложение.

Вот так выглядит “свалка” после чистки, когда в строю остались Windows Alarms, Calculator, Camera, Maps и Store:

 photo 2016.07.20-WindowsApps.png

Насколько я понимаю, все эти стандартные приложения появились ещё в Windows 8, и получается, что до сих пор нет удобного инструментария, чтобы с ними работать так, как хочется пользователям. Перечисленная выше возня с командной строкой больше напоминает стиль взаимодействия с Linux-подобными системами.

Ссылки в тему:

  • Destroy Windows Spying (если хочется избавиться не только от стандартных приложений)
  • PackageManager Class (документация для разработчиков перспективной утилиты, из которой становится понятно, что удобных утилит не было, нет и не будет)

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

Отправить комментарий