Hi,
> how can I launch this if no user session is open ?
Well...
-- In order for TestComplete (TestExecute, QTP, even Selenium) to be able to interact with the GUI of the tested application, this tested application must render its UI;
-- In order for the Windows application to be able to render its UI, it must have a desktop assigned to it;
-- In order for the application to have a desktop assigned to it, some user must be logged-in interactively and have active not locked user session.
So, if no user is logged-on interactively, there will be no active user session, there will be no desktop and the application started on behalf of this user (or any system account that does not have active user session with the desktop either) will not be able to render its UI. Thus test automation software will not be able to drive application's UI just because it is absent. Point.
For the GUI applications, slave Jenkins setup is usually like this:
-- slave box is configured to login automatically under some dedicated user;
-- This ensures active not locked user's session with desktop;
-- Scheduled task is set up to start Jenkins slave application on user logon;
-- This ensures that a) Jenkins master will be able to communicate with the slave; and b) that the application (TestComplete in our case) will be started by the slave within this user session;
-- Then TestComplete starts the tested application (again, within the user session that has desktop assigned), tested application obtains desktop where it can render its UI and thus TestComplete gets a possibility to drive the tested application via UI.
Impossibility to render UI if no desktop is assigned to user session is fundamental Windows OS behavior but not a limitation of TestComplete.
https://wiki.jenkins.io/display/JENKINS/Step+by+step+guide+to+set+up+master+and+agent+machines+on+Windows
https://support.smartbear.com/testcomplete/docs/working-with/integration/jenkins/preparing.html
might help.