Running as a service is one thing, but a miner won't be able to work on Windows unless someone is physically logged in. Windows does not allocate the video card drivers until someone does. This is why miners only see the CPU available. The same is true if you RDP into a machine and try to mine as well.
Yes, that is very annoying.
How would one fake a physical user login, and trick the Windows into initializing OpenCL?