Войти

Показать полную графическую версию : [решено] Создание служб в ручную


Shym
18-04-2008, 21:22
Как создать службу без сторонних программ?
Вот я, например, взял программу для создания служб, отследил изменения в реестре, по изменениям экспортировал все значения. После этого удалю ту же службу(через ту же программу) запускаю .reg файл и не удается записать в реестр по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_<название службы> и HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceCurrent. Может надо по определённой последовательности записывать значение в реестр? Или можно создать через командную сроку?


Не большая сатья по "SC CREATE"

Примеры:
sc \\myserver create NewService binpath= "c:\windows\system32\NewServ.exe"
\\myserver - задает имя удаленного сервера, на котором находится служба. В имени следует использовать формат UNC ("\\myserver").
sc create NewService binpath= "c:\windows\system32\NewServ.exe" type= share start= auto depend= "Service"
Служба находится на вашем компьютере.

type= {own|share|kernel|filesys|rec|adapt|interact type= {own|share}} - Указывает тип службы. Тип по умолчанию type= own.
own - Служба выполняется в собственном процессе. Она не использует исполняемый файл совместно с другими службами.
share - Служба выполняется как общий процесс. Она использует исполняемый файл совместно с другими службами
kernel - Драйвер
filesys - Драйвер файловой системы
rec - Драйвер, определяющий файловую систему (указывает файловые системы, используемые на компьютере)
interact - Служба может взаимодействовать с рабочим столом, получая входные данные от пользователей. Интерактивные службы должны выполняться с системной учетной записью. Этот тип должен использоваться вместе с type= own или type= shared (например, type= interact type= own). Самостоятельное использование типа type= interact приведет к ошибке недопустимого параметра.

start= {boot|system|auto|demand|disabled} - Указывает тип запуска для службы. Тип запуска по умолчанию start= demand.
boot - Драйвер устройства, который загружается загрузчиком системы
system - Драйвер устройства, который запускается при инициализации ядра
auto - Служба, которая автоматически запускается при каждой перезагрузке компьютера и даже в том случае, если на компьютер не вошел ни один пользователь
demand - Служба, которая должна запускаться вручную. Это значение используется по умолчанию, если не указан параметр start=
disabled - Служба, которую нельзя запустить. Чтобы запустить отключенную службу, выберите другой тип запуска

error= {normal|severe|critical|ignore} - Указывает серьезность ошибки, если служба не запускается при загрузке. Значение параметра по умолчанию error= normal.
normal - Ошибка записывается в журнал и выводится окно сообщения, информирующее пользователя об отказе при запуске службы. Запуск будет продолжен.
severe - Ошибка заносится в журнал (если это возможно). Компьютер пытается перезагрузиться в последней удачной конфигурации. Компьютер можно будет перезагрузить, но выполнить службу, возможно, не удастся.
critical - Ошибка заносится в журнал (если это возможно). Компьютер пытается перезагрузиться в последней удачной конфигурации. Если имеет место отказ последней правильной конфигурации, запуск также приведет к отказу и процесс загрузки остановится на ошибке.
ignore - Ошибка заносится в журнал и запуск продолжается. Ошибка записывается в журнал ошибок и другие уведомления пользователю не выводятся.

binpath= имя двоичного пути
Указывает путь в двоичном файле службы. Значение по умолчанию для параметра binpath= не задано. Эту строку необходимо указать.

group= группа порядка загрузки
Указывает имя группы, членом которой является эта служба. Список групп сохраняется в реестре в подразделе HKLM\System\CurrentControlSet\Control\ServiceGroupOrder. Значение по умолчанию является пустым.

tag= {yes|no}
Указывает, следует ли получить код TagID из вызова CreateService. Теги используются только драйверами, запускающимися при загрузке или запуске системы.

depend= зависимости
Указывает имена служб и групп, которые должны быть запущены раньше данной службы. Имена разделяются косой чертой (/).

obj= {имя учетной записи|имя объекта}
Указывает имя учетной записи, для которой будет выполняться служба, или имя объекта драйвера Windows, в котором будет запущен драйвер.

displayname= отображаемое имя
Определяет понятное, точное имя для службы, которое используется в программах пользовательского интерфейса.

password= пароль
Задает пароль. Данный параметр требуется при использовании учетной записи, отличной от учетной записи «Локальная система».

/? - Отображает справку в командной строке.

Blast
18-04-2008, 21:29
ШУМ, права на раздел реестра проверьте - на разделе правой кл. мыши - Разрешения

Shym
18-04-2008, 21:43
Действительно помогло, но теперь другой вопрос, мне нужно файл .reg автоматически записывался в реестр, а как можно разрешить права на определённую ветку в реестре автоматически?

Petya V4sechkin
18-04-2008, 21:44
ШУМ, можно попробовать:
sc create /?

Котяра
18-04-2008, 21:56
ШУМ,
можно порыть тут
http://www.yandex.ru/yandsearch?text=srvany.exe
http://www.yandex.ru/yandsearch?text=instsrv.exe
http://support.microsoft.com/kb/137890

ШУМ, можно попробовать:
Код:
sc create /? »
Т.е Пуск => Выполнить, ввести cmd нажать OK. Затем ввести
sc create /? ».
Там все будет написано...

Shym
18-04-2008, 22:47
Спасибо, разобрался через командную строку.

Котяра
18-04-2008, 23:52
ШУМ, для пометки темы решенной следует использовать пункт "Настройки темы", а не изменять название.

Shym
19-04-2008, 00:02
Котяра, :ok:




© OSzone.net 2001-2012