СЕРВИСНЫЕ УСЛУГИ
СТУДИЯ В ЛИПЕЦКЕ

Советы · Windows · 5 минут

Приложение Microsoft Store работает у одного пользователя и не запускается у другого

Как сравнить регистрацию приложения Microsoft Store у двух пользователей, прочитать AppModel и AppXDeployment и восстановить только нужный пакет без массового сброса.
Microsoft: опубликованный пример поиска Microsoft PowerToys через winget. Он иллюстрирует выбор конкретного пакета; приведённые имя и версия не являются рекомендацией устанавливать этот пример.

Microsoft: опубликованный пример поиска Microsoft PowerToys через winget. Он иллюстрирует выбор конкретного пакета; приведённые имя и версия не являются рекомендацией устанавливать этот пример.
© Microsoft. Used with permission from Microsoft. · источник и условия использования · CC BY 4.0

Работа у другого пользователя сужает поиск

Приложение Microsoft Store запускается в одной учётной записи Windows и сразу закрывается в другой. Это полезное различие, но не доказательство «сломанного профиля целиком». Регистрация пакета, данные приложения, разрешения, лицензирование и применённые политики могут различаться для каждого пользователя.

Сначала подтвердите, что сравниваете один и тот же пакет и версию, одинаковую операцию и состояние сети. Не удаляйте проблемный профиль: в нём могут находиться несинхронизированные данные. Современные пакеты развёртываются на компьютере и отдельно регистрируются для пользователей; Microsoft описывает это различие в руководстве по диагностике Store-приложений. [1]

Три уровня приложения
  1. Файлы пакетаЧто развёрнуто на компьютере
  2. Регистрация пользователяКому доступен этот пакет
  3. Данные и политикаС каким состоянием он запускается

Схема редакции «Мы из 90х».

Посмотрите пакет в обычном PowerShell нужного пользователя

Начинайте в неповышенном Windows PowerShell из проблемной учётной записи. Пример для Калькулятора:

Windows PowerShell · пример конкретного приложения

Get-AppxPackage -Name Microsoft.WindowsCalculator |
  Format-List Name, PackageFullName, PackageFamilyName, Version, Architecture, InstallLocation, Status

Для другого приложения сначала определите его фактическое имя пакета, затем замените Microsoft.WindowsCalculator. Повторите такую же проверку в работающей записи. Отсутствие результата означает отсутствие совпадения в этом контексте и не доказывает, что на диске нет никаких файлов приложения. [1], [2]

Запуск от имени другого администратора может показать его регистрацию и затем изменить её вместо проблемного пользователя. Поэтому «запустить всё с правами администратора» здесь не является универсальным первым шагом.

Что сравнить между пользователями
ПолеЧто выяснить
PackageFamilyNameОдин ли это продукт и издатель
PackageFullName и VersionОдинаковы ли версия и вариант пакета
InstallLocationГде находится выбранный пакет
Status и ошибка запускаКакое состояние и отказ наблюдаются

Учебная таблица редакции.

Отличайте установленный пакет от подготовки для новых пользователей

Администратор может отдельно прочитать регистрации всех пользователей и подготовленные пакеты:

Повышенный Windows PowerShell · только чтение

Get-AppxPackage -AllUsers -Name Microsoft.WindowsCalculator |
  Format-List Name, PackageFullName, PackageUserInformation, InstallLocation

Get-AppxProvisionedPackage -Online |
  Where-Object DisplayName -EQ 'Microsoft.WindowsCalculator' |
  Format-List DisplayName, PackageName

Provisioned-пакет относится к подготовке приложения для пользовательских профилей образа; он не равен успешной регистрации конкретного текущего пользователя. Список AllUsers также не означает, что каждый профиль находится в одинаковом состоянии. Эти команды не предназначены для массового удаления найденного. [2], [3]

У обычной Win32-программы, установленной из Store, модель может отличаться от привычного AppX-приложения. Не ожидайте, что любой товар Microsoft Store обязательно будет представлен одинаковым пакетом в Get-AppxPackage.

Соберите события одной попытки запуска

