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:

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, Windows 11, Server 2016, Server 2019, or Server 2022 your keyboard and mouse will not work on Session 0. Please consult this technical article for a detailed discussion and potential workarounds. Additionally, Microsoft has removed the UI0Detect Interactive Services Detection Service on Windows 10, Windows 11, Server 2019, and Server 2022.


Step 1. Enable 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.


Step 2. Enable 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:


How do I enable interactive services


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:


How do I enable interactive services


Step 3. Switch 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, 11, Server 2016, 2019, and 2022 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.