Удаление встроенных приложений Windows 10 после неудачной команды Get-AppXPackage

в 13:30, , рубрики: 0x80073CF6, Get-AppxPackage, powershell, Windows 10, системное администрирование

Заранее хочу предупредить — если система после нижеследующих манипуляций накроется совсем, то лучше их даже не начинайте.

Однажды у меня перестало открываться меню пуск (или что там вместо него в Windows 10). В интернете рекомендуют выполнить команду в открытой с правами администратора консоли powershell:

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)AppXManifest.xml”}

Однако, как оказалось впоследствии, после одного из обновлений (ноябрьского — ?), выполнив такую команду можно добиться открытия меню обратно, но вот неприятность — все эти приложения приобретают следующий вид:

image

«Ну ладно, они все равно не нужны, удалю» — думаю я. Не тут-то было.

Выполняем, например:

Get-AppxPackage *messaging* | Remove-AppxPackage

И получаем портянку:

Remove-AppxPackage : Сбой развертывания с HRESULT: 0x80073CF6, Не удалось зарегистрировать пакет. Ошибка 0x80070003: не удалось прочесть манифест из расположения AppxManifest.xml. Сбой: Системе не удается найти указанный путь.

ПРИМЕЧАНИЕ. Чтобы получить дополнительные сведения, найдите [ActivityId] 24a44cdb-6261-0001-eabb-a4246162d101 в журнале событий или введите в командной строке Get-AppxLog -ActivityID 24a44cdb-6261-0001-eabb-a4246162d101.

строка 1 знак 31:

+ Get-AppxPackage *messaging* | Remove-AppxPackage
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.Messa...__8wekyb3d8bbwe:String) [Remove-AppxPackage], IOException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand


Что же делать? Мусор в меню пуск, надо же убрать! Переустанавливать систему — варварство, все можно исправить руками. Смотрим лог, как рекомендуют в портянке (копируем команду, которая указана в «ПРИМЕЧАНИЕ» в эту же консоль):

Get-AppxLog -ActivityID 24a44cdb-6261-0001-eabb-a4246162d101

Помимо всего прочего в ответе будет строка такого вида:

Ошибка 0x80070002: не удалось прочесть манифест из расположения C:ProgramDataMicrosoftWindowsAppRepositoryMicrosoft.Messaging_1.10.22012.0_neutral_split.language-ru_8wekyb3d8bbwe.xml. Сбой: Не удается найти указанный файл.

Вот она то нас и интересует. Файл, указанный здесь, назовем «файлом 1».

Идем в папку C:ProgramDataMicrosoftWindows (Что, нет ProgramData? Я правда должен рассказывать, как настроить показ скрытых папок?)

А вот в папку AppRepository пускать не будет. Но это не проблема, идем в правую кнопку мыши над этой папкой — Свойства — Безопасность — Дополнительно. Там нам скорее всего скажут, что владельца определить не удалось — в любом случае жмем изменить владельца — Дополнительно — Поиск (это тот который между Столбцы и Стоп) — выбираем своего юзера — ОК — ОК — ОК.

Если и после этого не пускает, то там, где мы жали на «изменить», есть таблица «Элементы разрешений» — туда надо добавить своего юзера по такой же схеме, с правами Полный доступ. Менять права на всё вложенное не обязательно.

Теперь возвращаемся к «файлу 1». Его в этой папке не будет. Если он есть — закрывайте этот мануал — я не знаю, что делать. Нет файла — сделаем! Нет, правда. Для этого открываем любой другой файл из этой папки (не дает — меняем ему владельца и/или права доступа), имя которого заканчивается на neutral_split.language-ru_какиетобуквы.xml, берем все содержимое, создаем новый файл, вставляем его туда и меняем пару мест. В моем случае подвернулся файл Microsoft.WindowsCamera_2016.128.10.0_neutral_split.language-ru_8wekyb3d8bbwe.xml с содержимым:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap"><Identity Name="Microsoft.WindowsCamera" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="2016.128.10.0" ResourceId="split.language-ru"/><Properties><ResourcePackage>true</ResourcePackage><DisplayName>ms-resource:///Resources/AppStoreName</DisplayName><PublisherDisplayName>Microsoft Corporation</PublisherDisplayName><Logo>AssetsWindowsIconsStoreLogo.png</Logo></Properties><Resources><Resource Language="ru-ru"/></Resources><Dependencies><TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.10240.0" MaxVersionTested="10.0.10240.0"/></Dependencies></Package>