Откройте приложение один раз, запишите время и найдите события AppModel-Runtime/Admin и доступные журналы AppXDeploymentServer. Для инвентаризации каналов:

PowerShell

Get-WinEvent -ListLog '*AppModel*' |
  Select-Object LogName, IsEnabled, RecordCount
Get-WinEvent -ListLog '*AppXDeployment*' |
  Select-Object LogName, IsEnabled, RecordCount

Первый набор помогает исследовать активацию и работу модели приложения; второй — развёртывание и регистрацию. Сохраните полный код, имя пакета и ActivityId, если он указан. Для операции развёртывания с известным ActivityId:

PowerShell · заменить учебный GUID

Get-AppxLog -ActivityID '00000000-0000-0000-0000-000000000000' |
  Format-List *

Нулевой GUID в примере не является действительной записью вашего журнала. Подставляйте идентификатор именно неудачной операции. Отсутствие события в одном канале не отменяет отказа в другом. [1], [4], [5]

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

Начните с восстановления одного приложения

В проблемной учётной записи откройте Параметры → Приложения → Установленные приложения → нужное приложение → Дополнительные параметры, если этот пункт доступен. Сначала используйте «Исправить» или Repair. Такое восстановление сохраняет данные приложения; «Сбросить» удаляет его локальные данные и настройки. [6], [7]

Перед сбросом проверьте, где хранятся заметки, проекты, загрузки и авторизация. Наличие значка облака не доказывает, что последние данные уже синхронизированы. Для приложения с важной локальной базой сначала сделайте поддерживаемый экспорт или резервную копию.

Если сбой касается только Store как магазина, проверьте его обновления, время и вход в учётную запись. Очистка кэша магазина не является ремонтом регистрации всех приложений и не заменяет чтение ошибки конкретного пакета. [8]

Восстановление и сброс
ДействиеВлияние
Repair / ИсправитьПытается восстановить приложение с сохранением данных
Reset / СброситьУдаляет локальное состояние и заново инициализирует приложение
ПереустановкаТребует проверки данных, источника и доступности нужной версии

Учебная таблица редакции.

Перерегистрируйте только подтверждённый пакет

Если по событиям и сравнению подтверждена проблема регистрации, Microsoft описывает точечную перерегистрацию. Для уже зарегистрированного Калькулятора в обычном Windows PowerShell нужного пользователя:

Windows PowerShell · точечный пример

$Packages = @(Get-AppxPackage -Name Microsoft.WindowsCalculator)
if ($Packages.Count -ne 1) {
  throw 'Нужен один подтверждённый пакет; проверьте результат поиска.'
}
$Manifest = Join-Path $Packages[0].InstallLocation 'AppxManifest.xml'
if (-not (Test-Path -LiteralPath $Manifest)) {
  throw 'Манифест не найден; нужна проверка или восстановление пакета.'
}
Add-AppxPackage -Path $Manifest -Register -DisableDevelopmentMode

Закройте приложение перед действием. Код намеренно останавливается при неоднозначном или пустом результате. Для отсутствующей регистрации путь или PackageFamilyName определяют отдельно из подтверждённого установленного пакета; не копируйте путь чужой версии WindowsApps. Параметры Add-AppxPackage описаны Microsoft. [1], [9]

Перерегистрация не скачивает автоматически отсутствующие файлы и зависимости. При повреждении содержимого используйте восстановление или переустановку именно этого приложения из доверенного источника. Не меняйте владельца всей WindowsApps ради доступа к одному манифесту.

Учитывайте политики и данные пользователя

Если сообщение прямо указывает на AppLocker или другую политику запрета, перерегистрация не отменит её. Проверьте применённые правила с администратором. Для личного ПК отдельно исследуйте источник политики; не отключайте все механизмы контроля приложений.

Когда пакет и версия совпадают, а ошибка остаётся только в одной записи, сравните данные самого приложения и его настройки. Не копируйте целиком чужой AppData: там есть привязанные к пользователю базы, лицензии и секреты. Успех в другом профиле помогает исследованию, но не делает удаление исходного профиля необходимым.

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

Made on
Tilda