Добавление в реестр из командной строки. Как поменять владельца ключа или ветки реестра из командной строки. Утилита reg командная строка, команда export

Бывает так, что Вам нужно изменить некий параметр в реестре на компьютерах в сети. Естественно, чем больше у Вас компьютеров, тем утомительнее это делать вручную. В данном случае процесс можно автоматизировать созданием bat-файла, который и внесет все необходимые изменения на компьютеры сети. Далее этот файл можно распространить посредством групповых политик, специального ПО вроде Kaspersky Security Center или просто прописать в самом файле имена компьютеров и запустить со своей машины.

В общем виде команда reg add выглядит следующим образом:

reg add имя_раздела

Разберем её синтаксис подробнее. Для лучшего понимания взглянем на пример записи в реестре:

Данная запись лежит в реестре по адресу HKEY_CURRENT_USER\Software\Avast Software\Avast Browser Cleanup. Это и есть имя раздела . Данную запись мы возьмем просто как пример. Если Вы собрались редактировать реестр через bat-файл, то Вы уж точно знаете, куда добавлять необходимую Вам запись. 🙂

Если запись будет добавляться в реестр другого компьютера, то перед именем раздела необходимо прописать имя компьютера , вот так: \\имя_компьютера\имя_раздела. Таким образом, Вы сразу можете прописать в bat-файле имена компьютеров и запустить его один раз у себя. Естественно, у Вас должны быть соответствующие права в домене.

/v имя записи. На скриншоте таких записей несколько. Например, PluginsCleaned .

/ve задаёт нулевое значение для записи, добавляемой в реестр. Не обязательно.

/t тип данных — записи реестра могут принимать один из следующих типов данных:

REG_SZ
REG_MULTI_SZ
REG_DWORD_BIG_ENDIAN
REG_DWORD
REG_BINARY
REG_DWORD_LITTLE_ENDIAN
REG_LINK
REG_FULL_RESOURCE_DESCRIPTOR
REG_EXPAND_SZ

/s разделитель — задает символы для разделения копий данных. Используется при типе данных REG_MULTI_SZ в случае размещения более одной записи в списке. Если разделитель не задан, то используется разделитель \0, заданный по умолчанию.

/d значение — значение добавляемой записи реестра.

/f — добавляет раздел или запись без запроса подтверждения. Не обязательно.

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

reg add /?

Возвращаясь к нашему примеру. Я ввел в командную строку:

reg add "HKEY_CURRENT_USER\Software\Avast Software\Avast Browser Cleanup" /v Primer /t REG_DWORD /d 0

В данном случае кавычки нужны, чтобы командная строка нормально восприняла пробелы в имени раздела. Как видите, я создал параметр Primer с типом REG_DWORD и значением 0 .

Всего существует одиннадцать процедур, которые способна выполнять директива REG: QUERY, ADD, DELETE, COPY, SAVE, LOAD, UNLOAD, RESTORE, COMPARE, EXPORT, IMPORT . Каждая из этих процедур имеет, как правило, собственный набор параметров.

При вызове из командной строки директива REG пересылает в окружение операционной системы так называемый код возврата: сообщение об успешном или неуспешном выполнении операции. Если код возврата равен 0, это означает, что операция была выполнена успешно, если же она завершилась с ошибкой, код возврата будет равен 1.

Более подробные сведения об использовании утилиты REG вы можете получить, набрав в командной строке директиву REG /?, чтобы получить информацию о какой-либо из перечисленных процедур, воспользуйтесь командой REG /?.

Команда REG QUERY отправляет в системный реестр Windows запрос о содержимом ветвей, ключей, подразделов или параметров, и выводит на экран результат обработки этих запросов. В общем виде синтаксис данной команды записывается следующим образом:

REG QUERY [\Компьютер\]Путь

Компьютер - имя компьютера в локальной сети, если директива предназначена для обработки на удаленном компьютере. В случае, если этот параметр опущен, команда выполняется на локальном компьютере.

/v - запрос о содержимом указанного раздела реестра.
Параметр - вывести имя и значение запрашиваемого параметра в указанном разделе.
/ve - запрос стандартного параметра с пустым именем.
/s - вывести список всех подразделов данного раздела реестра вместе с их содержимым.

Примеры использования:
Показывает имя и значение параметра ProxyEnable в разделе реестра HKCC\Softvare\Microsoft\windows\CurrentVersion\Internet Settings:

