Войти

Показать полную графическую версию : C# Создание раздела/импорт файла в удаленный реестр


Delirium
12-02-2009, 02:51
Стоит задача: любым путем(программно, bat-файл, скрипт, как угодно, кроме ручного) либо записать значение в ветку удаленного реестра, либо импортировать туда уже готовый reg-файл(это было бы лучше). Удаленно могу подцепиться и прочитать значения нужной ветки, а вот записать пока не пойму как.
Задача в принципе такова - создать небольшую универсальную программку, которая будет устанавливать удаленно некоторые программы(как пример - Radmin). Копирование файлов на удаленную машину, удаленное создание службы, и прочее - это без проблем. Не могу именно записать/импортировать значения в нужные ветки.

Admiral
16-02-2009, 01:25
Delirium, любым путём это Разное, а в тему с приставкой .NET боюсь будут заглядывать лишь знакомые с данной технологией участники. Ну да ладно, хватит мне умничать, :clever-ma пора браться за дело. :) Задача понятна, один из механизмов разработала само MS - посредством службы Удаленный реестр (Remote Registry Service) (http://www.oszone.net/2591/).
Требуемая Win32 API функция, для подключение к удалённому реестру RegConnectRegistry (http://msdn.microsoft.com/en-us/library/ms724840(VS.85).aspx), располагается в библиотеке advapi32.dll.
Код как удалось подцепить и прочитать значение нужной ветки стоило бы приводить, может кто не знает и почерпнёт и с вопроса знаний.
Если импортировать Win32 участки кода не охота, или данную службу в целях безопасности держать включённой не желательно (в основном те отзывы что попадаются про эту службу указывают что это брешь в системе, но иные так же есть - Why run the RemoteRegistry Service? (http://blogs.msdn.com/bgroth/archive/2004/10/05/238440.aspx)), можно организовать взаимодействие как у Радмина, у которого классическая схема взаимодействия клиент-сервера.
Для этого я предлагаю ознакомится с примерами к книге Practical .NET 2.0 Networking Projects (http://apress.com/book/view/9781590597903)
В этом случаи я бы пересылал бинарные данные reg файла, а уже на приёмной стороне, после сохранения, устраивал бы ему REGEDIT /S.
Вот ещё ссылка по теме Howto: (Almost) Everything in WMI via C# - Part 1: Registry (http://www.codeproject.com/KB/system/everythingInWMI01.aspx?display=PrintAll&fid=399605&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2214697)




© OSzone.net 2001-2012