kirillkovalenko / nssm

Non-Sucking Service Manager
https://nssm.cc
736 stars 126 forks source link

[feature request]wait user logon, and run as user #29

Closed wjx0912 closed 3 years ago

wjx0912 commented 3 years ago

current, the program run as "SYSTEM", sometime maybe need run in activate login user.

DWORD dwSessionId = WTSGetActiveConsoleSessionId();
HANDLE hToken;
BOOL ok = WTSQueryUserToken(dwSessionId, &hToken);

DWORD dwCreationFlags = NORMAL_PRIORITY_CLASS | CREATE_UNICODE_ENVIRONMENT  | CREATE_NO_WINDOW;
void* environment = NULL;
ok = CreateProcessAsUser(hToken, exe_path.c_str(), (LPWSTR)exe_args.c_str(), NULL, NULL, FALSE
    , dwCreationFlags, environment, NULL, &si, &pi);

command line:

nssm install <servicename> <app> [<args> ...]

change to

nssm install  --run-wait-logon  <servicename> <app> [<args> ...]

thanks

kirillkovalenko commented 3 years ago

THIS REPO IS NOT OWNED OR MONITORED BY THE AUTHOR OF THIS APPLICATION! REACH OUT TO HIM AT me@iain.cx