REG QUERY HKCC\Softvare\Microsoft\windows\CurrentVersion\Internet Settings /v ProxyEnable

Показать список всех подразделов и содержащихся в них параметров для раздела реестра HKLM\Software\Microsoft\Office:

REG QUERY HKLM\Software\Microsoft\Office /s

Данная команда добавляет в выбранный раздел реестра указанные пользователем параметры. Общий синтаксис этой директивы выглядит следующим образом:
REG ADD [\\\]

В составе директивы могут использоваться следующие параметры:

Раздел - полный путь к редактируемому разделу реестра в формате [\\\], где - имя компьютера в локальной сети, если директива предназначена для обработки на удаленном компьютере. В случае, если этот параметр опущен, команда выполняется на локальном компьютере. Путь - полный путь к целевому разделу реестра в виде корень\ключ\подраздел, где корень - сокращенное обозначение ветви реестра (HKLM, HKCU, HKCR, HKU или HKCC), а ключ\подраздел - полный путь к искомому подразделу в иерархии реестра, включая все вложенные подразделы. На удаленном компьютере возможно обращаться только к разделам реестра HKLM и HKU.
/v - имя параметра, добавляемого в указанный раздел.
/ve - добавить пустой параметр (параметр по умолчанию) в указанный раздел.
/t - явное указание на тип данных добавляемого в указанный раздел реестра параметра. Может принимать одно из следующих значений: REG_SZ, REG_MULTI_SZ, REG_DWORD_BIG_ENDIAN, REG_DWORD, REG_BINARY, REG_DWORD_LITTLE_ENDIAN, REG_NONE или REG_EXPAND_SZ. Если тип параметра не указан, по умолчанию для данного параметра определяется тип REG_SZ.
/s - тип разделителя значений для разграничения данных, хранящихся в многострочных параметрах типа REG_MULTI_SZ. По умолчанию разделитель имеет вид «\0».
/d - значение, присваиваемое добавляемому параметру реестра.
/f - перезаписывать уже существующие в реестре параметры и значения, замещая их указанными в командной строке, без демонстрации предупреждений.

Примеры использования:
Добавляет подраздел NewSubkey в раздел реестра HKLM\Software на удаленном компьютере NetComp:

REG ADD \\NetComp\HKLM\Software\NewSubkey

Добавляет в подраздел локального реестра HKLM\Software\NewSubkey параметр с именем Value1 типа REG_SZ, и присваивает ему значение ac23456ffed:

REG ADD HKLM\Software\NewSubkey /v Value1 /t REG_SZ /d ac23456ffed

Добавляет в подраздел локального реестра HKLM\Software\NewSubkey параметр с именем Path типа REG_EXPAND_SZ, и присваивает ему значение %systemroot%\System32:

REG ADD HKLM\Software\NewSubkey /v Path /t REG_EXPAND_SZ /d %%systemroot%%\System32

С использованием данной команды выполняется удаление из реестра указанного ключа, подраздела или параметра. Общий синтаксис этой директивы выглядит следующим образом:
REG DELETE [\Компьютер\]Путь

В составе директивы могут использоваться следующие параметры:

Компьютер - имя компьютера в локальной сети, если директива предназначена для обработки на удаленном компьютере. В случае, если этот параметр опущен, команда выполняется на локальном компьютере. На удаленном компьютере возможно обращаться только к разделам реестра HKLM и HKU.
Путь - полный путь к целевому разделу реестра в виде корень\ключ\подраздел, где корень - сокращенное обозначение ветви реестра (HKLM, HKCU, HKCR, HKU или HKCC), а ключ\подраздел - полный путь к искомому подразделу в иерархии реестра, включая все вложенные подразделы.
/v - удаление параметра с указанным именем. Если имя опущено, из данного раздела будут удалены все содержащиеся в нем параметры.
/ve - удалять все безымянные параметры, содержащиеся в данном разделе.
/va - запрашивать все параметры из данного раздела реестра.
/f - выполнять удаление без дополнительного предупреждения.
Примеры использования:
Удаляет подраздел NewSubkey вместе со всем его содержимым из раздела реестра HKLM\Software.

REG DELETE \HKLM\Software\NewSubkey

Без предварительного подтверждения удаляет параметр PARAM из раздела реестра HKLM\Software\Prog.

REG DELETE \HKLM\Software\Prog /v PARAM /f

