2011-01-21 2 views
2

Я написал службу Windows, и я хотел бы, чтобы администраторы случайно вмешались, удалив их право запускать/останавливать.Как я могу изменить разрешения на службу с помощью Delphi?

Конечно, Администратор может поднять до SYSTEM и делать все, что они хотят, или даже администратор может еще приостановить темы Службы или удалить службу, но это означало, чтобы предотвратить случайные вмешательства.

Я могу сделать это с помощью Process Explorer довольно легко (см. Ниже), но я не уверен, с чего начать с Delphi. Я просмотрел SetAcl C++ source code (и я могу использовать их файл OCX), но я бы предпочел использовать собственное решение Delphi, если оно уже существует. Если нет, я буду работать над клонированием функциональности SetAcl.

У кого-нибудь есть опыт с этим, что они могли бы поделиться?

alt text

Примечание: Я выступал инструмент захвата экрана, написанный на Delphi в этой должности, и я удалить его б/с, что не имеет никакого отношения. Я оставляю эту записку здесь, поэтому комментарии все равно будут иметь смысл! С уважением.

+2

Я нахожу, что кнопка экрана печати работает для моего экрана! –

+7

Если администратор хочет остановить службу, они остановят службу. Если они пытаются, у них, вероятно, есть веская причина. Решением является ограничение доступа администратора, а не ограничение прав администраторов. – TrueWill

+0

@TrueWill - согласовано. И, может быть, я не придаю должного администраторам, но я готов поспорить, если они не смогут «остановить» службу, которую они сдадут. Это моя точка зрения, чтобы предотвратить поверхностное вмешательство ... как я уже сказал. – Mick

ответ

8

Администраторы имеют права на своих компьютерах, чтобы делать все, что захотят. Вы просите изменить способ прав администратора на компьютере?

Любое программное обеспечение, которое мешает администраторам «подделывать» что-то под их контролем, звучит подозрительно, как руткит, или какое-то другое злонамеренное программное обеспечение. Если администратор отключил ваш сервис, вы должны предоставить свои собственные быстрые инструменты, чтобы его отключить, и вы не должны (и, вероятно, не можете) блокировать их от его выполнения, либо из графического интерфейса Windows, либо из SC.EXE или NET STOP в командной строке.

Это, если сказать, что это API Windows, для которого требуется оболочка Delphi, я бы нашел имя API и искал для него библиотеку API JEDI. Похоже, JWSCL будет работать.

Смежные вопросы