Тарифы Услуги Сим-карты

Редактирование реестра из командной строки. Основы работы с реестром Windows

Бывает так, что Вам нужно изменить некий параметр в реестре на компьютерах в сети. Естественно, чем больше у Вас компьютеров, тем утомительнее это делать вручную. В данном случае процесс можно автоматизировать созданием 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 .

Иногда, чтобы поменять что-то в реестре (выполнить твик или просто внести нужное вам изменение) в первую очередь требуется получить доступ к ветке/ключу реестра. Казалось бы, для администратора это не проблема. Но нюанс в том, что в некоторые ветки реестра 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. С помощью утилиты командной строки 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 - сохраняет копию указанных подразделов, элементов и параметров реестра в файл.