Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.30;
Скачать: CL | DM;

Вниз

Нужно определить владельцев всех процессов   Найти похожие ветки 

 
torin-sd   (2007-06-12 15:53) [0]

Процессы могут быть запущены и от имени других пользователей. Вот тут-то функция OpenProcessToken и отказывается открывать Token другого пользователя.

//=== CUT ===
var
h,ph,h1,ph2:THandle;
p:PROCESSENTRY32;
ProcessName:string;
ProcessOwner: PChar;
c1: cardinal;
KilledCounter,q:integer;
s:string;

tp1, tp2: TTOKENPRIVILEGES;
c2: cardinal;

z: integer;
z1: DWord;

begin
// ...

q:=0;
h:=createtoolhelp32snapshot(TH32CS_SNAPPROCESS, 0);
GetMem(ProcessOwner, 255);
KilledCounter:=0;
z:=0;
if h<>0 then
 begin
  fillchar(p,sizeof(p),0);
  p.dwSize:=sizeof(p);
  if Process32First(h,p) then
   begin
    repeat
     inc(z);

     ph:=OpenProcess(MAXIMUM_ALLOWED,false,p.th32ProcessID);
     ProcessName:=p.szExeFile;

     if ph = 0 then
      begin
       writeln(ProcessName + " Error # ",GetLastError());
       continue;
      end;

       if OpenProcessToken(ph, TOKEN_DUPLICATE or OKEN_QUERY, h1) then
       begin
        if not ImpersonateLoggedOnUser(h1) then
         begin
          writeln(ProcessName + " Error # ",GetLastError);
          Continue;
         end;

        c1:=255;
        GetUserName(ProcessOwner, c1);
        Writeln(ProcessName + #32 + ProcessOwner);
       end;
     closehandle(ph);
    until not Process32Next(h,p);
   end;
  closehandle(h);
 end;

//=== CUT ===
Это только КУСОК кода (вырезал), но самый важный.
Проблема возникает тогда, когда процесс запущен не под моим аккаунтом (например, RunAs...). Вот тут-то ф-я OpenProcessToken и затыкается с кодом ошибки Access Denied.
Как мне это побороть?


 
Игорь Шевченко ©   (2007-06-13 10:16) [1]


> Вот тут-то функция OpenProcessToken и отказывается открывать
> Token другого пользователя.


Установи себе привилегию отладки (SeDebugPrivilege)


 
SLoW.AlfaMoon.Com   (2007-06-14 11:04) [2]

Для вызова
ImpersonateLoggedOnUser
у вас не хватает привилегий токену h1.



Страницы: 1 вся ветка

Текущий архив: 2007.12.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
3-1188198660
MZ
2007-08-27 11:11
2007.12.30
SQL запрос c not in


2-1196959438
Dib@zol
2007-12-06 19:43
2007.12.30
Работа с делфяными строками на билт-ин асме


2-1196908519
Александр Семак
2007-12-06 05:35
2007.12.30
Items в TMainMenu


2-1196848004
Тест_Новичок
2007-12-05 12:46
2007.12.30
Как сохранить результат SQL запроса в файл?


15-1196457288
deras
2007-12-01 00:14
2007.12.30
Вопрос стоимости сопровождения собственного ПО