При отсутствии доступа к локальному объекту вы не можете управлять его разрешениями, отсутствие такой возможности может быть компенсировано сменой владельца объекта, после чего вы сможете управлять его разрешениями. Сделать это можно несколькими способами, рассмотрим их по порядку.
Способ 1. Изменение владельца с использованием графического интерфейса Windows
Откройте проводник (редактор реестра) и перейдите к папке/файлу/разделу реестра, к которому необходимо получить доступ.
Изменение владельца файла или папки в Windows 10/8.1/8
Нажмите правую кнопку мыши и выберите в контекстном меню Свойства
Перейдите на вкладку Безопасность
Нажмите кнопку Дополнительно
Нажмите ссылку Изменить вверху окна параметров безопасности.
После нажатия ссылки для изменения владельца вы увидите стандартное диалоговое окно выбора пользователя. Напечатайте в поле 'Имена выбираемых объектов' имя своей учетной записи или название группы Администраторы. Если вы не знаете точно как написать, то нажмите в окне выбора пользователя кнопку Дополнительно, а в следующем кнопку Поиск. Выберите группу Администраторы (или свою учетную запись) и нажмите кнопку OK.
Если вы меняете владельца папки, то по умолчанию будет изменен владелец только этой папки, но не вложенных в нее папок и файлов. Для того, чтобы заменить владельца всех дочерних объектов папки, установите флажок на параметре "Заменить владельца подконтейнеров и объектов".
После того как вы нажмете кнопку OK для изменения владельца папки, может быть показано предупреждение об отсутствии разрешений для вашей учетной записи. Нажмите кнопку Да для получения полного доступа к объекту.
Изменение владельца файла или папки в Windows 7/Vista
Перейдите на вкладку Владелец и нажмите кнопку Изменить
Группа Администраторы и текущая учетная запись будут доступны для выбора в основном окне. Если их нет, то нажмите кнопку 'Другие пользователи и группы' и добавьте пользователя или группу так же как описано выше для Windows 10/8 на шаге 2.5
Если вы меняете владельца папки, то по умолчанию будет изменен владелец только этой папки, но не вложенных в нее папок и файлов. Для того, чтобы заменить владельца всех дочерних объектов папки, установите флажок на параметре "Заменить владельца подконтейнеров и объектов".
После того как вы нажмете кнопку OK для изменения владельца папки, может быть показано предупреждение об отсутствии разрешений для вашей учетной записи. Нажмите кнопку Да для получения полного доступа к объекту.
Изменение владельца раздела реестра
Нажмите правую кнопку мыши на подразделе реестра (в левой части редактора реестра) и выберите пункт Разрешения
Нажмите кнопку Дополнительно
Если вы используете Windows 10 или 8, выполните шаги 2.4 и 2.5 инструкции изменения владельца файлов и папок
Если вы используете Windows 7 или Vista, выполните шаги 3.2 и 3.3 инструкции изменения владельца файлов и папок
Установка разрешений объекта для учетной записи
На вкладке Безопасность нажмите кнопку Изменить под списком пользователей и групп
Нажмите кнопку Добавить
Введите имя своей учетной записи и нажмите ОК
Если вы не знаете точно как написать, то нажмите в окне выбора пользователя кнопку Дополнительно, а в следующем кнопку Поиск. Выберите свою учетную запись и нажмите кнопку OK.
Установите необходимые разрешения. Если установить разрешение Полный доступ, то вы автоматически получаете все перечисленные ниже
Способ 2. Использование утилит командной строки takeown и icacls
Примечание. Этот способ можно применить только для получения доступа к файлам или папкам, но не к разделам реестра.
Использование утилиты командной строки takeown для изменения владельца объектов
Откройте командную строку (cmd) от имени администратора Примечание. Запуск от имени администратора в данном случае обязателен независимо от того, какими правами обладает учетная запись, в которой вы работаете в данный момент. Исключение может составлять только случай, когда вы работаете во встроенной учетной записи Администратор, которая по умолчанию отключена.
Для назначения текущего пользователя владельцем файла выполните команду takeown /f "<полный путь к файлу>". Пример:
takeown /f "C:\Windows\System32\imageres.dll"
Для назначения текущего пользователя владельцем папки и всего ее содержимого выполните команду takeown /f "<полный путь к папке>" /r /d y. Пример:
takeown /f "C:\System Volume Information" /r /d y
Параметры, используемые в команде:
/f - шаблон для имени файла или папки, поддерживает подстановочные символы, например takeown /f %windir%\*.txt
/r - рекурсия: обрабатываются все файлы и подкаталоги в указанной папке
/d - применяется совместно с /r для подавления запроса получения доступа к каждому файлу или подкаталогу
y - применяется совместно с /d для подтверждения смены владельца каждого файла или подкаталога
Для назначения группы Администраторы владельцем файла или папки используются такие же команды, но с параметром /a. Примеры:
takeown /f "C:\Windows\System32\imageres.dll" /a
takeown /f "C:\System Volume Information" /a /r /d y
Полный синтаксис утилиты командной строки takeown вы можете получить командой takeown /?
Использование утилиты командной строки icacls для изменения разрешений объектов
Для изменения разрешений файла используется команда icacls <полный путь к файлу> /grant <имя пользователя или группы>:F /c /l. Пример:
:F - предоставление полного доступа указанной учетной записи или группе
/t - обрабатываются все файлы и подкаталоги в указанной папке
/c - продолжение обработки при файловых ошибках, ошибки выводятся на экран
/l - используется для обработки символьных ссылок, с этим параметром обрабатывается сама ссылка, а не ее целевой объект
/q - подавляются все сообщения об успешной обработке, сообщения об ошибках будут выводиться на экран
Полный синтаксис утилиты командной строки takeown вы можете получить командой takeown /?
Как установить службу TrustedInstaller владельцем файлов и папок
Владельцем многих системных файлов и папок является служба TrustedInstaller. В случае изменения владельца таких файлов или папок, система будет работать нестабильно, а многие задачи обслуживания системы перестанут работать.
В случае если вы изменили владельца системной папки для удаления или записи файлов, или файла для его замены или редактирования, после выполнения необходимых действий требуется назначить владельца по умолчанию, то есть TrustedInstaller.
Использование графического интерфейса Windows
Выполните шаги с 2.1 по 2.4 инструкции изменения владельца файлов и папок
Напечатайте в поле 'Имена выбираемых объектов' имя службы NT Service\TrustedInstaller и нажмите кнопку OK.
Если вы назначаете TrustedInstaller владельцем папки, не рекомендуется устанавливать флажок на параметре 'Заменить владельца подконтейнеров и объектов'. Дело в том, что при этом будет заменен владелец всех подкаталогов и файлов, содержащихся в папке, что также может привести к нестабильной работе системы из-за отсутствия разрешений у других пользователей. Например, по умолчанию владельцем папки \Windows\ является TrustedInstaller, но владельцем папки \Windows\SoftwareDistribution\ является Система.
Использование утилиты командной строки icacls
Для изменения владельца файла или папки на TrustedInstaller откройте командную строку (cmd) от имени администратора
В результате ее выполнения владельцем папки C:\System Volume Information будет установлен TrustedInstaller.
Добавление команды смены владельца объекта в контекстное меню проводника
Для упрощения процедуры смены владельца вы можете добавить соответствующий пункт в контекстное меню проводника. В предлагаемом варианте также используются утилиты командной строки takeown и icacls с определенными параметрами, а полученная команда установит текущего пользователя владельцем объекта, на котором будет применяться.
Вы можете скачать готовые файлы реестра для импортирования по этой ссылке: TakeOwnership.zip
Содержимое архива:
Add_Take_Ownership_RU.reg - для добавления пункта меню смены владельца в русской версии Windows
Add_Take_Ownership_EN.reg - для добавления пункта меню смены владельца в английской версии Windows
Add_Take_Ownership_with_Pause_RU.reg - для добавления пункта меню смены владельца, при использовании которого окно выполнения команды не закрывается автоматически после обработки. В окне выполнения команды выводится результат обработки. Файл используется добавления пункта меню в русской версии Windows.
Add_Take_Ownership_with_Pause_EN.reg - для добавления пункта меню смены владельца в английской версии Windows. Окно выполнения команды не закрывается автоматически, так же как и для файла №3.
Remove_Take_Ownership.reg - для удаления пункта меню смены владельца независимо от языка системы и используемого файла для его добавления.
Примечание. Если ранее вами был добавлен другой пункт контекстного меню с использованием такого же метода (запись в раздел реестра HKEY_CLASSES_ROOT\*\shell\runas), то он будет заменен.
Описание файлов реестра, содержащихся в архиве:
Для добавления пункта меню "Смена владельца" в русской версии Windows примените этот твик реестра:
Добавление команды смены владельца объектов на TrustedInstaller в контекстное меню проводника
Для изменения владельца файлов и папок на TrustedInstaller вы также можете добавить контекстное меню проводника. В предлагаемом варианте используется утилита командной строки icacls.
Готовые файлы реестра для добавления и удаления этого пункта меню: RestoreOwnerShip.zip
Для добавления пункта 'Сменить владельца на TrustedInstaller' в контекстное меню файлов и папок используйте следующий твик реестра:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas] @="Сменить владельца на TrustedInstaller" "HasLUAShield"="" "NoWorkingDirectory"=""
Обратите внимание, что для реализации любого пункта контекстного меню (для назначения владельцем текущего пользователя и для добавления пункта изменения владельца на TrustedInstaller) используются одинаковые разделы реестра и параметры. В связи с этим добавление обоих пунктов одновременно, в рассматриваемом варианте, невозможно. В следующей главе статьи мы рассмотрим варианты одновременного сосуществования этих двух пунктов контекстного меню.
Добавление каскадного меню с пунктами смены владельца на текущего пользователя и на TrustedInstaller
В прошлых примерах мы использовали подраздел реестра runas, команды по умолчанию из которого запускаются с запросом повышения прав, то есть по сути выполняется запуск от имени администратора. Добавление каскадного меню с несколькими пунктами не дает такого преимущества, но запуск команд от имени администратора необходим для их выполнения.
Есть несколько путей решения этой проблемы, но использование сторонней утилиты для запуска команды с повышением привилегий все-таки является самым быстрым и простым в данном случае.
Таких утилит несколько, каждая из них обладает своими преимуществами, но большинство из них являются проектами энтузиастов и не поддерживаются и не дорабатываются уже довольно долгое время.
Исключение составляют NirCmd от известного разработчика полезных утилит Nir Sofer и PsExec Марка Руссиновича.
Я остановил свой выбор на NirCmd ввиду того, что уже использую эту утилиту для других задач, а PsExec все более узкоспециализированная утилита.
Весь процесс добавления пунктов меню и создания каскадных меню уже был рассмотрен на страницах блога.
Cкачайте NirCmd x86 (для 32-разрядных систем) или NirCmd x64 (для 64-разрядных систем)
Скопируйте файл nircmd.exe из архива в папку Windows Вы можете этого не делать, но в таком случае вам придется модифицировать предложенные файлы реестра и указать полный путь к nircmd.exe
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Об авторе
Павел Кравченко занимается развитием компьютерного портала OSzone.net, объединяющего сайт, форум и каталог программного обеспечения. Он отвечает на вопросы участников форума OSZone с 2003 года, а на сайте публикует статьи о клиентских операционных системах Microsoft.
С 2006 года Павел ежегодно становится обладателем награды Наиболее ценный специалист Microsoft (MVP), присуждаемой за вклад в развитие технических сообществ.
Статья нуждается в доработке. Надо написать как вернуть обратно владельца TrustedInstaller, а то я операцию с файлом провёл, а когда хотел вернуть обратно владельца TrustedInstaller то фиг вам. Пришлось искать инфу с другого компа!
народ подскажите, я установил смену владельца в контекстном меню, но когда хочешь сменить владельца на многих файлах, максимум можно сделать только на 15 файлах, если выделять больше, то в контекстном меню смена владельца не отображается. Что за ограничение это? И еще пункт смены владельца не отображается, если выделять файлы с разными расширениями. Кто что подскажет по поводу этого?
Первый способ: Ошибка применения безопасности Ошибка при применении параметров к: C:\Documents and Settings Не удалось выполнить перечисление объектов в контейнере. Отказано в доступе. Продолжить Отмена