Pull to refresh

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

System administration *
Sandbox
#include «standard_disclamer.h»

Однажды у меня перестало открываться меню пуск (или что там вместо него в 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:\ProgramData\Microsoft\Windows\AppRepository\Microsoft.Messaging_1.10.22012.0_neutral_split.language-ru_8wekyb3d8bbwe.xml. Сбой: Не удается найти указанный файл.

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

Идем в папку C:\ProgramData\Microsoft\Windows\ (Не буду рассказывать, как настроить показ скрытых папок)

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

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

Теперь возвращаемся к «файлу 1». Его в этой папке не будет. Если он есть — этот мануал вам не подходит. Нет файла — сделаем! Я говорю это совершенно серьезно — создаем файл, который Windows ищет, ведь он же ищет его, чтобы удалить. Для этого открываем любой другой файл из этой папки (не дает — меняем ему владельца и/или права доступа), имя которого заканчивается на 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>Assets\WindowsIcons\StoreLogo.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:\ProgramData\Microsoft\Windows\AppRepository\Microsoft.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>Assets\Logo.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:\WINDOWS\system32> Get-AppxPackage *messaging* | Remove-AppxPackage. А ответ: PS C:\WINDOWS\system32>

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

image

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

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

P.S. содержание дисклеймера предоставлено в первом комментарии
Tags: windows 10powershellGet-AppxPackage0x80073CF6
Hubs: System administration
Total votes 26: ↑15 and ↓11 +4
Comments 3
Comments Comments 3

Popular right now