Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Удаленная отладка служб / 10 сообщений из 10, страница 1 из 1
06.03.2019, 21:39
    #39783246
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленная отладка служб
Кто-то знает как приаттачится к удаленной службе?

Система: удаленная машина Windows 10. Запущен PAServer от Rio от имени администратора.

Пытаюсь из IDE выполнить Attach to process - и вижу только обычные процессы.

Чекбокс Show system process ни на что не влияет.

Пробовал запускать службу с локальной учетной записью - не помогает.

Раньше (в XE 3 и другой Windows) была проблема, что не передавались имена системных процессов, а только их PID. Сейчас нет ничего. Как я понимаю не хватает каких-то прав в Windows

С уважением, Vasilisk
...
Рейтинг: 0 / 0
06.03.2019, 21:42
    #39783248
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленная отладка служб
На всякий случай: x64 и x86 не путаешь?
...
Рейтинг: 0 / 0
06.03.2019, 21:49
    #39783251
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленная отладка служб
rgreatНа всякий случай: x64 и x86 не путаешь?Нет. Отлаживаю 32 битную службу на 64 битной Windows

Если выбрать Win64 Debugger, то тоже видны только обычные процессы. Служб никаких нет
...
Рейтинг: 0 / 0
06.03.2019, 21:55
    #39783252
bk0010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленная отладка служб
Запустите среду через "Запуск от имени администратора", со времен Vista то, что вы сидите под админом не значит, что у вас админские права.
...
Рейтинг: 0 / 0
07.03.2019, 14:57
    #39783586
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленная отладка служб
bk0010апустите среду через "Запуск от имени администратора"Спасибо, кэп. Ничего, что студия запущена на другом компе и получает инфу об удаленной машине через сокет?
...
Рейтинг: 0 / 0
07.03.2019, 18:45
    #39783723
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленная отладка служб
В общем написал службу, которая запускает PAServer. Сразу появились все процессы
Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
unit UPASImpl;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
  Vcl.SvcMgr;

type
  TPAServerLauncher = class(TService)
    procedure ServiceStart(Sender: TService; var AStarted: Boolean);
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);
  private
    FProcHandle: THandle;
    FInWritePipe: THandle;
  public
    function GetServiceController: TServiceController; override;
  end;

var
  PAServerLauncher: TPAServerLauncher;

implementation

uses
  Winapi.Windows,
  System.SysUtils;

{$R *.dfm}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  PAServerLauncher.Controller(CtrlCode);
end;

function TPAServerLauncher.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TPAServerLauncher.ServiceStart(Sender: TService;
  var AStarted: Boolean);
var
  LBasePath: string;
  LProcName: string;
  LInReadPipe: THandle;
  LSecAttr: TSecurityAttributes;
  LStartup: TStartupInfo;
  LProcInfo: TProcessInformation;
begin
  try
    LBasePath := ExtractFilePath(GetModuleName(HInstance));
    LProcName := LBasePath + 'PAServer.exe';

    LSecAttr.nLength := SizeOf(LSecAttr);
    LSecAttr.lpSecurityDescriptor := nil;
    LSecAttr.bInheritHandle := True;

    Win32Check(CreatePipe(LInReadPipe, FInWritePipe, @LSecAttr, 0));
    try
      Win32Check(SetHandleInformation(FInWritePipe, HANDLE_FLAG_INHERIT, 0));

      FillChar(LStartup, SizeOf(LStartup), 0);
      LStartup.cb := SizeOf(LStartup);
      LStartup.dwFlags := STARTF_USESTDHANDLES;
      LStartup.hStdInput := LInReadPipe;

      Win32Check(CreateProcess(
        PChar(LProcName),
        PChar(Format('"%s"', [LProcName])),
        nil,
        nil,
        True,
        0,
        nil,
        PChar(LBasePath),
        LStartup,
        LProcInfo
      ));
    finally
      CloseHandle(LInReadPipe);
    end;
    CloseHandle(LProcInfo.hThread);

    FProcHandle := LProcInfo.hProcess;
    AStarted := True;
  except
    on E: Exception do begin
      LogMessage(E.Message);
      AStarted := False;
      if FInWritePipe <> 0 then begin
        CloseHandle(FInWritePipe);
        FInWritePipe := 0;
      end;
    end;
  end;
end;

procedure TPAServerLauncher.ServiceStop(Sender: TService; var Stopped: Boolean);
const
  CExit: AnsiString = 'q' + sLineBreak;
var
  LWriteCnt: Cardinal;
begin
  if WaitForSingleObject(FProcHandle, 0) = WAIT_TIMEOUT then begin
    Win32Check(WriteFile(FInWritePipe, CExit[1], Length(CExit), LWriteCnt, nil));
    WaitForSingleObject(FProcHandle, INFINITE);
  end;
  CloseHandle(FProcHandle);
  CloseHandle(FInWritePipe);
end;

end.

...
Рейтинг: 0 / 0
07.03.2019, 18:52
    #39783725
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленная отладка служб
Жаль что они сами не догадались сделать PAServer сервисом.
...
Рейтинг: 0 / 0
07.03.2019, 19:20
    #39783739
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленная отладка служб
Вот ссылка на проект на гитхабе https://github.com/anton-shchyrov/PAServerLauncher
...
Рейтинг: 0 / 0
07.03.2019, 20:42
    #39783756
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленная отладка служб
_Vasilisk_В общем написал службу, которая запускает PAServer

а это писать надо?

srvany.exe была написана ещё в 2003, причём самим Майкрософтом

Впрочем и до 2003 года что-то было на NT Magazine, не помню что
...
Рейтинг: 0 / 0
11.03.2019, 10:24
    #39784374
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаленная отладка служб
nssm еще есть
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Удаленная отладка служб / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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