powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как запустить процесс с правами администратора?
5 сообщений из 5, страница 1 из 1
Как запустить процесс с правами администратора?
    #39951638
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Подскажите пожалуйста как правильно запустить процесс с правами администратора?
Мне нужно чтобы моё приложение запускалось после перезагрузки компьютера.
1. Сделал службу. Тип запуска "Авто". Запускается от имени "Локальная система"
2. Разрешил службе взаимодействие с рабочим столом.
Служба выполняет следующий код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
procedure TCheckState.runSupportSlave;
var
  param: string;
  app: string;
  hToken: THandle;
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  try
    writeLog('Запуск программы.');
    param := '-Xmx256m -jar "' + dirRoot + '\myapp.jar" "' + dirRoot + '\param.json"';
    app := 'C:\Program Files\Java\jre1.8.0_241\bin\java.exe';
    writeLog(app + ' ' + param);
    GetStartupInfo(StartupInfo);
    if WTSQueryUserToken(WtsGetActiveConsoleSessionID, @hToken) then
    begin
      if CreateProcessAsUser(hToken, PChar(app), PChar(param), nil, nil, False, CREATE_NEW_CONSOLE, nil, nil, StartupInfo, ProcessInfo) then
        WaitForSingleObject(ProcessInfo.hProcess, INFINITE)
      else
        writeLog(SysErrorMessage(GetLastError));
    end
    else
      writeLog(SysErrorMessage(GetLastError));
  except
    on E: Exception do
      writeLog(e.Message);
  end;
end;


Программа запускается, с правами пользователя, который зашёл в систему. Как сделать так, чтобы служба запускала программу с правами администратора?
...
Рейтинг: 0 / 0
Как запустить процесс с правами администратора?
    #39951651
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MandarinКак сделать так, чтобы служба запускала программу с правами администратора?

Задать в CreateProcessAsUser() имя администратора и его пароль.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как запустить процесс с правами администратора?
    #39951670
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Если я не ошибаюсь, служба запускается с высокими правами. Есть вариант не указывать имя пользователя и пароль администратора?
...
Рейтинг: 0 / 0
Как запустить процесс с правами администратора?
    #39951672
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MandarinЕсли я не ошибаюсь, служба запускается с высокими правами.

Ошибаетесь, Local System - жутко ограниченный акк. Хотя да, на файловую систему у него по
умолчанию полный доступ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как запустить процесс с правами администратора?
    #39951673
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим, в систему после перезапуска вошло два пользователя. Ни один из них не является админом (т.е. нельзя повысить права через UAC).

Как вы предполагаете должно работать ваше приложение в этом случае?

Обычно, если надо "запускалось после перезагрузки компьютера" и "с правами администратора" - делается служба. Если пользователю нужно взаимодействовать с ней - делается обычное приложение, общающееся со службой по IPC.

В некоторых случаях, когда важно "с правами администратора", но не "запускалось после перезагрузки компьютера" - делают задачу в Task Scheduler с "запуск при входе пользователя" и "запускать с максимальными правами". Разумеется, если войдёт не админ, то и работать приложение будет не под админом.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как запустить процесс с правами администратора?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]