![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| prgmdelphi |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 13.5.2014 Репутация: нет Всего: нет |
Добрый день. Ранее для определенных задач был написан собственный сервис (наследник от TService). Все было хорошо сервис без проблем работал в WinXP, но встала задача запустить его на Windows Server 2008. Сервис установился в службы, но вот при попытке его запуска выдается сообщение мол нет доступа код ошибки 5. В реестре для пользователей этого сервиса назначил максимальные права, все равно ошибка доступа. Вот думаю может что-то в Win Server 2008 изменилось и теперь требуется другой подход работы с сервисами?
Не вдаваясь в подробности, логика работы сервиса у меня была такой - если запуск MyService.exe происходил с параметром /INSTALL или /UNINSTALL то все сводилось к вызову некого моего метода Execute, который собственно создавал TMyService - наследник TService, а именно:
Но помимо базовых параметров /INSTALL или /UNINSTALL были свои собственные параметры /START /STOP (старт и остановка сервиса). Они позволяли пользователю управлять сервисом из под командной строки, например, MyService.exe /START приводил к запуску сервиса. Старт сервиса делался в целом так (не стал здесь приводить целый класс, поэтому упростил код, чтобы минимизировать размер):
Так вот при вызове WinSvc.StartService-возвращается, что мол нет доступа. |
||||
|
|||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
Это как? Сервис запускается под учеткой конкретного пользователя? Обычно они инсталлируются и работают под LocalService. Может, эта служба еще и отображать что-то на рабочем столе пытается (т.е. установлено Interactive)? Добавлено через 2 минуты А если попытаться запустить сервис из под пользователя (пусть даже и админа) без повышения прав - конечно будет Access Denied. Да и кроме того - зачем эти Start|Stop? Чем не устраивает net start myservicename ? |
|||
|
||||
| prgmdelphi |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 13.5.2014 Репутация: нет Всего: нет |
Очень просто - когда инсталируется сервис в реестре создается группа с именем нашего сервера HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\имя_сервиса так вот на эту папке можно назначать права. Когда мой сервис отказался запускаться, то я и попробовал добавить прав, но все равно это не помогло.
Нет [quote=kami, 27.6.2014, 16:03, post2614979]А если попытаться запустить сервис из под пользователя (пусть даже и админа) без повышения прав - конечно будет Access Denied. без повышения прав - права на эту группу дал "Полный доступ" даже обычным пользователям, все равно не помогает
Нужны |
||||
|
|||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: нет Всего: 6 |
дык, может быть, у пользователя, который запускает MyService.exe /START, нет прав на запуск сервисов?
и причем тут права на ветку реестра? (это её вы группой назвали?) не при ее чтении/записи же ошибка-то возникает |
|||
|
||||
| prgmdelphi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 13.5.2014 Репутация: нет Всего: нет |
А ларчик просто открывался...
нужно прогу (Far, cmd и т.п.), в которой мы будем запускать наш сервис MyService.exe /START запустить через меню от админа, даже если твой пользователь сам админ. Да и еще немаловажно, чтобы на папке где храниться наш файл MyService.exe был доступ, а именно по умолчанию добавлена группа "Администраторы" и полные правы. В противном случае уже ничего не поможет Присоединённый файл ( Кол-во скачиваний: 3 )
RunAsAdmin.png 4,90 Kb |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
<offtop> - Алло, техподдержка? У меня компьютер пишет "нажмите любую клавишу"!!! Что делать? - Ну, а вы нажимали? - Нет, как-то не догадался... </offtop> |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |