Программа для смены владельца файлов и папок
Есть несколько способов стать владельцем папки или файла, основные среди которых — использование командной строки и дополнительные настройки безопасности ОС. Есть также и сторонние программы, позволяющие изменить владельца папки в два клика, на одного из представителей которых тоже посмотрим. Все описанное ниже подходит для Windows 7, 8 и 8.1, а также Windows 10.
Примечания: для того, чтобы стать владельцем того или иного элемента с использованием способов ниже, вы должны иметь права администратора на компьютере. Кроме этого, не следует изменять владельца для всего системного диска — это может повлечь нестабильную работу Windows.
Дополнительная информация: если вы хотите стать владельцем папки для того, чтобы удалить ее, а иначе она не удаляется, и пишет Запросите разрешение от TrustedInstaller или от Администраторы, используйте следующую инструкцию (там же есть видео): Запросите разрешение от Администраторы на удаление папки.
Использование команды takeown для того, чтобы стать владельцем объекта
Для того, чтобы изменить владельца папки или файла с помощью командной строки, имеются две команды, первая из них — takeown.
Для ее использования, запустите командную строку от имени Администратора (в Windows 8 и Windows 10 это можно сделать из меню, вызываемого правым кликом по кнопке Пуск, в Windows 7 — с помощью правого клика по командной строке в стандартных программах).
В командной строке, в зависимости от того, владельцем какого объекта вам нужно стать, введите одну из команд:
- takeown /F “полный путь к файлу” — стать владельцем указанного файла. Чтобы сделать всех администраторов компьютера владельцами, используйте параметр /A после пути к файлу в команде.
- takeown /F “путь к папке или диску” /R /D Y — стать владельцем папки или диска. Путь к диску указывается в виде D: (без слэша), путь к папке — C:\Folder (также без слэша).
Как изменить владельца папки или файла с помощью команды icacls
Еще одна команда, которая позволяет получить доступ к папке или файлам (изменить их владельца) — icacls, использовать которую следует так же, в командной строке, запущенной от имени администратора.
Для установки владельца используйте команду в следующем виде (пример на скриншоте):
Icacls “путь к файлу или папке” /setowner “Имя_пользователя” /T /C
Пути указываются аналогично предыдущему способу. Если требуется сделать владельцами всех администраторов, то вместо имени пользователя используйте Администраторы (или, если не сработает, Administrators).
Дополнительная информация: помимо того, чтобы стать владельцем папки или файла, вам может потребоваться также получить разрешения для изменения, для этого вы можете использовать следующую команду (дает полные права пользователю для папки и вложенных объектов): ICACLS «%1» /grant:r «имя_пользователя»:(OI)(CI)F
Получение доступа с помощью настроек безопасности
Следующий способ — использовать лишь мышь и интерфейс Windows, не обращаясь к командной строке.
- Кликните правой кнопкой мыши по файлу или папке, доступ к которому нужно получить (стать владельцем), в контекстном меню выберите пункт «Свойства».
- На вкладке «Безопасность» нажмите кнопку «Дополнительно».
- Напротив пункта «Владелец» нажмите «Изменить».
- В открывшемся окне нажмите кнопку «Дополнительно», а в следующем — кнопку «Поиск».
- Выберите в списке пользователя (или группу пользователей), которого нужно сделать владельцем элемента. Нажмите Ок, затем — снова Ок.
- Если вы изменяете владельца папки или диска, а не отдельного файла, отметьте также пункт «Заменить владельца подконтейнеров и объектов».
- Нажмите Ок.
Другие способы стать владельцем папок и файлов
Есть и другие способы решить проблему «отказано в доступе» и быстро стать владельцем, например, с помощью сторонних программ, встраивающих пункт «Стать владельцем» в контекстное меню проводника. Одна из таких программ — TakeOwnershipPro, бесплатная и, насколько я могу судить, без чего-то потенциально нежелательного. Аналогичный пункт в контекстное меню можно добавить и путем редактирования реестра Windows.
Однако, с учетом того, что подобная задача возникает сравнительно редко, я не рекомендую устанавливать стороннее ПО или вносить изменения в систему: на мой взгляд, лучше изменить владельца элемента одним из способов «вручную».
В результате мы запустим проводник с администраторскими привилегиями. Выставляем права и радуемся своей находчивости.
Но пришло время перемен и в более новых системах эта команда запустит проводник от текущего пользователя.
Можно, конечно, выставлять права через администраторские шары со своего рабочего места, или запускать от себя другие файловые менеджеры… Но иногда выставить права нужно здесь и сейчас, а установка лишней программы на компьютер, которой придется пользоваться раз в месяц — это неправильно.
Итак, я нашел два способа побороть эту ситуацию: один правильный и интересный, второй быстрый и забавный. Начнем с первого.
Способ 1. Для любознательных и терпеливых
За разграничение прав проводника отвечает один из COM объектов. А именно — Elevated-Unelevated Explorer Factory.
Находится это чудо следующим образом:
Запускаете cmd с правами администратора — dcomcnfg и далее в настройке DCOM ищите параметр Elevated-Unelevated Explorer Factory.
и там ищите нашего спрятанного зверька:
Однако редактировать этот параметр вам скорее всего не дадут. Нет прав на изменение ветки реестра HKEY_CLASSES_ROOT\AppID\
Когда нас останавливали такие пустяки? Делаем себя владельцем, изменяем права и снова запускаем dcomcnfg
УРА! Мы можем теперь выставить параметр на вкладке Удостоверение — Запускающий пользователь.
Муторно немного, да? Можно сразу редактировать ключик реестра — HKEY_CLASSES_ROOT\AppID\\RunAs
- значение Interactive User для текущего пользователя
- удаление этого параметра для запускающего пользователя
- имя пользователя для запуска проводника от какого-то конкретного пользователя
Возможно решить данный вопрос можно через политики, но увы -я такое не нашел, да и не применимо на работе у меня такое. Разве что приходит на ум батник на ключа реестра. Ну что же, первый способ мы осилили…
А теперь время магии.
Способ 2. Быстрый и веселый
Запускаем cmd от имени администратора, открываем блокнот, выбираем Открыть и отобразить все файлы и спокойно меняем права на файлы и папки.
Картинка, иллюстрирующая мои глаза в момент этого чудного открытия прилагается:
Благодарю за внимание!
UPD
Благодаря пользователю denis_g и нескольким другим линуксойдам, вспомнил, что давно читал про консольную команду управления правами доступа — CACLS
Раз ссылка на синтаксис
Два ссылка на синтаксис
Получается, добавление пользователя с правами на изменение делается так:
cacls PATH:\To\FILE /t /e /p username:C
Где переменные: /t — подкаталоги (для папок), /e — edit т.е. изменение существующих прав, /p — изменение пав пользователю (если нет — добавит), С — чтение.
Осторожно, сперва потренируйтесь, ибо можно снести в null все права на папку!
UPD2 у меня не заработал
Зажать SHIFT и выбрать «Запуск от имени другого пользователя» экзешника проводника…
UPD3 от пользователя tachidi
1) Убить в процессах explorer.exe
2) Запустить его от имени адмиинстраторской учеткой
3) Выставить необходимые парва
4) Не забыть вернуть все обратно!
При отсутствии доступа к локальному объекту вы не можете управлять его разрешениями, отсутствие такой возможности может быть компенсировано сменой владельца объекта, после чего вы сможете управлять его разрешениями. Сделать это можно несколькими способами, рассмотрим их по порядку.
Способ 1. Изменение владельца с использованием графического интерфейса Windows
-
Откройте проводник (редактор реестра) и перейдите к папке/файлу/разделу реестра, к которому необходимо получить доступ.
Изменение владельца файла или папки в Windows 10/8.1/8
Нажмите ссылку Изменить вверху окна параметров безопасности.
После нажатия ссылки для изменения владельца вы увидите стандартное диалоговое окно выбора пользователя. Напечатайте в поле 'Имена выбираемых объектов' имя своей учетной записи или название группы Администраторы. Если вы не знаете точно как написать, то нажмите в окне выбора пользователя кнопку Дополнительно, а в следующем кнопку Поиск. Выберите группу Администраторы (или свою учетную запись) и нажмите кнопку OK.
Если вы меняете владельца папки, то по умолчанию будет изменен владелец только этой папки, но не вложенных в нее папок и файлов. Для того, чтобы заменить владельца всех дочерних объектов папки, установите флажок на параметре "Заменить владельца подконтейнеров и объектов".
Изменение владельца файла или папки в Windows 7/Vista
-
Выполните шаги 2.1-2.3 Перейдите на вкладку Владелец и нажмите кнопку Изменить
Группа Администраторы и текущая учетная запись будут доступны для выбора в основном окне. Если их нет, то нажмите кнопку 'Другие пользователи и группы' и добавьте пользователя или группу так же как описано выше для Windows 10/8 на шаге 2.5
Если вы меняете владельца папки, то по умолчанию будет изменен владелец только этой папки, но не вложенных в нее папок и файлов. Для того, чтобы заменить владельца всех дочерних объектов папки, установите флажок на параметре "Заменить владельца подконтейнеров и объектов".
Изменение владельца раздела реестра
Если вы используете Windows 7 или Vista, выполните шаги 3.2 и 3.3 инструкции изменения владельца файлов и папок
Установка разрешений объекта для учетной записи
- На вкладке Безопасность нажмите кнопку Изменить под списком пользователей и групп
Если вы не знаете точно как написать, то нажмите в окне выбора пользователя кнопку Дополнительно, а в следующем кнопку Поиск. Выберите свою учетную запись и нажмите кнопку OK.
Способ 2. Использование утилит командной строки takeown и icacls
Примечание. Этот способ можно применить только для получения доступа к файлам или папкам, но не к разделам реестра.
Использование утилиты командной строки takeown для изменения владельца объектов
- Откройте командную строку (cmd) от имени администратора
Примечание. Запуск от имени администратора в данном случае обязателен независимо от того, какими правами обладает учетная запись, в которой вы работаете в данный момент. Исключение может составлять только случай, когда вы работаете во встроенной учетной записи Администратор, которая по умолчанию отключена. - Для назначения текущего пользователя владельцем файла выполните команду takeown /f "". Пример:
- /f - шаблон для имени файла или папки, поддерживает подстановочные символы, например takeown /f %windir%\*.txt
- /r - рекурсия: обрабатываются все файлы и подкаталоги в указанной папке
- /d - применяется совместно с /r для подавления запроса получения доступа к каждому файлу или подкаталогу
- y - применяется совместно с /d для подтверждения смены владельца каждого файла или подкаталога
Полный синтаксис утилиты командной строки takeown вы можете получить командой takeown /?
Использование утилиты командной строки icacls для изменения разрешений объектов
- Для изменения разрешений файла используется команда icacls /grant :F /c /l. Пример:
- /grant - предоставление указанных разрешений
- :F - предоставление полного доступа указанной учетной записи или группе
- /c - продолжение обработки при файловых ошибках, ошибки выводятся на экран
- /l - используется для обработки символьных ссылок, с этим параметром обрабатывается сама ссылка, а не ее целевой объект
Полный синтаксис утилиты командной строки takeown вы можете получить командой takeown /?
Как установить службу TrustedInstaller владельцем файлов и папок
Владельцем многих системных файлов и папок является служба TrustedInstaller. В случае изменения владельца таких файлов или папок, система будет работать нестабильно, а многие задачи обслуживания системы перестанут работать.
В случае если вы изменили владельца системной папки для удаления или записи файлов, или файла для его замены или редактирования, после выполнения необходимых действий требуется назначить владельца по умолчанию, то есть TrustedInstaller.
Использование графического интерфейса Windows
- Выполните шаги с 2.1 по 2.4 инструкции изменения владельца файлов и папок
- Напечатайте в поле 'Имена выбираемых объектов' имя службы NT Service\TrustedInstaller и нажмите кнопку OK.
Если вы назначаете TrustedInstaller владельцем папки, не рекомендуется устанавливать флажок на параметре 'Заменить владельца подконтейнеров и объектов'. Дело в том, что при этом будет заменен владелец всех подкаталогов и файлов, содержащихся в папке, что также может привести к нестабильной работе системы из-за отсутствия разрешений у других пользователей. Например, по умолчанию владельцем папки \Windows\ является TrustedInstaller, но владельцем папки \Windows\SoftwareDistribution\ является Система.
Использование утилиты командной строки icacls
- Для изменения владельца файла или папки на TrustedInstaller откройте командную строку (cmd) от имени администратора
- Выполните следующую команду команду:
Добавление команды смены владельца объекта в контекстное меню проводника
Для упрощения процедуры смены владельца вы можете добавить соответствующий пункт в контекстное меню проводника.
В предлагаемом варианте также используются утилиты командной строки 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 примените этот твик реестра:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
[HKEY_CLASSES_ROOT\dllfile\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
[HKEY_CLASSES_ROOT\Drive\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
[HKEY_CLASSES_ROOT\dllfile\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
[HKEY_CLASSES_ROOT\Drive\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
Windows Registry Editor Version 5.00
Добавление команды смены владельца объектов на TrustedInstaller в контекстное меню проводника
Для изменения владельца файлов и папок на TrustedInstaller вы также можете добавить контекстное меню проводника.
В предлагаемом варианте используется утилита командной строки icacls.
Готовые файлы реестра для добавления и удаления этого пункта меню: RestoreOwnerShip.zip
-
Для добавления пункта 'Сменить владельца на TrustedInstaller' в контекстное меню файлов и папок используйте следующий твик реестра:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas]
@="Сменить владельца на TrustedInstaller"
"HasLUAShield"=""
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
"IsolatedCommand"="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Сменить владельца на TrustedInstaller"
"HasLUAShield"=""
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
"IsolatedCommand"="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
Windows Registry Editor Version 5.00
Обратите внимание, что для реализации любого пункта контекстного меню (для назначения владельцем текущего пользователя и для добавления пункта изменения владельца на TrustedInstaller) используются одинаковые разделы реестра и параметры. В связи с этим добавление обоих пунктов одновременно, в рассматриваемом варианте, невозможно.
В следующей главе статьи мы рассмотрим варианты одновременного сосуществования этих двух пунктов контекстного меню.
Добавление каскадного меню с пунктами смены владельца на текущего пользователя и на TrustedInstaller
В прошлых примерах мы использовали подраздел реестра runas, команды по умолчанию из которого запускаются с запросом повышения прав, то есть по сути выполняется запуск от имени администратора. Добавление каскадного меню с несколькими пунктами не дает такого преимущества, но запуск команд от имени администратора необходим для их выполнения.
Есть несколько путей решения этой проблемы, но использование сторонней утилиты для запуска команды с повышением привилегий все-таки является самым быстрым и простым в данном случае.
Таких утилит несколько, каждая из них обладает своими преимуществами, но большинство из них являются проектами энтузиастов и не поддерживаются и не дорабатываются уже довольно долгое время.
Исключение составляют NirCmd от известного разработчика полезных утилит Nir Sofer и PsExec Марка Руссиновича.
Я остановил свой выбор на NirCmd ввиду того, что уже использую эту утилиту для других задач, а PsExec все более узкоспециализированная утилита.
Весь процесс добавления пунктов меню и создания каскадных меню уже был рассмотрен на страницах блога.
- Cкачайте NirCmd x86 (для 32-разрядных систем) или NirCmd x64 (для 64-разрядных систем)
- Скопируйте файл nircmd.exe из архива в папку Windows
Вы можете этого не делать, но в таком случае вам придется модифицировать предложенные файлы реестра и указать полный путь к nircmd.exe - Скачайте архив Take_OwnerShip_Restore_Owner_Cascade.zip и извлеките reg-файлы из него в отдельную папку
- Запустите файл Add_Take_Ownership_Restore_Owner.reg для добавления меню
Для удаления этого меню используйте файл Remove_Take_Ownership_Restore_Owner.reg
С 2006 года Павел ежегодно становится обладателем награды Наиболее ценный специалист Microsoft (MVP), присуждаемой за вклад в развитие технических сообществ.
При отсутствии доступа к локальному объекту вы не можете управлять его разрешениями, отсутствие такой возможности может быть компенсировано сменой владельца объекта, после чего вы сможете управлять его разрешениями. Сделать это можно несколькими способами, рассмотрим их по порядку.
Способ 1. Изменение владельца с использованием графического интерфейса Windows
-
Откройте проводник (редактор реестра) и перейдите к папке/файлу/разделу реестра, к которому необходимо получить доступ.
Изменение владельца файла или папки в Windows 10/8.1/8
Нажмите ссылку Изменить вверху окна параметров безопасности.
После нажатия ссылки для изменения владельца вы увидите стандартное диалоговое окно выбора пользователя. Напечатайте в поле 'Имена выбираемых объектов' имя своей учетной записи или название группы Администраторы. Если вы не знаете точно как написать, то нажмите в окне выбора пользователя кнопку Дополнительно, а в следующем кнопку Поиск. Выберите группу Администраторы (или свою учетную запись) и нажмите кнопку OK.
Если вы меняете владельца папки, то по умолчанию будет изменен владелец только этой папки, но не вложенных в нее папок и файлов. Для того, чтобы заменить владельца всех дочерних объектов папки, установите флажок на параметре "Заменить владельца подконтейнеров и объектов".
Изменение владельца файла или папки в Windows 7/Vista
-
Выполните шаги 2.1-2.3 Перейдите на вкладку Владелец и нажмите кнопку Изменить
Группа Администраторы и текущая учетная запись будут доступны для выбора в основном окне. Если их нет, то нажмите кнопку 'Другие пользователи и группы' и добавьте пользователя или группу так же как описано выше для Windows 10/8 на шаге 2.5
Если вы меняете владельца папки, то по умолчанию будет изменен владелец только этой папки, но не вложенных в нее папок и файлов. Для того, чтобы заменить владельца всех дочерних объектов папки, установите флажок на параметре "Заменить владельца подконтейнеров и объектов".
Изменение владельца раздела реестра
Если вы используете Windows 7 или Vista, выполните шаги 3.2 и 3.3 инструкции изменения владельца файлов и папок
Установка разрешений объекта для учетной записи
- На вкладке Безопасность нажмите кнопку Изменить под списком пользователей и групп
Если вы не знаете точно как написать, то нажмите в окне выбора пользователя кнопку Дополнительно, а в следующем кнопку Поиск. Выберите свою учетную запись и нажмите кнопку OK.
Способ 2. Использование утилит командной строки takeown и icacls
Примечание. Этот способ можно применить только для получения доступа к файлам или папкам, но не к разделам реестра.
Использование утилиты командной строки takeown для изменения владельца объектов
- Откройте командную строку (cmd) от имени администратора
Примечание. Запуск от имени администратора в данном случае обязателен независимо от того, какими правами обладает учетная запись, в которой вы работаете в данный момент. Исключение может составлять только случай, когда вы работаете во встроенной учетной записи Администратор, которая по умолчанию отключена. - Для назначения текущего пользователя владельцем файла выполните команду takeown /f "". Пример:
- /f - шаблон для имени файла или папки, поддерживает подстановочные символы, например takeown /f %windir%\*.txt
- /r - рекурсия: обрабатываются все файлы и подкаталоги в указанной папке
- /d - применяется совместно с /r для подавления запроса получения доступа к каждому файлу или подкаталогу
- y - применяется совместно с /d для подтверждения смены владельца каждого файла или подкаталога
Полный синтаксис утилиты командной строки takeown вы можете получить командой takeown /?
Использование утилиты командной строки icacls для изменения разрешений объектов
- Для изменения разрешений файла используется команда icacls /grant :F /c /l. Пример:
- /grant - предоставление указанных разрешений
- :F - предоставление полного доступа указанной учетной записи или группе
- /c - продолжение обработки при файловых ошибках, ошибки выводятся на экран
- /l - используется для обработки символьных ссылок, с этим параметром обрабатывается сама ссылка, а не ее целевой объект
Полный синтаксис утилиты командной строки takeown вы можете получить командой takeown /?
Как установить службу TrustedInstaller владельцем файлов и папок
Владельцем многих системных файлов и папок является служба TrustedInstaller. В случае изменения владельца таких файлов или папок, система будет работать нестабильно, а многие задачи обслуживания системы перестанут работать.
В случае если вы изменили владельца системной папки для удаления или записи файлов, или файла для его замены или редактирования, после выполнения необходимых действий требуется назначить владельца по умолчанию, то есть TrustedInstaller.
Использование графического интерфейса Windows
- Выполните шаги с 2.1 по 2.4 инструкции изменения владельца файлов и папок
- Напечатайте в поле 'Имена выбираемых объектов' имя службы NT Service\TrustedInstaller и нажмите кнопку OK.
Если вы назначаете TrustedInstaller владельцем папки, не рекомендуется устанавливать флажок на параметре 'Заменить владельца подконтейнеров и объектов'. Дело в том, что при этом будет заменен владелец всех подкаталогов и файлов, содержащихся в папке, что также может привести к нестабильной работе системы из-за отсутствия разрешений у других пользователей. Например, по умолчанию владельцем папки \Windows\ является TrustedInstaller, но владельцем папки \Windows\SoftwareDistribution\ является Система.
Использование утилиты командной строки icacls
- Для изменения владельца файла или папки на TrustedInstaller откройте командную строку (cmd) от имени администратора
- Выполните следующую команду команду:
Добавление команды смены владельца объекта в контекстное меню проводника
Для упрощения процедуры смены владельца вы можете добавить соответствующий пункт в контекстное меню проводника.
В предлагаемом варианте также используются утилиты командной строки 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 примените этот твик реестра:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
[HKEY_CLASSES_ROOT\dllfile\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
[HKEY_CLASSES_ROOT\Drive\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
[HKEY_CLASSES_ROOT\dllfile\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
[HKEY_CLASSES_ROOT\Drive\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
Windows Registry Editor Version 5.00
Добавление команды смены владельца объектов на TrustedInstaller в контекстное меню проводника
Для изменения владельца файлов и папок на TrustedInstaller вы также можете добавить контекстное меню проводника.
В предлагаемом варианте используется утилита командной строки icacls.
Готовые файлы реестра для добавления и удаления этого пункта меню: RestoreOwnerShip.zip
-
Для добавления пункта 'Сменить владельца на TrustedInstaller' в контекстное меню файлов и папок используйте следующий твик реестра:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas]
@="Сменить владельца на TrustedInstaller"
"HasLUAShield"=""
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
"IsolatedCommand"="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Сменить владельца на TrustedInstaller"
"HasLUAShield"=""
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
"IsolatedCommand"="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
Windows Registry Editor Version 5.00
Обратите внимание, что для реализации любого пункта контекстного меню (для назначения владельцем текущего пользователя и для добавления пункта изменения владельца на TrustedInstaller) используются одинаковые разделы реестра и параметры. В связи с этим добавление обоих пунктов одновременно, в рассматриваемом варианте, невозможно.
В следующей главе статьи мы рассмотрим варианты одновременного сосуществования этих двух пунктов контекстного меню.
Добавление каскадного меню с пунктами смены владельца на текущего пользователя и на TrustedInstaller
В прошлых примерах мы использовали подраздел реестра runas, команды по умолчанию из которого запускаются с запросом повышения прав, то есть по сути выполняется запуск от имени администратора. Добавление каскадного меню с несколькими пунктами не дает такого преимущества, но запуск команд от имени администратора необходим для их выполнения.
Есть несколько путей решения этой проблемы, но использование сторонней утилиты для запуска команды с повышением привилегий все-таки является самым быстрым и простым в данном случае.
Таких утилит несколько, каждая из них обладает своими преимуществами, но большинство из них являются проектами энтузиастов и не поддерживаются и не дорабатываются уже довольно долгое время.
Исключение составляют NirCmd от известного разработчика полезных утилит Nir Sofer и PsExec Марка Руссиновича.
Я остановил свой выбор на NirCmd ввиду того, что уже использую эту утилиту для других задач, а PsExec все более узкоспециализированная утилита.
Весь процесс добавления пунктов меню и создания каскадных меню уже был рассмотрен на страницах блога.
- Cкачайте NirCmd x86 (для 32-разрядных систем) или NirCmd x64 (для 64-разрядных систем)
- Скопируйте файл nircmd.exe из архива в папку Windows
Вы можете этого не делать, но в таком случае вам придется модифицировать предложенные файлы реестра и указать полный путь к nircmd.exe - Скачайте архив Take_OwnerShip_Restore_Owner_Cascade.zip и извлеките reg-файлы из него в отдельную папку
- Запустите файл Add_Take_Ownership_Restore_Owner.reg для добавления меню
Для удаления этого меню используйте файл Remove_Take_Ownership_Restore_Owner.reg
С 2006 года Павел ежегодно становится обладателем награды Наиболее ценный специалист Microsoft (MVP), присуждаемой за вклад в развитие технических сообществ.
При отсутствии доступа к локальному объекту вы не можете управлять его разрешениями, отсутствие такой возможности может быть компенсировано сменой владельца объекта, после чего вы сможете управлять его разрешениями. Сделать это можно несколькими способами, рассмотрим их по порядку.
Способ 1. Изменение владельца с использованием графического интерфейса Windows
-
Откройте проводник (редактор реестра) и перейдите к папке/файлу/разделу реестра, к которому необходимо получить доступ.
Изменение владельца файла или папки в Windows 10/8.1/8
Нажмите ссылку Изменить вверху окна параметров безопасности.
После нажатия ссылки для изменения владельца вы увидите стандартное диалоговое окно выбора пользователя. Напечатайте в поле 'Имена выбираемых объектов' имя своей учетной записи или название группы Администраторы. Если вы не знаете точно как написать, то нажмите в окне выбора пользователя кнопку Дополнительно, а в следующем кнопку Поиск. Выберите группу Администраторы (или свою учетную запись) и нажмите кнопку OK.
Если вы меняете владельца папки, то по умолчанию будет изменен владелец только этой папки, но не вложенных в нее папок и файлов. Для того, чтобы заменить владельца всех дочерних объектов папки, установите флажок на параметре "Заменить владельца подконтейнеров и объектов".
Изменение владельца файла или папки в Windows 7/Vista
-
Выполните шаги 2.1-2.3 Перейдите на вкладку Владелец и нажмите кнопку Изменить
Группа Администраторы и текущая учетная запись будут доступны для выбора в основном окне. Если их нет, то нажмите кнопку 'Другие пользователи и группы' и добавьте пользователя или группу так же как описано выше для Windows 10/8 на шаге 2.5
Если вы меняете владельца папки, то по умолчанию будет изменен владелец только этой папки, но не вложенных в нее папок и файлов. Для того, чтобы заменить владельца всех дочерних объектов папки, установите флажок на параметре "Заменить владельца подконтейнеров и объектов".
Изменение владельца раздела реестра
Если вы используете Windows 7 или Vista, выполните шаги 3.2 и 3.3 инструкции изменения владельца файлов и папок
Установка разрешений объекта для учетной записи
- На вкладке Безопасность нажмите кнопку Изменить под списком пользователей и групп
Если вы не знаете точно как написать, то нажмите в окне выбора пользователя кнопку Дополнительно, а в следующем кнопку Поиск. Выберите свою учетную запись и нажмите кнопку OK.
Способ 2. Использование утилит командной строки takeown и icacls
Примечание. Этот способ можно применить только для получения доступа к файлам или папкам, но не к разделам реестра.
Использование утилиты командной строки takeown для изменения владельца объектов
- Откройте командную строку (cmd) от имени администратора
Примечание. Запуск от имени администратора в данном случае обязателен независимо от того, какими правами обладает учетная запись, в которой вы работаете в данный момент. Исключение может составлять только случай, когда вы работаете во встроенной учетной записи Администратор, которая по умолчанию отключена. - Для назначения текущего пользователя владельцем файла выполните команду takeown /f "". Пример:
- /f - шаблон для имени файла или папки, поддерживает подстановочные символы, например takeown /f %windir%\*.txt
- /r - рекурсия: обрабатываются все файлы и подкаталоги в указанной папке
- /d - применяется совместно с /r для подавления запроса получения доступа к каждому файлу или подкаталогу
- y - применяется совместно с /d для подтверждения смены владельца каждого файла или подкаталога
Полный синтаксис утилиты командной строки takeown вы можете получить командой takeown /?
Использование утилиты командной строки icacls для изменения разрешений объектов
- Для изменения разрешений файла используется команда icacls /grant :F /c /l. Пример:
- /grant - предоставление указанных разрешений
- :F - предоставление полного доступа указанной учетной записи или группе
- /c - продолжение обработки при файловых ошибках, ошибки выводятся на экран
- /l - используется для обработки символьных ссылок, с этим параметром обрабатывается сама ссылка, а не ее целевой объект
Полный синтаксис утилиты командной строки takeown вы можете получить командой takeown /?
Как установить службу TrustedInstaller владельцем файлов и папок
Владельцем многих системных файлов и папок является служба TrustedInstaller. В случае изменения владельца таких файлов или папок, система будет работать нестабильно, а многие задачи обслуживания системы перестанут работать.
В случае если вы изменили владельца системной папки для удаления или записи файлов, или файла для его замены или редактирования, после выполнения необходимых действий требуется назначить владельца по умолчанию, то есть TrustedInstaller.
Использование графического интерфейса Windows
- Выполните шаги с 2.1 по 2.4 инструкции изменения владельца файлов и папок
- Напечатайте в поле 'Имена выбираемых объектов' имя службы NT Service\TrustedInstaller и нажмите кнопку OK.
Если вы назначаете TrustedInstaller владельцем папки, не рекомендуется устанавливать флажок на параметре 'Заменить владельца подконтейнеров и объектов'. Дело в том, что при этом будет заменен владелец всех подкаталогов и файлов, содержащихся в папке, что также может привести к нестабильной работе системы из-за отсутствия разрешений у других пользователей. Например, по умолчанию владельцем папки \Windows\ является TrustedInstaller, но владельцем папки \Windows\SoftwareDistribution\ является Система.
Использование утилиты командной строки icacls
- Для изменения владельца файла или папки на TrustedInstaller откройте командную строку (cmd) от имени администратора
- Выполните следующую команду команду:
Добавление команды смены владельца объекта в контекстное меню проводника
Для упрощения процедуры смены владельца вы можете добавить соответствующий пункт в контекстное меню проводника.
В предлагаемом варианте также используются утилиты командной строки 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 примените этот твик реестра:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
[HKEY_CLASSES_ROOT\dllfile\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant администраторы:F /c /l"
[HKEY_CLASSES_ROOT\Drive\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant администраторы:F /t /c /l /q"
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
[HKEY_CLASSES_ROOT\dllfile\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F /c /l"
[HKEY_CLASSES_ROOT\Drive\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t /c /l /q"
Windows Registry Editor Version 5.00
Добавление команды смены владельца объектов на TrustedInstaller в контекстное меню проводника
Для изменения владельца файлов и папок на TrustedInstaller вы также можете добавить контекстное меню проводника.
В предлагаемом варианте используется утилита командной строки icacls.
Готовые файлы реестра для добавления и удаления этого пункта меню: RestoreOwnerShip.zip
-
Для добавления пункта 'Сменить владельца на TrustedInstaller' в контекстное меню файлов и папок используйте следующий твик реестра:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas]
@="Сменить владельца на TrustedInstaller"
"HasLUAShield"=""
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
"IsolatedCommand"="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Сменить владельца на TrustedInstaller"
"HasLUAShield"=""
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
"IsolatedCommand"="cmd.exe /c icacls \"%1\" /setowner \"NT Service\\TrustedInstaller\" /T /C"
Windows Registry Editor Version 5.00
Обратите внимание, что для реализации любого пункта контекстного меню (для назначения владельцем текущего пользователя и для добавления пункта изменения владельца на TrustedInstaller) используются одинаковые разделы реестра и параметры. В связи с этим добавление обоих пунктов одновременно, в рассматриваемом варианте, невозможно.
В следующей главе статьи мы рассмотрим варианты одновременного сосуществования этих двух пунктов контекстного меню.
Добавление каскадного меню с пунктами смены владельца на текущего пользователя и на TrustedInstaller
В прошлых примерах мы использовали подраздел реестра runas, команды по умолчанию из которого запускаются с запросом повышения прав, то есть по сути выполняется запуск от имени администратора. Добавление каскадного меню с несколькими пунктами не дает такого преимущества, но запуск команд от имени администратора необходим для их выполнения.
Есть несколько путей решения этой проблемы, но использование сторонней утилиты для запуска команды с повышением привилегий все-таки является самым быстрым и простым в данном случае.
Таких утилит несколько, каждая из них обладает своими преимуществами, но большинство из них являются проектами энтузиастов и не поддерживаются и не дорабатываются уже довольно долгое время.
Исключение составляют NirCmd от известного разработчика полезных утилит Nir Sofer и PsExec Марка Руссиновича.
Я остановил свой выбор на NirCmd ввиду того, что уже использую эту утилиту для других задач, а PsExec все более узкоспециализированная утилита.
Весь процесс добавления пунктов меню и создания каскадных меню уже был рассмотрен на страницах блога.
- Cкачайте NirCmd x86 (для 32-разрядных систем) или NirCmd x64 (для 64-разрядных систем)
- Скопируйте файл nircmd.exe из архива в папку Windows
Вы можете этого не делать, но в таком случае вам придется модифицировать предложенные файлы реестра и указать полный путь к nircmd.exe - Скачайте архив Take_OwnerShip_Restore_Owner_Cascade.zip и извлеките reg-файлы из него в отдельную папку
- Запустите файл Add_Take_Ownership_Restore_Owner.reg для добавления меню
Для удаления этого меню используйте файл Remove_Take_Ownership_Restore_Owner.reg
С 2006 года Павел ежегодно становится обладателем награды Наиболее ценный специалист Microsoft (MVP), присуждаемой за вклад в развитие технических сообществ.
Читайте также: