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

Ручная правка реестра является одним из самых распространённых способов получить доступ к скрытым настройкам 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

12 альтернатив стандартной командной строке и консоли PowerShell в Windows 8.1 и 10

В Windows 10 классическая командная строка и консоль PowerShell претерпели ряд изменений в лучшую сторону, Читать далее

Как искать файлы в архивах 7-Zip с помощью командной строки

7-Zip входит в тройку самых востребованных архиваторов, обладающих помимо всего еще и возможностями проводника. Однако Читать далее

Как узнать, с какими аргументами командной строки запущена программа в Windows 10

Многие десктопные приложения поддерживают аргументы командной строки — этакие переключатели, позволяющие изменять поведение программ, запуская Читать далее

Как в Windows 10 изменить разрешение экрана с помощью командной строки

Хотя вы всегда можете изменить разрешение экрана в параметрах Windows, иногда гораздо удобнее использовать для Читать далее

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

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

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