С использованием команды REG COPY можно скопировать разделы, подразделы и параметры из одного раздела реестра в другой, как на локальном компьютере, так и по сети. Общий синтаксис этой директивы выглядит следующим образом:

REG COPY

В составе директивы могут использоваться следующие параметры:

Полное описание раздела, из которого копируются данные, в формате [\\\], где - имя компьютера в локальной сети, если директива предназначена для обработки на удаленном компьютере. В случае, если этот параметр опущен, команда выполняется на локальном компьютере. Путь - полный путь к целевому разделу реестра в виде корень\ключ\подраздел, где корень - сокращенное обозначение ветви реестра (HKLM, HKCU, HKCR, HKU или HKCC), а ключ\подраздел - полный путь к искомому подразделу в иерархии реестра, включая все вложенные подразделы. На удаленном компьютере возможно обращаться только к разделам реестра HKLM и HKU.
- полное описание раздела, в который копируются данные. Формат записи такой же, как и в предыдущем случае.
/s - копировать все подразделы и параметры, содержащиеся в указанном разделе.
/f - выполнять копирование без предварительного предупреждения. Если в целевом разделе уже присутствуют подразделы и параметры, имена которых совпадают с копируемыми, они будут перезаписаны.
Примеры использования:
Скопировать все содержимое раздела реестра HKLM\Software\Program в раздел HKLM\Software\Restore:

REG COPY HKLM\Software\Program HKLM\Software\Restore /s

Скопировать все параметры раздела реестра HKLM\Software\Microsoft с удаленного компьютера Server в раздел HKLM\Software\Server локального компьютера:

REG COPY \\SERVER\HKLM\Software\Microsoft HKLM\Software\Server

Команда REG SAVE позволяет сохранить выбранный ключ или подраздел реестра вместе с хранящимися в нем параметрами на диск в файл с расширением.hiv, который впоследствии может быть импортирован в реестр. Стандартный формат записи этой команды выглядит следующим образом:

REG SAVE

В составе директивы могут использоваться следующие параметры:

Описание локального раздела реестра, содержимое которого вы планируете сохранить в файле, должно включать обозначение ветви (HKLM, HKCU, HKCR, HKU или HKCC) и всех подразделов. Использование этой команды для удаленных компьютеров не допускается.
- имя файла, в который сохраняется содержимое раздела, включая путь к этому файлу. Если путь не указан, файл автоматически создается в текущей папке вызвавшего команду процесса.

Примеры использования:
Сохраняет подраздел реестра HKCC\System\CurrentControlSet вместе со всем его содержимым в файл ControlSet.hiv, создаваемый в текущей папке:

REG SAVE HKCC\System\CurrentControlSet ControlSet.hiv

С использованием этой команды можно восстановить поврежденный ключ, раздел или подраздел реестра из файла.hiv, созданного ранее командой REG SAVE. В процессе восстановления все существующие в указанном разделе подразделы и параметры реестра перезаписываются. Стандартный формат данной команды таков:

REG RESTORE

В составе директивы могут использоваться следующие параметры:

Описание локального раздела реестра, содержимое которого вы планируете восстановить из файла с указанным именем, должно включать обозначение ветви (HKLM, HKCU, HKCR, HKU или HKCC) и всех подразделов. Использование этой команды для удаленных компьютеров не допускается.

Примеры использования:

Восстанавливает подраздел реестра HKLM\Software\Microsoft из ранее сохраненного на диске файла MSBackup.hiv, перезаписывая все содержимое указанного раздела:

REG RESTORE HKLM\Software\Microsoft MSBackup.hiv

Действие команды REG LOAD в целом аналогично директиве REG RESTORE, с тем лишь исключением, что данная команда загружает ранее сохраненные в файле.hiv данные только в те ветви реестра, которые хранятся в оперативной памяти компьютера в ходе всего сеанса работы пользователя с операционной системой, то есть в дочерние разделы и подразделы ветвей HKLM и HKU. Для загрузки данных из файла в реестре обычно создается новый раздел с заданным пользователем именем. Синтаксис записи этой команды выглядит следующим образом:

REG LOAD

В составе директивы могут использоваться следующие параметры:

Описание локального раздела реестра, содержимое которого вы планируете загрузить из файла с указанным именем; разрешается использовать только обозначение ветвей HKLM и HKU. В качестве имени раздела можно вводить произвольное имя, которое будет автоматически назначено вновь созданному разделу указанной ветви реестра. Использование этой команды для удаленных компьютеров не допускается.
- имя файла, из которого восстанавливается содержимое раздела.