Видите Name=«Microsoft.WindowsCamera»? Вот его надо заменить на Name=«Microsoft.Messaging», или что вы там удаляете. Видите Version=«2016.128.10.0»? Меняем значение на 1.10.22012.0 (оно в имени «файла 1»).

Сохраняем с именем «файла 1» в этой самой папке. Я вообще жал правой кнопкой создать текстовый файл и переименовывал его вместе с тхт расширением, а потом вставлял код.

Ок! Теперь снова выполняем команду на удаление. Снова получаем портянку:

Remove-AppxPackage : Сбой развертывания с HRESULT: 0x80073CF6, Не удалось зарегистрировать пакет.
Ошибка 0x80070003: не удалось прочесть манифест из расположения AppxManifest.xml. Сбой: Системе не удается найти указанный путь.
.
ПРИМЕЧАНИЕ. Чтобы получить дополнительные сведения, найдите [ActivityId] 24a44cdb-6261-0001-1ec1-a4246162d101 в журнале событий или введите в командной строке Get-AppxLog -ActivityID 24a44cdb-6261-0001-1ec1-a4246162d101.
строка:1 знак:31
+ Get-AppxPackage *messaging* | Remove-AppxPackage
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.Messa...__8wekyb3d8bbwe:String) [Remove-AppxPackage], IOException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand


И спрашиваем: «Автор, ты зачем нас заставлял делать столько всего, ничего ж не работает?»

Я вот тоже сначала расстроился. Но логи придумали очень умные люди. Поэтому открываем логи (строка из примечания, не опять, а снова).

Ошибка 0x80070002: не удалось прочесть манифест из расположения C:ProgramDataMicrosoftWindowsAppRepositoryMicrosoft.Messaging_1.10.22012.0_neutral_split.scale-150_8wekyb3d8bbwe.xml. Сбой: Не удается найт
и указанный файл.

Файл другой! Microsoft.Messaging_1.10.22012.0_neutral_split.scale-150_8wekyb3d8bbwe.xml. Знаете, что надо делать? Правильно, пойдем в злополучную папку и создадим! Дальше ищем похожий существующий, в моем случае это был Microsoft.WindowsStore_2015.7.1.0_neutral_split.scale-125_8wekyb3d8bbwe.xml.

Содержимое копируем:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap"><Identity Name="Microsoft.WindowsStore" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="2015.7.1.0" ResourceId="split.scale-125"/><Properties><ResourcePackage>true</ResourcePackage><DisplayName>ms-resource:StoreTitle</DisplayName><PublisherDisplayName>Microsoft Corporation</PublisherDisplayName><Logo>AssetsLogo.png</Logo></Properties><Resources><Resource uap:Scale="125"/></Resources><Dependencies><TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.10161.0" MaxVersionTested="10.0.10161.0"/></Dependencies></Package>

Вот тут уже меняем не только имя и версию, но и цифру у scale. Хотя я не уверен, что оно надо, но я менял 125 на 150. И, в который раз, PS C:WINDOWSsystem32> Get-AppxPackage *messaging* | Remove-AppxPackage. А ответ: PS C:WINDOWSsystem32>

Все, нету ошибок! И в меню пуск теперь:

image

Видите? Нету Messaging, People первая строчка.

В заключение хочу сказать, что такие манипуляции придется проделать со ВСЕМ списком мусора из раздела «Другое». Зато его не будет. А вот как вернуть — не знаю. Даже WindowsStore как вернуть — не знаю. Сможете — напишите свою статью.

Используемая литература? Какая такая литература? Я своими руками свой комп ломаю — хуже уже не будет!

Автор: theArhar

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js