Manually Enabling Interactive Services, Interactive Service Detection and Session 0

The ability to switch to Session 0 is disabled by default on all versions of Microsoft Windows from Windows Vista / Server 2008 onwards. Hence your ability to "interact" via keyboard or mouse with the GUI components of your application launched under FireDaemon Pro control on Session 0 is not possible. You must explicitly enable Interactive Services, then explicitly enable Interactive Service Detection before accessing Session 0. Note that it is not necessary to perform the steps below if you are using FireDaemon Pro or FireDaemon Zero as both products do this automatically when you install them. If you are using Windows 10, Server 2016 or Server 2019 your keyboard and mouse will not work on Session 0. Please consult this technical article for a detailed discussion and workarounds. Additionally, Microsoft has removed the Interactive Services Detection Service on Windows 10 Version 1803 or later and Server 2019.

Enabling Interactive Services

To enable Interactive Services simply add a registry key as follows at an elevated Windows command prompt (sorry about line wrap):

reg.exe ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows /v NoInteractiveServices /t REG_DWORD /d 0 /f

You may have to reboot your computer for this change to come into effect.

Enabling Interactive Services Detection Service

The Interactive Services Detection Service allows you to switch desktop to Session 0. You can enable it manually by simply typing the following into an elevated Windows command prompt:

sc.exe config ui0detect start= auto
sc.exe start ui0detect

If there are interactive GUI components on Session 0 you will see the Interactive Services Detection Service notification icon blinking in the Task Bar. If you double click the icon you will see a dialog similar to the following:

If you click on "View the message" you will switch to Session 0. Here's an example of what an application running on Session 0 looks like:

Switching To and From Session 0 via the Command Line

Once Interactive Services and the Interactive Services Detection Service have been enabled, it's possible to switch to and from Session 0 via the command line. You will need to launch a command prompt on Session 0 in order to switch back. You can use FireDaemon Pro to do that for you. Please make yourself aware of Windows 10, Server 2016 and Server 2019 Session 0 limitations before attempting this.

To switch to Session 0 using FireDaemon Pro, you can use the command line option. So open an elevated command prompt then type:

cd C:\Program Files\FireDaemon Pro
firedaemon --session0

Alternately, to switch to Session 0, open an elevated command prompt and type:

rundll32 winsta.dll,WinStationSwitchToServicesSession

To switch back from Session 0, launch a command prompt on Session 0 as Localsystem or another privileged user, then type at the command prompt:

rundll32 winsta.dll,WinStationRevertFromServicesSession

You can use Sysinternal's PsExec to launch processes interactively on Session 0. Use the "-i 0" switch.