Примеры использования:
Загружает данные из файла MSBackup.hiv в подраздел реестра HKLM\Software\NewKey:

REG LOAD HKLM\Software\NewKey MSBackup.hiv

Директива REG UNLOAD выгружает из памяти локального компьютера хранящиеся там данные реестра, отображающиеся в иерархической структуре реестра в виде разделов и подразделов ветвей HKLM и HKU. Формат записи:

REG UNLOAD

В составе директивы могут использоваться следующие параметры:

Описание локального раздела реестра, содержимое которого требуется выгрузить из памяти. Разрешается использовать только обозначение ветвей HKLM и HKU, а также их дочерних ключей и подразделов. Использование этой команды для удаленных компьютеров не допускается.

Примеры использования:
Выгружает из памяти компьютера содержимое ветви реестра HKLM\Software:

REG UNLOAD HKLM\Software

Эта команда позволяет выполнить операцию сравнения двух разделов реестра. Стандартный формат записи этой команды выглядит следующим образом:

REG COMPARE

В составе директивы могут использоваться следующие параметры:

Полное описание первого проверяемого раздела, в формате [\\\], где - имя компьютера в локальной сети, если директива предназначена для обработки на удаленном компьютере. В случае, если этот параметр опущен, команда выполняется на локальном компьютере. Путь - полный путь к целевому разделу реестра в виде корень\ключ\подраздел, где корень - сокращенное обозначение ветви реестра (HKLM, HKCU, HKCR, HKU или HKCC), а ключ\подраздел - полный путь к искомому подразделу в иерархии реестра, включая все вложенные подразделы. На удаленном компьютере возможно обращаться только к разделам реестра HKLM и HKU.
- полное описание второго раздела, с которым сверяются данные. Формат записи такой же, как и в предыдущем случае.
/v - сравнивать только параметры с указанным именем.
/ve - выполнить сравнение безымянных параметров, хранящихся в указанных разделах.
/s - сравнивать значения всех подразделов и параметров в обоих разделах реестра.
- установить формат вывода сравниваемых данных (если формат вывода не указан, по умолчанию его значение принимается, как /od). В качестве этого параметра может быть использован один из четырех возможных ключей:
/oa - отображать и совпадения, и отличия;
/od - отображать только отличия;
/os - отображать только совпадения;
/on - не отображать результаты сравнения.
В отличие от других процедур команды REG, директива REG COMPARE имеет не два, а три различных кода возврата: 0 - процедура выполнена успешно, сравниваемые данные идентичны; 1 - в процессе выполнения процедур произошла ошибка; 2 - процедура выполнена успешно, сравниваемые данные различаются.

Примеры использования:

Сравнивает содержимое подразделов реестра HKLM\Software\ProgApp и HKLM\Software\Prog:

REG COMPARE HKLM\Software\ProgApp HKLM\Software\Prog

Сравнивает значение параметров с именем Value1, один из которых хранится в разделе HKLM\Software\ProgApp, а другой - в разделе HKLM\Software\Prog локального реестра:

REG COMPARE HKLM\Software\ProgApp HKLM\Software\Prog /v Value1

Сравнивает содержимое подраздела реестра HKLM\Software\Microsoft, хранящегося на удаленном компьютере SERVER, с аналогичным разделом реестра локального компьютера:

REG COMPARE \\SERVER\HKLM\Software\Microsoft \\. /s

Команда REG EXPORT позволяет сохранить выбранный ключ или подраздел реестра вместе с хранящимися в нем параметрами на диск в файл с расширением.reg, который впоследствии может быть импортирован в реестр. Стандартный формат записи этой команды выглядит следующим образом:

REG EXPORT

В составе директивы могут использоваться следующие параметры:
- описание локального раздела реестра, содержимое которого вы планируете экспортировать в файл, должно включать обозначение ветви (HKLM, HKCU, HKCR, HKU или HKCC) и всех подразделов. Использование этой команды для удаленных компьютеров не допускается.
- имя файла, в который экспортируется содержимое раздела, включая путь к этому файлу. Если путь не указан, файл автоматически создается в текущей папке вызвавшего команду процесса.

Примеры использования:
Экспортирует подраздел реестра HKLM\Software\Adobe вместе со всем его содержимым в файл Adobe.reg, создаваемый в текущей папке:

REG EXPORT HKLM\Software\Adobe Adobe.reg

