- Вопрос или проблема
- Ответ или решение
- Теория
- Причины ошибки 0x80070005: Access Denied
- Пример
- Действия, которые вы уже предпринимаете:
- Применение: Решение проблемы
- 1. Проверьте права доступа
- 2. Восстановите default источники winget
- 3. Удалите и переустановите winget
- 4. Проверьте настройки безопасности и контроля учетных записей
- 5. Изолируйте проблему
- 6. Логи и отладка
Вопрос или проблема
В последнее время winget перестал работать на моем компьютере с Windows 10, когда я работаю как обычный пользователь. Я получаю эту ошибку:
Которая переводится примерно как:
Ошибка при попытке обновить источник: winget
Не удалось открыть предопределенный источник; пожалуйста, сообщите об этом разработчикам winget.
Неожиданная ошибка при выполнении команды:
0x80070005: доступ запрещен
Winget upgrade работает правильно, если я запускаю терминал от имени администратора.
Я думаю, UniGetUI как-то с этим связан. У меня winget работал превосходно. Затем я узнал об UniGetUI и решил попробовать. Несколько раз он работал хорошо, но затем я начал получать ошибки при его запуске, говоря, что winget “сломался” и его нужно восстановить. Что также несколько раз срабатывало, по-видимому.
Но затем winget upgrade перестал работать, когда запускается как обычный пользователь. Я удалил UniGetUI, установил его снова… Ничего…
Я попробовал несколько методов, которые нашел в Интернете и которые обещают это исправить, но безуспешно:
https://www.makeuseof.com/fix-winget-not-working-windows-11/
https://github.com/microsoft/winget-cli/issues/1826
https://windowsloop.com/fix-failed-in-attempting-to-update-the-source-winget-error/
https://answers.microsoft.com/en-us/windowsclient/forum/all/how-do-i-reinstall-winget/50faa798-20ce-429d-8cc2-a521b29f1155
Есть идеи, что может происходить и как это решить?
Ответ или решение
Ошибка при выполнении команды winget upgrade
для обычного пользователя, но успешное выполнение под администратором — это частая проблема, связанная с правами доступа, конфигурацией системы и установленным ПО, которое может вмешиваться в работу системы. Давайте рассмотрим эту проблему более детально и предложим возможные решения.
Теория
Причины ошибки 0x80070005: Access Denied
Код ошибки 0x80070005 переводится как «Доступ запрещен». Это означает, что текущий пользователь не имеет достаточных прав для выполнения определенной операции или доступа к необходимым системным ресурсам. В контексте winget
, данная ошибка обычно возникает из-за:
- Недостаточных прав доступа. Обычным пользователям может быть запрещено выполнять команды, которые требуют доступа к системным файлам и ресурсам.
- Конфликт с другими программами. Установка и использование UniGetUI могли изменить настройки
winget
, либо произвести изменения в системных компонентах, которые нарушили корректную работуwinget
для обычных пользователей. - Повреждение конфигурационных файлов. Иногда используемые программами файлы конфигурации, кэши или реестры могут быть повреждены, что приводит к ошибкам.
Пример
Рассмотрим ваш случай:
- Вы используете Windows 10 и столкнулись с тем, что
winget
перестал работать для обычных пользователей после установки и использования UniGetUI. - Вы наблюдаете, что работа от имени администратора решает проблему, что подтверждает гипотезу о недостаточной правоспособности учетной записи.
Действия, которые вы уже предпринимаете:
- Вы удаляли и переустанавливали UniGetUI.
- Пробовали несколько решений, предложенных в статьях и на форумах, которые не дали результата.
Применение: Решение проблемы
1. Проверьте права доступа
- Убедитесь, что
winget
установлен на уровне системы, а не пользователя. В командной строке от имени администратора выполните:winget source reset winget source update
- Проверьте права доступа к каталогу приложения. Убедитесь, что ваш пользователь имеет доступ к каталогам
winget
в папках Program Files.
2. Восстановите default источники winget
Иногда сторонние приложения могут изменять настройки источников winget
. Выполните следующие команды в CMD от имени администратора:
winget source reset
winget source update
3. Удалите и переустановите winget
Если проблема не решается, попробуйте переустановить winget
:
- Удалите
winget
. Сначала убедитесь, что он полностью удален. Это можно сделать через PowerShell с правами администратора:Get-AppxPackage *Microsoft.DesktopAppInstaller* | Remove-AppxPackage
- Установите
winget
заново. Посетите Microsoft Store и установитеApp Installer
, который содержитwinget
.
4. Проверьте настройки безопасности и контроля учетных записей
- Проверьте настройки UAC (User Account Control). Убедитесь, что уровень контроля учетных записей подходит для запуска
winget
обычным пользователем.
5. Изолируйте проблему
- Временно отключите или удалите UniGetUI и повторите тесты работы
winget
. Это поможет определить, не является ли UniGetUI причиной проблемы.
6. Логи и отладка
- Используйте логи для диагностики:
winget --verbose upgrade
Это даст более подробное представление о том, где именно возникает ошибка.
Эти шаги направлены на решение предполагаемых проблем с правами доступа и конфигурацией. В случае если ни одно из предложенных решений не помогло, стоит рассмотреть возможность выполнения полной переустановки системы или обращения за поддержкой в Microsoft, предоставив детали возникшей ошибки.