Why not write a tertiary program and put it under startup?

This way, when it's executed, it will attach to the service (marshalling?)

Just like how the SQL Service Manager works.