Директива REG IMPORT импортирует содержимое REG-файла в реестр Windows. Данный файл может храниться только на локальном компьютере. Формат записи:

REG IMPORT

Где - имя и путь к локальному REG-файлу на данном компьютере.

Пример использования:
Импортирует в реестр содержимое файла system.reg, хранящегося на диске C: .

Иногда, чтобы поменять что-то в реестре (выполнить твик или просто внести нужное вам изменение) в первую очередь требуется получить доступ к ветке/ключу реестра. Казалось бы, для администратора это не проблема. Но нюанс в том, что в некоторые ветки реестра Windows не может внести изменения даже администратор. Доступ к таким веткам ограничивается ACL, в которых либо отсутствуют права записи для группы локальных администраторов, либо владельцем таких разделов назначены TrustedInstaller или System. В этом руководстве мы покажем несколько простых способов предоставить администратору права владельца и полные права на защищенный таким образом раздел реестра.

Не будем рассматривать графический способ смены владельца и назначения права через утилиту regedit.exe, и остановимся на возможностях смены владельца любого ключа реестра и предоставления доступа из командной строки . Все описанные ниже методы работают во всех версиях Windows!

Получение прав владельца на ключ реестра с использованием утилиты SubInACL

SubInACL – это официальная утилита от Microsoft, которую можно использовать для просмотра и изменения прав, владельца и информации о безопасности и т.д. для файлов, папок, ключей реестра, сервисов и т.д. в ОС Windows .

Утилита была написана для Windows 2000, XP и Server 2003, однако ее можно использовать и со всеми новыми версиями Windows.

ШАГ 1:

Скачайте утилиту с сайта Microsoft: https://www.microsoft.com/en-us/download/details.aspx?id=23510

ШАГ 2:

Это стандартный MSI инсталлятор, который копирует SubInACL.exe file в папку «C:\Program Files (x86)\Windows Resource Kits\Tools\» в Windows x64 и в папку «C:\Program Files\Windows Resource Kits\Tools\» в Windows х86.

Но никто не мешает вам просто распаковать MSI файл (например, с помощью 7-Zip) в любое место без необходимости его установки.

ШАГ 3:

Вы можете выбрать как запускать SubInACL.exe. Из места установки (cd C:\Program Files (x86)\Windows Resource Kits\Tools), или из места куда вы сами его распаковали, да хоть с флэшки 🙂 . Или можете скопировать SubInACL.exe в папку С:\ Windows \ System 32 и тогда он будет запустится по имени. Мы предлагаем скопировать subinacl.exe файл в папку C:\Windows\System32 (C:\Windows\SysWOW64) чтобы была возможность запустить SubInACL из любого удобного места.

ШАГ 4:

Давайте научимся, как работать с SubInACL.exe. Синтаксис утилиты (в командной строке с правами администратора):

SubInACL /type name /action

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

name : Замените этот параметр на название файла, папки или ключа реестра.

/ action : Этот параметр определяет то действие, которое будет произведено над объектом. Ну а раз мы собрались менять владельца ключа и прав на ключ, будем использовать / setowner = administrators / grant = administrators = f в качестве действия.

Смотрим на пример.

SUBINACL /keyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla" /setowner=Администраторы /grant=Администраторы=f

Примечание . В английской версии Windows вместо Администраторы нужно указывать Administrators.

Эта команда означает, что меняется владелец данного ключа и Администратор получает полные права управления данным ключом.

Ну а вам остается только заменить название ключа из примера, на ваш собственный и запустить команду..

PS : Если интересно посмотреть весь доступный синтаксис, ключи и параметры команды SubInACL, запустите с таким ключом SubInACL / help

Смена владельца и прав на ключ реестра с помощью утилиты SetACL

SetACL является бесплатной консольной утилитой. Вам нужно скачать программку и затем запустить нужные команды.

ШАГ 1:

Качаем программу SetACL: https://helgeklein.com/download/#setacl

ШАГ 2:

После скачивания распакуйте ZIP файл и увидите две версии утилиты: для x86 и для x64 версий Windows. Вам надо использовать правильный SetACL.EXE для вашей версией Windows. Посмотреть какая версия Windows можно в Свойствах Системы (System Properties).

ШАГ 3:

