Service configuration settings include "Allow to interact with desktop" flag. Before Vista any service application with this flag turned on was able to show forms to first logged on user. The service process was launched by service controller with access to window station "WinSta0" and desktop "default". It is this window station and desktop was used by system to start processes of logged on user. As far as logged on user and service application shared the same window station and desktop it was possible to show forms from the service and these forms were visible for interactive user:
When second user logs on with FUS or RDP the new session is created with its own set of window stations and desktops and service application has no access to it:
Starting from Vista service controller still start service applications in Session 0 while logged on users receive their own sessions:
As a result service application itself can show nothing to users.
Well, the question is: how to work it around? The answer follows...