Полезные советы

Восстановление владельца и разрешений системных папок и файлов Windows

Восстановление владельца и разрешений системных папок и файлов Windows

Среди действий пользователей Windows 11/10 и других версий ОС, которые чаще других приводят к проблемам — действия по изменению прав доступа и владельцев системных файлов и папок с последующими манипуляциями. При этом вернуть исходные значения не всегда столь же легко как поменять их.

В этой инструкции подробно о возможных вариантах возврата исходных разрешений и владельцев для системных файлов и папок Windows, а также дополнительная информация, которая может оказаться полезной в контексте темы.

Способы восстановления разрешений для папок и файлов

Самый часто встречающийся совет по сбросу разрешений для папок и файлов выглядит как команда, запущенная от имени администратора (пример для папки, для файла не следует указывать параметр /t):

icacls "путь_к_папке" /reset /t /c /q

Этот способ имеет право на существование, но не всегда применим: во многих случаях (например, для папки WindowsApps, с которой пользователи пробуют взаимодействовать чаще других и что чаще остального приводит к проблемам) он может лишь усугубить ситуацию, поскольку команда не восстанавливает системные записи разрешений, а лишь восстанавливает на разрешения, унаследованные от родительской папки.

Теперь переходим к вариантам, которые могут сработать, если у вас возникла необходимость восстановления разрешений и владельца папок и файлов.

Предупреждение: ни один из методов не является гарантией возврата работоспособности, более того, есть вероятность, что ситуация ухудшится. Все действия под вашу ответственность.

Восстановление отдельного системного файла

Если проблема возникла с отдельным системным файлов где-либо внутри папки Windows, и он не является критичным для работы системы (то есть его удаление не приводит к невозможности действий в ОС), вы можете выполнить следующие действия:

  1. Переместить этот файл в другое расположение (чтобы он исчез в своём «родном» расположении, но у нас сохранилась его резервная копия).
  2. В командной строке, запущенной от имени администратора, по порядку выполнить две команды
    dism /online /cleanup-image /restorehealth sfc /scannow

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

Восстановление владельца и разрешений системных папок и файлов Windows

Если да — то восстановлен он был с нужными разрешениями/владельцем. Если нет — верните файл из «резервной копии» в исходное расположение.

Экспорт и импорт ACL

Этот вариант может сработать как для папок, так и для отдельных файлов. Суть: мы можем взять списки прав нужной папки (и вложенных элементов) или файла с рабочего компьютера с такой же версией Windows или из виртуальной машины, после чего использовать их для восстановления разрешений в системе, где столкнулись с проблемами.

Читайте также:  Игра Harry Potter: Wizards Unite уже доступна. Время становиться мракоборцем и спасать мир (или Хагрида)

Шаги будут следующими:

  1. В Windows, где записи разрешений верны, запустите командную строку от имени администратора и введите следующую команду (параметр /t — только для папок, для файла не используем):
    icacls "C:путь_к_папке" /save "путь_к_файлуразрешения.txt" /t /c
  2. Перенесите созданный текстовый файл с разрешениями в систему, где возникла проблема.
  3. Восстановление разрешений из такого файла обычно производится с помощью команды
    icacls "C:путь_к_папке" /restore " путь_к_файлуразрешения.txt" /t /c

    Однако для системных файлов и папок могут быть восстановлены не все списки разрешений (прав администратора для их восстановления недостаточно). Лучше использовать методы из пунктов 4 или 5.

  4. Запустите Windows PowerShell от имени Администратора (например, через поиск по «powershell», правый клик — запуск от имени администратора) и по порядку введите команды
    $acl = Get-Acl -Path "путь_к_файлуразрешения.txt" Set-Acl -Path " C:путь_к_папке" -AclObject $acl

    Восстановление владельца и разрешений системных папок и файлов Windows

  5. Скачайте инструмент командной строки PAExec, после чего нажмите клавиши Win+R на клавиатуре, введите команду
    путь_к_PAExec.exe -s -i powershell

    и нажмите клавиши Ctrl+Shift+Enter. В результате откроется командная строка. В ней используйте команду

    icacls "C:путь_к_папке" /restore " путь_к_файлуразрешения.txt" /t /c

    Она будет запущена с необходимыми правами и восстановит разрешения полностью.

    Восстановление владельца и разрешений системных папок и файлов Windows

Приведённые выше шаги восстановят разрешения, но не владельца. Для восстановления владельца потребуется знать (например, посмотреть в рабочей ОС) владельца по умолчанию и восстановить его с помощью командной строки, например:

  • Установка TrustedInstaller в качестве владельца папки:
    icacls "путь_к_папке" /setowner "nt servicetrustedinstaller"
  • Установка СИСТЕМА в качестве владельца всех вложенных в папку элементов
    icacls "путь_к_папке*" /setowner "СИСТЕМА"

Восстановление владельца и разрешений системных папок и файлов Windows

Учитывайте, что владельцы у корневой папки и вложенных могут отличаться: например, владелец для WindowsApps — TrustedInstaller, а для вложенных — СИСТЕМА.

Дополнительная информация

В завершение некоторые дополнительные нюансы, которые могут оказаться полезными в контексте рассмотренной темы:

  • Разрешения можно восстановить с помощью программы cacls (не icacls), она сработает без ухищрений с PAExec или использования PoweShell, но для каждого элемента придётся использовать её вручную в формате:
    cacls "путь_к_элементу" /s:"строка разрешений для элемента из файла со списком ACL (разрешениями)"
  • Если вам регулярно приходится менять владельцев и разрешения для системных папок и файлов, вы можете использовать TakeOwnershipEx — при изменениях она сохраняет резервную копию и позволяет восстановить исходные значения.
  • Для приложений из WindowsApps может помочь команда PowerShell (но есть риск, что что-то пойдет не так)
    Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)AppXManifest.xml" -ErrorAction SilentlyContinue}<.pre>
  • Если проблема возникла с папкой WindowsApps на GitHub есть скрипт для автоматического восстановления прав и владельца.

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

Источник

Вам также может понравиться...

Добавить комментарий