Пользователи должны иметь администратора, чтобы прекратить услуги. Я не думаю, что есть надежный способ защитить программу от кого-то, у кого есть администратор на коробке. Если вы не хотите, чтобы «ненадежные пользователи» останавливали serivce, не давайте «недоверенным пользователям» admin privs.
Кажется, что в этой точке есть некоторые отключения, поэтому позвольте мне немного пояснить. Предположим, что администратор решил, что хочет удалить вашу программу. Обычно это всего несколько щелчков мыши. Собираетесь ли вы предпринять шаги, чтобы предотвратить это?
Подумайте о своем ответе здесь. Любая программа, которая намеренно пытается удалить удаление администратором, является по определению malware.
Я знаю, что он был довольно стандартным, так как NT вышел, чтобы дать всем пользователям прав администратора домашних ПК, чтобы они могли устанавливать и играть в игры до их сердца. Однако с Vista и Win7 это уже не очень важно, и люди должны отказаться от этой привычки. Это очень плохая практика безопасности, даже для «доверенного» пользователя.
Сообщите своим пользователям, что они действительно соблюдают некоторые правила безопасности, не так уж плохо. Они обнаружат, что они должны очистить гораздо меньше вредоносных программ и вирусов от своих машин таким образом.
Там было много вопросов о том, можно ли предотвратить задачу от быть прекращено. Это всегда вызывает другой вопрос: что, если я вытащу шнур питания? – wj32 2010-11-25 08:56:19
@ wj32: Я предпочитаю сосредоточиться на решении проблемы, которая * может быть решена. – 2010-11-25 11:42:44
Я хочу сказать, что вы не можете решить эту проблему. Рассмотрим пример, который я вам дал. В чем разница между этим и методом завершения программного обеспечения, например, вызов PsTerminateProcess из драйвера? – wj32 2010-11-26 02:50:09