Есть два способа использовать приложение. Вы можете, например, сохранить утилиту в папке E:\SetACL, затем открыть Командную строку от имени Администратора и перейти в эту папку используя стандартные команды или ввести полный путь для запуска утилиты, например E:\SetACL\SetACL.exe. Или вы можете скопировать SetACL.exe в системную папку C :\ Windows \ System 32 (C:\Windows\SysWOW64) тогда можно запускать команду SetACL из любого места. Мы предлагаем скопировать EXE файл в папку C:\Windows\System32 (C:\Windows\SysWOW64).

ШАГ 4:

Теперь, когда вы сделали все предварительные процедуры, вы можете запустить SetACL:

SetACL -on name -ot type -actn action

Синтаксис:

То что выделено жирным остается неизменным, то что выделено курсивом будем менять:

on : Этот параметр указывает на полный путь к фалу или ключ реестра, владельца которого надо изменить.

ot : Этот параметр определяет тип объекта. Если меняем владельца файла, то меняем параметр на file . Если ключ реестра, то указываем reg

actn : Этот параметр указывает, что именно сделать. Возможно много вариантов, но так как мы говорим о ключах реестра, в частности о смене владельца или назначении других прав на ключ, будем использовать только значения setowner или ace .

Чтобы лучше понять как это работает, посмотрим пример:

Предположим, что нужно сменить владельца ключа HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla. Для этого нам надо запустить SetACL со следующими параметрами:

SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla" -ot reg -actn setowner -ownr "n:Администраторы"

SetACL.exe -on "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla" -ot reg -actn ace -ace "n:Администраторы;p:full"

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

Вам просто надо поменять значение ключа между кавычками(«»), на тот, который вам нужен.

Получение прав владельца на ключ реестра с использованием встроенной команды REGINI

Эта команда идет в составе любой Windows и мы можем ее использовать для назначения разрешений на ключи реестра. Использование команды очень простое. Создаем файл скрипта с необходимыми параметрами и передаем этот файл для обработки команде REGINI.

ШАГ 1:

Открываем Блокнот (Notepad ) и вписываем название необходимого ключа и ACL (Access Control List) используя вот такой вот формат:

Key_name [ACL ]

Меняем Key _ name на название нужного ключа, но смотрите, чтобы название ключа была корректным, как показано ниже:

\Registry\machine\software\classes (для ключей раздела HKEY_CLASSES_ROOT)

\Registry\machine (для ключей раздела HKEY_LOCAL_MACHINE)

\Registry\user\user_sid (для ключей раздела HKEY_CURRENT_USER) (замените user_sid на правильный Security ID этого пользователя)

\Registry\user (для ключей раздела HKEY_USERS)

Для примера, давайте рассмотрим ключ «HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla» и запишем скрипт:

\Registry\machine\SOFTWARE\Mozilla

Заменяем ACL на те, которые нам необходимы list:

1 (to provide Administrators Full Access) Дать Администраторам полный доступ
2 (to provide Administrators Read Access) Дать Администраторам доступ только на чтение
3 (to provide Administrators Read and Write Access) Дать Администраторам право на изменение
4 (to provide Administrators Read, Write and Delete Access) Дать Администраторам право на изменение и удаление
5 (to provide Creator/Owner Full Access) Дать Создателю/Владельцу полный доступ
6 (to provide Creator/Owner Read and Write Access) Дать Создателю/Владельцу доступ на изменение
7 (to provide Everyone Full Access) Дать Всем полный доступ
8 (to provide Everyone Read Access) Дать Всем доступ только на чтение
9 (to provide Everyone Read and Write Access) Дать Всем право на изменение
10 (to provide Everyone Read, Write and Delete Access) Дать Всем право на изменение и удаление
17 (to provide System Full Access) Дать Системе полный доступ
18 (to provide System Read and Write Access) Дать Системе право на изменение
19 (to provide System Read Access) Дать Системе доступ только на чтение

Сейчас [ACL ] в скрипте будет установлен как-то так:

Как показано в таблице это даст полный доступ Администраторам и Системе, а также право на изменение создателю ключа и все остальным.

Окончательно строка будет выглядеть так:

\Registry\machine\HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla

Вы можете использовать любые комбинации ACL как вам нужно.

Примечание: Помните, что существующие разрешения для указанного в скрипте ключа будут заменены на новые. Не забывайте включить в скрипт разрешения для всех аккаунтов. Если вы забудете дать права аккаунту СИСТЕМА, то этот аккаунт будет удален из списка предоставления доступа.

ШАГ 2:

Сохраняем скрипт под именем ACL.TXT затем открываем командную строку от имени администратора и запускаем нашу команду:

