
В последнее время меня очень раздражает тот факт, что я не могу редактировать файлы в папке C:\Program Files\WindowsApps. Я использовал команду takedown в повышенных правах CMD и изменил разрешения, чтобы предоставить администраторам полный контроль (я администратор), и изменил владельца на Администраторов. Я могу удалять файлы/папки, но всякий раз, когда я пытаюсь редактировать файлы или добавлять файлы, я получаю сообщение об ошибке «Доступ запрещен». Как включить создание и редактирование файлов в WindowsApps?
решение1
Эта WindowsApps
папка — одна из самых защищенных папок в Windows 10. Она содержит все приложения Windows UWP, доступ к которым Microsoft ревностно охраняет. Защита этой папки может меняться в разных версиях Windows.
Обычные методы получения права собственности и назначения разрешений недостаточны для этой папки, но все еще требуются в качестве первого шага для получения доступа. После их выполнения доступ к папке становится возможным для копирования, но редактирование по-прежнему заблокировано. Для редактирования нужно сохранить файл в другом месте и только потом заменить оригинал отредактированной версией.
Еще одно замечание: восстановить владельца папки можно TrustedInstaller
без потери дополнительных разрешений, которые были назначены, с помощью команды:
icacls "%ProgramFiles%\WindowsApps" /setowner "NT Service\TrustedInstaller" /t
Если кто-то хочет использовать командную строку с повышенными привилегиями для получения доступа к папке, то вот команды:
takeown /F "%ProgramFiles%\WindowsApps"
takeown /F "%ProgramFiles%\WindowsApps" /r /d y
icacls "%ProgramFiles%\WindowsApps" /grant Administrators:F
icacls "%ProgramFiles%\WindowsApps" /grant Administrators:F /t
Я также отмечаю, что проблем с разрешениями можно избежать, используя следующие команды до и после изменения разрешений, чтобы полностью восстановить исходные разрешения:
icacls "%ProgramFiles%\WindowsApps" /save WindowsApps.acl
icacls "%ProgramFiles%" /restore WindowsApps.acl
Чтобы дополнить замечание автора сообщения о восстановлении исходных разрешений для папки, если эти разрешения не были сохранены перед запуском, это можно сделать, введя в командной строке с повышенными привилегиями (cmd) команду:
icacls "%ProgramFiles%\WindowsApps" /q /c /t /reset
Если команда не работает, ее необходимо повторить с загрузочного CD/USB Windows, как описано в посте. Сброс ACL по умолчанию для C:\Program Files\WindowsApps:
- Следуйте инструкциям на этой странице, чтобы создать Установочный носитель Windows
- Загрузитесь с USB/CD, нажмите «Восстановить мой компьютер» по достиженииУстановитькнопка
- ВыбиратьУстранение неполадок, затемКомандная строка
- Ваш текущий диск
C:
будет загрузочным носителем, а ваш системный диск Windows, скорее всего, будет находиться вD:
, поэтому проверьте с помощьюdir D:
, и если нет, то найдите правильную букву диска. Используя букву диска, которую вы только что нашли (возможно
D:\
), введите команду:icacls "D:\Program Files\WindowsApps" /q /c /t /reset
Дождитесь завершения операции и проверьте вывод на наличие ошибок.
- Перезагрузить.
решение2
Уровень сложности [экстремально продвинутый].
На Win 10 (почти последняя версия) я прочитал оригинальный пост Гарри и решил начать с резервной копии:
Нажмите «Пуск».
Введите «cmd» и подождите, пока не нажимайте Enter.
Нажмите «Запуск от имени администратора».
Тип:
cd \Progra~1 and hit enter
Разрешения на резервное копирование:
icacls "%ProgramFiles%\WindowsApps" /save WindowsApps.acl
Затем я продолжил следовать наставлениям Гарри:
[Все еще]...расширенная командная строка для получения доступа к папке (но, к сожалению, я начал только со своего приложения, у которого были специальные настройки, которые оно хотело обновить для EyeTV 64-бит):
takeown /F "%ProgramFiles%\WindowsApps"
takeown /F "%ProgramFiles%\WindowsApps" /r /d y
icacls "%ProgramFiles%\WindowsApps\GENIA...<-your App name" /grant Administrators:F
icacls "%ProgramFiles%\WindowsApps\GENIA...<-your App name" /grant Administrators:F /t
Я был консервативен и изменил настройки вида: Выберите Вид > Параметры > Изменить параметры папки и поиска. Выберите вкладку Вид и в разделе Дополнительные параметры выберите Показывать скрытые файлы, папки и диски и нажмите ОК.
Затем я последовал посту Альбина выше, чтобы получить больше контроля и убрать наследование (не полностью, но сделать его индивидуальным) в WindowsApps:
![Изображения постов Альбина]
Теперь я нажимаю правой кнопкой мыши на папку WindowsApps в C:\Program Files, устанавливаю и снимаю галочку с "только для чтения".
Также дал себе права "Администратор", "Полный доступ" и "Применить" для получения разрешений.
Затем при повышенном cmd:
icacls "file" /setowner "NT Service\\TrustedInstaller" /T /C
Я зашел в папку Genia в WindowsApps и скопировал нужный мне файл на рабочий стол, отредактировал его и скопировал обратно в папку Program Files (с подтверждением администратора).
Вернувшись в командную строку с повышенными правами, я удалил старый файл, который хотел изменить: del «имя_файла.ini».
Затем я получил приложение Linus Torvalds Git для Windows из Википедии. Я установил git-bash, затем запустил этот «правый клик» от имени администратора.
Скопировал файл с помощью этого и получил пустой файл размером 0 байт и ошибку, но это не сломало мои приложения и доказало возможность записи.
Я получил Ubuntu 12 и использовал Rufus в режиме Freedos/mbr, чтобы создать загрузочный USB из Ubuntu AMD 64 или 32 iso, и загрузку BIOS на мой UEFI USB.
В тестовом режиме я использовал значок папки > Win10 «как называется ваш диск», чтобы смонтировать свой диск.
На значке логотипа (вверху слева) найдите терминал, щелкните и перейдите по:
cd /media/Win10/Program\ Files > enter
cat filename.ini > WindowsApps/GENIA.../Transponders/filename.ini
Я отмонтировал (извлек) Win10 обратно в представление папок. Выключение (верхняя правая кнопка), перезагрузка.
Подождите, пока не появятся точки примерно десять раз.
Извлеките USB, когда появится запрос, нажмите Enter.
Проверьте в Windows.
Мое приложение теперь работает правильно, настройки обновлены.
Я попробовал командную строку с повышенными привилегиями:
icalcs %ProgramFiles% /restore WindowsApps.acl
Никакого успеха, поэтому я сделал:
icacls "%ProgramFiles%\WindowsApps" /q /c /t /reset
Затем я последовал посту Альбина выше, чтобы удалить контроль и наследование в WindowsApps:
![Изображения постов Альбина]
Хотя он там был, Сделал себя владельцем снова. Я добавил администраторов > проверьте имена.
Добавил новое разрешение пользователя, проверьте имена;
Дал себе только чтение и выполнение, список содержимого папки, чтение во второй записи администратора;
И удалил запись полного контроля для себя.
Я изменил владельца обратно
NT Service\TrustedInstaller > проверить имена
Становится TrustedInstaller
Затем я нажимаю «Применить» и закрываю.
Мои приложения все еще работают.
решение3
Тем не менее, я решил эту проблему самостоятельно:
В командной строке администратора следующая команда скопирует папку пакета WindowsApps (или любую папку внутри нее):
robocopy /B /E /COPY:DAT D:\WindowsApps\xxx D:\MyTargetDir
Это скопирует WindowsApps\xxx
папку пакета в D:\
папку MyTargetDir
на D:\
. Это работает, потому что параметр /B сообщает Windows использовать токен резервного копирования, который игнорирует любые разрешения или ограничения / политики.
После этого файлы необходимо расшифровать:
cipher /D /S:D:\MyTargetDir
Затем файлы можно редактировать.
Удалите исходную папку (или переименуйте ее):
mv D:\WindowsApps\xxx D:\WindowsApps\xxx_
А затем скопируйте обратно отредактированные файлы:
robocopy /B /E /COPY:DAT D:\MyTargetDir D:\WindowsApps\xxx
ОДНАКО: Обратите внимание, я до сих пор не понял, как запустить отредактированное приложение, так как на данный момент Windows Store будет возвращать ошибки для приложений в этих папках, как только будут изменены разрешения. Изменение их обратно не сработает.
решение4
Я перепробовал все решения по редактированию файлов Age of Empire IV, даже для Linux! Но это не работает, каталог поврежден... мы можем просто переместить его в корзину :/