Как запустить интерактивное приложение из службы Windows в Windows 10/11? [дублировать]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как запустить интерактивное приложение из службы Windows в Windows 10/11? [дублировать]

Сообщение Anonymous »

Я создаю службу Windows в C ++ в конкретной учетной записи пользователя в Windows 10. Мне нужно запустить приложение Windows интерактивно из службы, но CreateProcessAsuser () выходит из строя с getLasterRor () Код 1314. < /p>
Есть ли способ интерактивно запустить приложение Windows из службы Windows в Windows 10? < /p>

Код: Выделить всё

STARTUPINFO StartInfo;
PROCESS_INFORMATION ProcInfo;
TOKEN_PRIVILEGES tp;
memset(&ProcInfo, 0, sizeof(ProcInfo));
memset(&StartInfo, 0, sizeof(StartInfo));
StartInfo.cb = sizeof(StartInfo);
HANDLE handle = NULL;

if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ALL_ACCESS, &handle)) printf("\nOpenProcessError");

if (!LookupPrivilegeValue(NULL, SE_TCB_NAME,
//SE_TCB_NAME,
&tp.Privileges[0].Luid)) {
printf("\nLookupPriv error");
}

tp.PrivilegeCount = 1;
tp.Privileges[0].Attributes =
SE_PRIVILEGE_ENABLED;//SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges(handle, FALSE, &tp, 0, NULL, 0)) {
printf("\nAdjustToken error");
}

LPCWSTR username = L"EngBitrode";    // Replace with actual username
LPCWSTR domain = L"bc_stl";
LPCWSTR password = L"Eb02042020"; // Replace with actual password

BOOL bResult = LogonUserW(username, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &handle);
printf("\nLogonUser return  : %d", bResult);
DWORD err = GetLastError();
printf("\nLogonUser getlast : %d", err);
if (!ImpersonateLoggedOnUser(handle)) printf("\nImpLoggedOnUser!");

BOOL success = CreateProcessAsUser(handle, CommServerPath(), NULL, NULL, NULL, true,
CREATE_UNICODE_ENVIRONMENT | NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE, NULL, NULL,
&StartInfo, &ProcInfo);
printf("\nCreateProcessAsUser return  : %d", success);
err = GetLastError();
printf("\nCreateProcessAsUser getlast : %d", err);

CloseHandle(handle);
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
return ProcInfo.dwProcessId;
Этот код запускает приложение запускается в фоне, а не интерактивно. но мне нужно приложение для работы интерактивно.

Подробнее здесь: https://stackoverflow.com/questions/794 ... dows-10-11
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как запустить интерактивное приложение из службы Windows в Windows 10/11? [дублировать]
    Anonymous » » в форуме C++
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Запустить интерактивное приложение из службы
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • VS -код: не может запустить интерактивное окно Python
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • VS -код: не может запустить интерактивное окно Python
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Ошибка службы Python: процессу службы не удалось подключиться к контроллеру службы.
    Anonymous » » в форуме Python
    0 Ответы
    142 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»