A service can only run on the default desktop. If you need to monitor each users desktop activity then each session will require an exe to be running. There are ways you can hide the exe but they aren't so easy.
This article has a section on hiding apps from the taskbar.
How To Make a Windows Form App Truly Full Screen (and Hide Taskbar) in C#[
^]
It is possible, but buggy and difficult, to hide the exe from other monitors such as task manager