full_path_of_script_file

Или, в нашем случае, это будет выглядеть так

REGINI c:\install\acl.txt

И все. Разрешения будут немедленно изменены.

Ну вот как-то так. Метод 1 наиболее эффективен и работает на все 100%.

Пример использования

Было необходимо запустить Remote Desktop Host, предоставить группе разработчиков совместный доступ к серверу для настройки определенных приложений и базы данных. В дальнейшем, предоставлять удаленный к доступ к этому серверу не планировалось. Разработчиков было более 2-х и все хотели работать одновременно. И клятвенно обещали закончить менее чем за 4 месяца.

Сказано-сделано. Был поднят Remote Desktop Host на Windows 2012 R2 и мы начали пользоваться 120-ти дневным бесплатным периодом. Но … 4 месяцев не хватило (как всегда). Использовать же легальный ключ для TS не хотелось, так как работа, временная, как я уже сказал ранее. Пришлось … воспользоваться знаниями, которые вы только что получили.

Ключ реестра, отвечающий за отсчет 120-ти дневного Grace Period расположен здесь:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod

У группы Администраторы есть доступ только на чтение этого ключа.

Был использован Метод 1. Так сказать, Microsoft сами себя и наказали:)

SUBINACL /keyreg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /setowner=administrators /grant=administrators=f

Сменили владельца и дали полный доступ администраторам

Удаляем содержимое этого ключа

reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /va /f

И после перезагрузки получаем …. Правильно! 120 дней нового бесплатного периода.

Например, можно эту команду оформить в виде скрипта и запускать каждые 115 дней по расписанию.

Пользоваться этим или нет – решать вам, на основании консультаций с вашей совестью и жабой 🙂

Реестр операционной системы Windows отвечает за работоспособность всей системы, крах реестра – крах системы. Однако, значимое количество вирусов или же просто талантливых людей, различными способами стремятся вывести его (реестр) из строя или же просто, получить над ним полный контроль, или как вариант - разрушительное редактирование реестра через командную стоку.

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

В этой статье я решил привести пример «издевательства » над собственной системой. Вначале, стоит обратить свое внимание на то, пути к каким программам прописаны в автозагрузке. Через меню Пуск доступна папка автозагрузка, но это лишь вершина айсберга, есть более верный способ просмотреть что находится в автозагрузке, например, используя утилиту, входящую в состав Windows - msconfig (Пуск/выполнить/msconfig). Реестр командная строка. Однако, мир не столь уж прост, и порой стоит прибегнуть к более продвинутым средствам, например утилита autoruns.exe . С ее помощью можно увидеть намного больше, на вкладке everything сразу бросаются в глаза различные разделы, в которых и прописано много чего интересного. Если не вникать в подробности, то для простого примера стоит обратить внимание на нижестоящие разделы:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

Плюс, стоит бросить взгляд на раздел:

  • HKEY_CURRENT_USERS\Software\Microsoft\Windows\CurrentVersion\Run

Раздел HKLM охватывает всех пользователей, a HKCU - только текущего. Создадим нового пользователя с правами администратора:

Net user NewUser password /add - создаем пользователя NewUser и присваиваем ему пароль password

Net localgroup Администраторы NewUser /add - добавляем новоиспеченного пользователя в группу Администраторы.

Стоит напомнить, что сервер сценариев для работы с реестром предоставляет объект Wscript.Shell и его методы .

Теперь попробуем, произвести редактирование системного реестра из командной строки, чтобы изменить пароль пользователя NewUser используя ветку HKLM. Для этого стоит зайти в систему через свою учетную запись и создать батник следующего содержимого (текстовый файл с расширением.bat):

net user NewUser newpass

Следующая задача состоит в том, что бы пользователь NewUser его запустил, для этого прописываем в командной строке:

reg add HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce /v NewPass /t reg_sz /d c:\Master.bat /f

В данном случае мы добавили в подраздел RunOnce новый параметр под названием NewPass со строковым типом reg_sz и прописали путь к нашему батнику. Теперь при входе в систему будет происходит запуск сценариях Master.bat, который в свою очередь изменит данные учетной записи.

Конечно, это не более чем простенький пример. Проблема в том, что редактировать реестр через командную строку стоит осмысленно , иначе, ваши действия могут принести совсем не тот результат, что ожидалось. Взять для примера печальную запись “Редактирование реестра запрещено администратором системы ”, такую шалость производят, как правило, вирусы, если запрет был прописан в HKCU и вы являетесь администратором, то достаточно создать нового админ-пользователя, зайти через него в систему и открыв реестр, пробраться к нужному параметру:

