Как заменить владельца ключа реестра из командной строки

Ручная правка реестра является одним из самых распространённых способов получить доступ к скрытым настройкам Windows, причём прибегают к нему не только администраторы, но также и простые пользователи. Однако вот так просто взять и отредактировать можно далеко не все ключи. В реестре есть немало ключей, редактирование которых невозможно вследствие отсутствия прав записи для локальных администраторов, либо их владельцами являются объекты TrustedInstaller или Система.


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

В Windows для этого имеется специальная команда REGINI, однако её использование связано с массой неудобств, поэтому будет лучше, если вы прибегнете к сторонним утилитам, например, SubInACL или SetACL. Утилита SubInACL, разработчиком которой является Microsoft, предназначается для просмотра и изменения прав, владельца и прочих метаданных для файлов, каталогов, ключей реестра, сервисов в Windows. Создавалась она для Windows 2000, XP и Server 2003, но с таким же успехом её можно применять во всех версиях системы, включая Windows 10.

Как работать с SubInACL

Синтаксис утилита имеет следующий:

SubInACL /type name /action

Параметр /type определяет тип обрабатываемого объекта. Если это папка или файл, используется параметр file, если же мы имеем дело с ключом реестра, применяем keyreg или subkeyreg. Разница между этими двумя параметрами заключается в том, что первый заменяет владельца конкретного раздела реестра, а второй — владельца раздела и всех вложенных в него подразделов, то есть в данном случае имеет место наследование.

Параметр name это имя объекта: папки, файла или ключа реестра.

Параметр /action определяет, какое действие будет применено к объекту. Для замены владельца и смены прав используется /setowner=username/grant=username=f, где username — имя нового владельца (пользователя).

А теперь, как это всё выглядит на практике.

Заменим для примера владельца ключа HKEY_LOCAL_MACHINE\SYSTEM\ActivationBroker.

По умолчанию владельцем является Система, мы же передадим права пользователю с именем компик.

Открываем от имени администратора командную строку и переходим в каталог установки утилиты. По умолчанию это C:\Program Files\Windows Resource Kits\Tools.

Теперь выполняем такую команду:

subinacl.exe /keyreg "HKEY_LOCAL_MACHINE\SYSTEM\ActivationBroker" /setowner=компик /grant=компик=f

Subinacl

Готово! Владелец ключа заменён.

Примечание: вы можете распаковать установочный MSI-файл утилиты и скопировать исполняемый файл subinacl.exe в каталог System32, что даст вам возможность запускать утилиту в командной строке без предварительного перехода в Program Files. Просмотреть полный список параметров для утилиты можно командой SubInACL /help.

Как работать с SetACL

Похожим образом работает утилита SetACL. В отличие от SubInACL она не требует установки и имеет несколько иной синтаксис. Распространяется она в двух редакциях — отдельно для 32-битных и отдельно для 64-битных систем.

После скачивания и распаковки архива с исполняемыми файлами утилиты, рекомендуем сразу забросить файл setacl.exe в каталог System32, дабы иметь возможность запускать утилиту без перехода в каталог с исполняемым файлом.

Каталог System32

SetACL имеет следующий синтаксис:

SetACL -on name -ot type -actn action

Параметр -on name указывает полный путь к объекту, при этом имя объекта подставляется на место name.

Параметр -ot type определяет тип объекта. Если это файл, используется ключевое слово file, если ключ реестра — слово reg. И в том, и в другом случае оно подставляется на место type.

Параметр -actn action определяет выполняемое действие. В случае замены владельца и установкой прав доступа используются значения setowner или ace.

А вот и конкретный пример.

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

setacl.exe -on "HKEY_LOCAL_MACHINE\SYSTEM\ActivationBroker" -ot reg -actn setowner -ownr "n:система"
setacl.exe -on "HKEY_LOCAL_MACHINE\SYSTEM\ActivationBroker" -ot reg -actn ace -ace "n:система;p:full"

SetACL

Всё готово.

Первая команда вернула права на ключ системе, а вторая предоставила ей полный к нему доступ.

SubInACL: www.microsoft.com/en-us/download/details.aspx?id=23510
SetACL: helgeklein.com/download/#setacl

Теги: , ,

Вам может быть интересно:

Поделиться в соц сетях:

Twitter Facebook Vk Googlepluse Linkedin

Подпишитесь на обновления этого блога по RSSRSS, RSSMAILEmail или TwitterTwitter!

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Обсуждаемые темы:

Авторизация
*
*
Войти с помощью: 
Регистрация
*
*
*
Войти с помощью: 
Генерация пароля