Тема: HTA/CMD: Инструмент редактирования реестра удаленной системы
Коллеги, предоставляю Вашему вниманию свою HTA-разработку - интерфейс редактирования пользовательских (и hklm) веток реестра удаленной машины. Приложение задумывалось как инструмент с претензией на универсальность, т.е. функционал расширяется пользователем.
Основная идея: HTA-приложение может не только читать интересуемые нас значения в требуемых ветках пользователей, но и предоставляет возможность редактировать значения, причем делается это легко как для ключей текущего пользователя с автоматической подстановкой SID, так и для неактивных пользователей, ульи которых удобно загружаются и выгружаются.
Перечень интересуемых веток и их значений не "зафиксирован" в коде программы, а составляется пользователями ПО в виде текстовых файлов несложной структуры - шаблонов.
Т.е. админу не нужно держать в голове точный путь к какому-то контролируемому ключу-значению, достаточно всего лишь дать файлу-шаблону лаконичное название (+ вставить в шаблон комментарий), а в программе выбрать этот шаблон в списке.
К слову, кроме относительного пути к ветке и перечня зачений в ней, в шаблон можно заложить и вызов внешних команд с передачей параметром сформированного пути ветви, имени машины.
Таким образом у меня этот HTA с набором шаблонов может дополнительно делать еще и следующее:
- полное удаление ветви (в шаблон закладывается команда "reg delete ...");
- создание/изменени в ветке значения на предопределенное (команда - "reg add ... /v .... /t ... /d ....");
- изменение прав на ветвь (команда - "subinacl.exe /keyreg ... /grant=...");
- запуск батников, выполняющих целый набор действий в реестре - подставляются параметры для них: имя машины для hklm / путь к веткам пользователя - для HKU.
Программа также запускает regedit.exe с подключением удаленного реестра - отдельный скомпилированный модуль на AutoIt3.
При сканировании указанного компьютера программа составляет список пользователей, кусты чьих реестров можно загрузить - сначала определяется список известных системе профайлов (из HKLM\SYSTEM\CurrentControlSet\Control\hivelist), который далее ограничивается лишь теми, ntuser.dat которых фактически есть в наличии. Программа отображает профайлы уже загруженные удаленной системой и профайлы подгруженные в наш реестр. По умолчанию выбирается для работы текущий пользователь консоли. Для систем WinXP еще есть и данные по времени последней загрузки профилей системой, а в 7-ке, увы, это уже атавизм.
Для визуального контроля программа также выбирает из AD информацию по машине и ее менеджеру, см. скриншоты.
Отображение данных (WinXP):
Чтение и редактирование значения:
К слову, пользователь по ходу работы в програме имеет еще и такую гибкость: название как ветви так и параметра предлагаемые текущим шаблоном можно перед выполнением команд проверок/чтения/записи произвольно редактировать (сам шаблон в приложением не изменяется).
Код RegLoadHIVE.hta около 60Кб - выкладываю архивом (вместе с моими шаблонами): http://depositfiles.com/files/pmlxvll7n
Autoit3-модуль (из-за возможности повышения прав) запуска редактора реестра с подключением машины (Run_RegEdit_Win7.exe): http://depositfiles.com/files/9jdxzuekb
О шаблонах. Шаблон - это текстовый файл с раширением ".reg_load" вместо ".txt".
В шаблонных файлах указываются строки:
"root=" - корень реестра, поддерживаются HKLM и HKU,
"key" - ветка реестра, наличие которой или параметры которой нас интересуют,
например, Software\Microsoft\Windows\CurrentVersion\Internet Settings
"name=" - название параметра, значение которого хотим прочесть/редактировать,
строк-параметров может быть несколько либо ни одного (в случае интереса только лишь к самой ветке),
"cmd=" - командные строки запуска внешних утилит, например, для контроля прав на ветку, удаления ветки и т.п.,
в тексте строк можно использовать подстановки - {root} / {key} / {name} / {pathsid} / {pc},
например, subinacl.exe /keyreg {root}\{key} /display
или - reg.exe query "{pathsid}\{key}" /v {name}
"note=" - собственное описание шаблона/параметров и т.п. (возможны теги html-разметки)
Придирки к коду, отзывы, пожелания - принимаются ![]()