HKEY_CURRENT_USERS\Software\Microsoft\Windows\CurrentVersion\Policies\System

тут параметр DisableRegistryTools изменить с единицы на ноль, или просто удалить. Но, можно так и не извращаться, достаточно использовать редактор от стороннего разработчика, например reglite , или, произвести редактирование реестра из командной строки:

REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools

Однако, подсунуть свинью можно и собственными силами. Есть такая утилита как regini , она позволяет назначать разрешения к тем или иным веткам реестра. Не знаю почему, но на Семерке по команде regini /? выводится полная справка, а вот в Windows XP SP3 - ничего. Так вот, синтаксис утилиты довольно прост:

regini.exe -m "компьютер" "путь к файлу сценария"

если утилита используется локально, то параметр -m «компьютер» не нужен. Всего есть 17 пунктов, и каждый определяет те или иные разрешения.

Прежде всего, надо создать текстовый файл, в котором будет прописана нужная ветка и права для нее. Например, если в файле прописать строчку Registry\Machine\Security , то администраторам и учетной записи локальной системы будут предоставлены права полного доступа к ветви реестра HKLM\SECURITY. Но, эта утилита имеет один изъян - она затирает предыдущие права. Если посмотреть на разрешения для ветки SECURITY, то мы увидим, что полный доступ имеет только локальная система (SYSTEM), именно поэтому, под администратором вы не сможете просмотреть содержимое этого раздела. Редактируя реестр через командную строку, с использованием утилиты regini я решил дать для ветки SECURITY полный доступ для администратора (хотя это можно сделать в самом редакторе реестра), в файле сценария я прописал следующую строчку Registry\Machine\Security . Реестр командная строка.

Утилиту запустил, путь к сценарию прописал. И о чудо, я имею доступ к этой ветке, ни о чем не подозревая, я перезагрузил систему. Увидев надпись при загрузке «отсутствуют права доступа к файлу» или что-то в этом роде, я понял НАДО БЫЛО И ЛОКАЛЬНОЙ СИСТЕМЕ ДАТЬ ДОСТУП! Благо, что на другом винте стояла тоже ХР, правда не SP3 a SP2, я банально заменил весь реестр и о чудо, система заработала!

Реестр Windows хранит параметры конфигурации всей операционной системы Windows. С помощью утилиты командной строки Reg можно просматривать, добавлять, удалять, сравнивать и копировать элементы реестра. Поскольку реестр Windows крайне важен для корректной работы операционной системы, вносите изменения в реестр, лишь точно зная, как они повлияют на систему. Прежде чем редактировать реестр каким-либо способом, выполните полное резервное копирование системы и создайте снимок данных для восстановления системы. Тогда в случае ошибки вы сможете восстановить реестр и систему.

Разделы и параметры реестра Windows

Реестр Windows хранит конфигурационную информацию операционной системы, приложений, пользователей и оборудования. Эти данные содержатся в разделах (keys) и параметрах (values) реестра, которые размещаются в определенном корневом разделе (root key), который контролирует, как и когда используются разделы и параметры. В корневых разделах вы найдете главные разделы (main keys), управляющие параметрами системы, пользователей, приложений и оборудования. Эти разделы организованы в древовидную структуру, где разделы представлены папками. Так, в разделе HKEY_LOCAL MACHINE\SYSTEM\CurrentControlSet\Services находятся папки для всех служб, установленных в системе. В этих папках содержатся разделы реестра, хранящие важную конфигурационную информацию, и их подразделы (subkeys). Нужные разделы реестра задаются через их пути к папкам.

Команда REG управления реестром из командной строки

REG поддерживает несколько подкоманд, и мы рассмотрим некоторые из них.

  • REG add - добавляет в реестр новый подраздел или элемент.
  • REG delete - удаляет из реестра подраздел или элемент.
  • REG query - выводит список элементов раздела и имена подразделов (если они есть).
  • REG compare - сравнивает подразделы или элементы реестра.
  • REG сору - копирует элемент реестра по указанному пути раздела на локальной или удаленной системе.
  • REG restore - записывает в реестр ранее сохраненные подразделы, элементы и параметры.
  • REG save - сохраняет копию указанных подразделов, элементов и параметров реестра в файл.


Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: