Содержание
Мы увидели, как использовать редактор реестра (regedit.exe) для смены владельца раздела реестра и подразделов. И мы также рассмотрели, как сбросить разрешения для ключа реестра или удалить упрямые ключи с помощью RegASSASSIN. В этой статье рассказывается, как изменить владельца ключа реестра и предоставить разрешения с помощью командной строки.
В Windows есть консольные утилиты takeown.exe и icacls.exe для изменения владельца файла и папки и разрешений, но таких встроенных инструментов для изменения владельца ключа реестра с помощью командной строки нет. Вам понадобится сторонний инструмент с именем SetACL для задачи.
SetACL: аргументы командной строки
Прежде чем продолжить, давайте посмотрим синтаксис командной строки для изменения владельца файла / реестра и разрешений с помощью SetACL.
SetACL -on objectname -ot objecttype -actn action
-on
: Укажите путь к объекту, с которым должен работать SetACL (например, файл, раздел реестра, сетевой ресурс, служба или принтер).-ot
: Укажите тип объекта. Чтобы изменить владельца или разрешения для файла или папки, используйте тип объектаfile
, Для ключей реестра используйте тип объектаreg
-actn
: Укажите действие относительно того, что SetACL должен делать с указанным объектом. Для получения права собственности установите действие какsetowner
, Чтобы изменить разрешения, установите действие какace
,
(См. Документацию SetACL для полного списка объектов, типов и поддерживаемых действий.)
Стать владельцем ключа реестра Назначение разрешений с помощью командной строки
Чтобы изменить владельца ключа реестра и разрешения с помощью SetACL:
- Скачайте SetACL, разархивируйте содержимое в папку.
- Скопируйте соответствующую версию
setacl.exe
(32-разрядный или 64-разрядный) инструмента в папку — например,d:\tools
, - Допустим, вы хотите сменить владельца ветки реестра
HKEY_CLASSES_ROOT\CLSID\{D63B10C5-BB46-4990-A94F-E40B9D520160}
и предоставитьAdministrators
групповые полные права доступа. Запустите эти две команды из окна командной строки администратора:SetACL.exe -on "HKEY_CLASSES_ROOT\CLSID\{D63B10C5-BB46-4990-A94F-E40B9D520160}" -ot reg -actn setowner -ownr "n:Administrators" SetACL.exe -on "HKEY_CLASSES_ROOT\CLSID\{D63B10C5-BB46-4990-A94F-E40B9D520160}" -ot reg -actn ace -ace "n:Administrators;p:full"
SetACL: изменение владельца ключа реестра назначить полные разрешения
- 1-й набор команд
Administrators
группа как владелец ключа - 2-я команда назначает
Administrators
Группа Полные права доступа для ключа.
- 1-й набор команд
Administrators
Группа владеет ключом и его подразделами, а также имеет полные права доступа, которые можно проверить с помощью редактора реестра.
Важный: Чтобы изменить владельца и разрешения для этого ключа и подразделов, добавьте -rec Yes
аргумент в конце. Смотрите рисунок ниже для получения дополнительной информации.
Ошибка при изменении разрешений раздела реестра?
SetACL сообщает о следующей ошибке при попытке изменить разрешения для файла / папки или раздела реестра, к которым у вас нет доступа. Чтобы предотвратить эту ошибку, убедитесь, что вы сначала вступили во владение ключом, прежде чем изменять его разрешения.
SetACL завершен с ошибкой (ями):
Сообщение об ошибке SetACL: сбой вызова SetNamedSecurityInfo ()
Сообщение об ошибке операционной системы: доступ запрещен.
Стать владельцем Назначить разрешения рекурсивно (этот ключ подразделы)
Смена владельца и предоставление полного контроля разрешения (для Administrators
) для указанного ключа вместе со своими подразделами, включить -rec Yes
переключиться в конце, как указано ниже:
SetACL.exe -on "HKEY_CLASSES_ROOT\CLSID\{D63B10C5-BB46-4990-A94F-E40B9D520160}" -ot reg -actn setowner -ownr "n:Administrators" -rec Yes SetACL.exe -on "HKEY_CLASSES_ROOT\CLSID\{D63B10C5-BB46-4990-A94F-E40B9D520160}" -ot reg -actn ace -ace "n:Administrators;p:full" -rec Yes
Установить TrustedInstaller в качестве владельца
Установить TrustedInstaller
как владелец вышеуказанного раздела реестра и рекурсивно назначить ему полный доступ к полномочиям, используйте тот же синтаксис командной строки. Вам нужно только изменить имя учетной записи / группы. Вот команды, которые вам нужно выполнить на этот раз:
SetACL.exe -on "HKEY_CLASSES_ROOT\CLSID\{D63B10C5-BB46-4990-A94F-E40B9D520160}" -ot reg -actn setowner -ownr "n:nt service\trustedinstaller" -rec Yes SetACL.exe -on "HKEY_CLASSES_ROOT\CLSID\{D63B10C5-BB46-4990-A94F-E40B9D520160}" -ot reg -actn ace -ace "n:"nt service\trustedinstaller";p:full" -rec Yes
После запуска вышеуказанных команд TrustedInstaller
(NT SERVICE\TrustedInstaller
) как владелец ключа и подключей.
Дополнительная информация
- SubInACL от Microsoft: Существует также другой консольный инструмент под названием SubInACL, выпущенный Microsoft в эпоху Windows XP. Это часть средств Windows XP / 2003 Resource Kit. SubInACL может использоваться, чтобы установить владельца и разрешения для файлов / папок и реестра. Однако, поскольку SubInACL был прекращен Microsoft и по умолчанию используется 32-битные пути к файлам и реестру (в 64-битных системах Windows), что делает его непригодным для использования в 64-битных версиях Windows в некоторых ситуациях.
- Regini.exe от Microsoft: У вас есть еще один встроенный консольный инструмент с именем regini.exe, который позволяет изменять разрешения реестра с помощью текстового файла. Однако regini.exe не может изменить владельца раздела реестра. Для получения дополнительных сведений о regini.exe откройте окно командной строки и введите
regini.exe /?
- SetACL Хельге Кляйн Это широко рекомендуемый инструмент, и он, безусловно, заполнил пустоту, оставленную SubInACL, а также устраняет недостатки
regini.exe
, SetACL может делать гораздо больше вещей, чем обсуждалось в этой статье.
Дополнительные сведения см. В документации SetACL: Версия командной строки SetACL (SetACL.exe) — Синтаксис и описание.