Получить имя юзера-владельца процесса по PID

Тема в разделе "WASM.WIN32", создана пользователем b1ack_g0d, 27 фев 2005.

  1. b1ack_g0d

    b1ack_g0d New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2005
    Сообщения:
    1
    Hi!

    Собственно subj.

    Я пытался делать так:

    ....

    var hProcess:THandle;

    res:lol: WORD;

    psd:pointer;

    osid:PSID;

    begin

    hProcess:=OpenProcess(PROCESS_QUERY_INFORMATION,

    false,

    <нужный pid>);

    osid:=PSID(GlobalAlloc(GMEM_FIXED,sizeof(PSID)));

    res:=pGetSecurityInfo(hProcess,

    SE_KERNEL_OBJECT,

    OWNER_SECURITY_INFORMATION,

    @osid,

    nil,

    nil,

    nil,

    psd);

    ...

    по идее я должен получить sid владельца процесса,

    но res=ERROR_ACCESS_DENIED.



    Система XP HE либо 2003+TerminalServer.

    Мои процесс запускается под админом.

    Установка себе SE_DEBUG_NAME или SE_TCB_NAME

    не помогает, также пробовал получать токен

    другого процесса по OpenProcessToken и выковыривать

    из него User SID, но он тоже говорит ERROR_ACCESS_DENIED.



    Дальнейший путь то ясен - LookupAccountSid, но вот SID

    то получить и не удается...



    Уважаемые гуру, помогите !
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    b1ack_g0d

    Может быть тут?
     
  3. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    goto msdn

    see examples