$put_perv_real = "/home/www/dvakompa-ru/dopol/"; ?>
Утилита REGINI.EXE первоначально входила в состав пакета Resource Kit, но, начиная с Windows XP, является стандартным компонентом системного программного обеспечения. Используется в сценариях администрирования для управления доступом к разделам (ключам) реестра на локальном или удаленном компьютере.
Формат командной строки:
REGINI [-m \\machinename | -h hivefile hiveroot] [-i n] [-o outputWidth][-b] textFiles...
Параметры командной строки:
-m \\machinename - имя или адрес удаленного компьютера, на котором будет выполняться изменение разрешений для разделов реестра.
-h - определяет куст реестра на локальном компьютере, для которого будут устанавливаться разрешения.
-i n – смещение текста от первой позиции строки. По умолчанию равно 4
-o outputWidth - максимальный размер строк вывода. По умолчанию соответствует ширине консоли.
-b - определяет режим обратной совместимости с предыдущими версиями REGINI ( backward compatible).
textFiles - имена текстовых файлов в кодировке ANSI или Unicode, представляющих собой сценарии для изменения разрешений реестра.
Примеры использования:
regini /? - отобразить краткую справку по использованию команды.
regini acl1reg.txt - выполнить изменения разрешений для разделов (ключей) реестра на локальном компьютере с использованием файла сценариев acl1reg.txt
regini –m \\COMP0 C:\scripts\acl2reg.txt - выполнить изменения разрешений для реестра на удаленном компьютере COMP0 с использованием сценария C:\scripts\acl2reg.txt
Сценарии для утилиты REGINI содержат специальные директивы и параметры, с помощью которых можно управлять доступом к разделам (ключам) реестра Windows. Файлы сценариев представляют собой обычные текстовые файлы, которые можно редактировать, например, с помощью редактора ”Блокнот” (Notepad). Строки сценариев содержат адреса разделов и числовые коды, разделенные пробелами и определяющие разрешения в формате:
(путь к разделу реестра) [разрешения]
Например, строка сценария, устанавливающая разрешения доступа для раздела Adm:
HKEY_LOCAL_MACHINE\Software\Adm [1 5 9]
В данном примере, устанавливаются разрешения [1 5 9], расшифровать которые можно с использованием следующей таблицы:
1 - Администратор, полный доступ
2 - Администратор, чтение
3 - Администратор, чтение и запись
4 - Администратор, чтение, запись и удаление
5 - Создатель, полный доступ
6 - Создатель, чтение и запись
7 - Все, полный доступ
8 - Все, чтение
9 - Все, чтение и запись
10- Все, чтение, запись и удаление
11- Опытные пользователи, полный доступ
12- Опытные пользователи, чтение и запись
13- Опытные пользователи, чтение, запись и удаление
14- Системный оператор, полный доступ
15- Системный оператор, чтение и запись
16- Системный оператор, чтение, запись и удаление
17- Система, полный доступ
18- Система, чтение и запись
19- Система, чтение
20- Администратор, чтение, особые разрешения
21- Интерактивные пользователи, чтение, полный доступ
22- Интерактивные пользователи, чтение
23- Интерактивные пользователи, чтение, особые разрешения
0 - Нет групп или пользователей, имеющих разрешение на доступ к данному объекту, но владелец объекта может назначить разрешения.
Таким образом, код [1 5 9] означает
Администратор, полный доступ
Создатель, полный доступ
Все, чтение и запись
Необходимо учитывать тот факт, что ранее установленные разрешения сбрасываются, и если, после комбинации [1 5 9] в сценарии будет использована, например директива:
HKEY_LOCAL_MACHINE\Software\Adm
То это означает, не добавление кода 4 - Администратор, чтение, запись и удаление, к существующим кодам 1 5 9, а их замена. Для добавления новых разрешений, с сохранением старых, строка должна быть следующего вида:
HKEY_LOCAL_MACHINE\Software\Adm [1 4 5 9]
При добавлении новых ключей или параметров в реестр, в файле сценария первой строкой указывается имя ключа, а второй (последующими) строкой указывается имя параметра, знак равенства, тип данных и значение:
ИМЯ КЛЮЧА
Имя параметра = тип данных значение
Пример файла сценария:
HKEY_CURRENT_USER\TEST
text=REG_SZ String1
Первая строка указывает имя ключа (подраздела реестра) HKEY_CURRENT_USER\TEST, в который будет записан параметр и в квадратных скобках – код разрешения доступа к нему. Если подраздел TEST не существует, то он будет создан с указанными разрешениями, если существует – то выполнится смена разрешений на указанные в квадратных скобках. Если код разрешений не задан, то разрешения не изменяются. Вторая строка указывает имя и значение параметра, который будет записан в данный ключ реестра. Если параметр textне существует, то он будет создан, если существует, то будет изменено его значение на строку String1.
Наличие знака равенства = в строке сценария утилита regini.exe интерпретирует как команду на запись параметра в формате
имя = тип значение
Для удаления значения параметра, строка должна иметь вид:
text=
Для удаления самого параметра, используется ключевое слово DELETE
text=DELETE
Под строкой с именем ключа можно располагать несколько команд на изменение или добавление параметров:
text=REG_SZ This is text
Value1=REG_DWORD 0x0A0D
Использование команды REGINI представляет собой определенную опасность, поэтому, прежде чем делать серьезные изменения в системе, рекомендуется выполнить резервное копирование и ознакомиться со способами восстановления Windows.
Если необходимо установить новые разрешения для куста реестра, принадлежащего другой операционной системе, то необходимо учитывать тот факт, что пути к разделам реестра должны указываться относительно имени куста, так например, для изменения разрешения для раздела HKEY_LOCAL_MACHINE\System на доступ [1 5 9] команда должна иметь вид:
regini –h D:\oldwin\system32\config\system newacl.txt
А файл newacl.txt должен содержать строку без имени подраздела:
[1 5 9]
Для просмотра существующих разрешений в командной строке Windows NT/2000 можно использовать утилиту regdmp.exe из состава дополнительных инструментов Resource Kit. В составе более поздних версий ОС Windows, стандартных средств, для просмотра разрешений разделов реестра в командной строке, не имеется.