Я работаю над Windows продуктивность и инструмент мониторинга для детейЯ пытаюсь создать службу Windows на C # настолько сложно, насколько это возможно.Если пользователь не является администратором, это легко - сервис не может быть остановлен.Проблема в том, когда у пользователя есть права администратора.К сожалению, это часто происходит, потому что дети имеют права администратора, чтобы они могли устанавливать приложения и игры самостоятельно.
В настоящее время моя служба работает в локальной системе и запускается автоматически после загрузки.В идеале служба должна быть остановлена только удалением программного обеспечения, переустановкой или выключением или перезапуском Windows и т. Д.
Прямо сейчас я использую что-то вроде взлома / обходного пути.Я создал две службы, которые периодически (каждые 1-2 секунды) проверяют друг друга, работает ли другая служба, и перезапускают ее, если это не так.Это уродливое решение и определенно не надежное.Службы могут быть остановлены, если вы достаточно быстры, и это может вызвать проблемы при удалении или перезагрузке компьютера.Вот почему я ищу лучшее решение.
В лучшем случае мне хотелось бы, чтобы поведение аналогично службе антивирусного программного обеспечения, которую не может остановить даже администратор.Я знаю, что это невозможно.Я понимаю, что они, вероятно, имеют некоторые специальные разрешения API от программы сотрудничества Microsoft в отрасли Но я не хочу идти так далеко.Я думаю, что это будет немного излишним.Я не работаю с антивирусным приложением.
Я знаю, что администратор всегда может найти способ остановить процесс или службу.Я просто хочу достичь чего-то, что, по крайней мере, выдержало бы большинство распространенных «детских» атак.Или, по крайней мере, было бы очень тяжело или сложно убить службу, чтобы в конечном итоге пользователь прекратил работу.
Как я могу сделать остановку службы трудной?
Большое спасибо за предложения.