Как узнать свои права

Тема в разделе "WASM.WIN32", создана пользователем irrona, 18 ноя 2005.

  1. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    Как я могу узнать какими правами я обладаю в контексте домена сети : user, administrator e.c.

    Подчеркиваю - не для локальной тачки, а для домена сети.
     
  2. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    спросить у админа сетки/домена ?
     
  3. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    infern0

    Спасибо. Ответ неверный :)). Я и есть администратор сети. Я пишу прогу, которая при старте должна определять является ли пользователь админом домена. Думаю что копать нужно в сторону Active Directory. Может есть другие пути?
     
  4. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
  5. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    Jupiter

    Придется повториться. Как определить являюсь ли я админом локальной тачки я и сам знаю. Являюсь ли я админом сети - вот в чем вопрос.
     
  6. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    A_Must_Loll

    Такая мысль уже посещала. Но вот откопал NetGroupGetUsers. С помощью нее получаю список пользователей, входящих в группу Domain Admins домена сети, а затем просто сравниваю возвращенные записи с именем локального пользователя. Вот пример:
    Код (Text):
    1.  
    2. mov dwEntriesRead,0
    3. mov dwTotalEntries,0
    4. invoke NetGroupGetUsers,addr lpServerName,addr lpGroupName,0,addr pBuf,MAX_PREFERRED_LENGTH,\
    5.    addr dwEntriesRead,addr dwTotalEntries,0
    6. .if eax == NERR_Success || eax == ERROR_MORE_DATA && dwEntriesRead > 0
    7.     mov edx,[pBuf]
    8.     mov rBuf,edx
    9.     xor edx,edx
    10.     @@:
    11.     cmp edx,dwEntriesRead
    12.     je @F
    13.     push edx
    14.     invoke RtlMoveMemory,addr gui,rBuf,4
    15.     invoke WideCharToMultiByte,CP_ACP,0,gui.grui0_name,\
    16.     -1,addr szBuf,255,NULL,NULL
    17.     PrintString szBuf
    18.     pop edx
    19.     inc edx
    20.     add rBuf,4
    21.     jmp @B
    22.     @@:
    23. .endif
    24. invoke NetApiBufferFree,addr pBuf
    25.  




    Замечу, что lpServerName и lpGroupName Unicode-строки. Остальное вроде и так понятно. Группа должна быть Global.

    Что касается моего домена, удалось получить записи для групп: Domain Admins, Domain Users, Domain Controllers, Domain Computers, Enterprise Admins, Schema Admins, Group Policy Creator Owners.
     
  7. Max

    Max Member

    Публикаций:
    0
    Регистрация:
    22 май 2003
    Сообщения:
    192
    irrona

    Замечу, что lpServerName и lpGroupName Unicode-строки

    а не пробовал - будет ли это работать на русском сервере?

    на скока я помню, в оснастке "пользователи и компьютеры" высвечиваются группы типа "Администраторы домена" и т.п.
     
  8. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    Max

    Проверить не могу, т.к. не имею 2003 сервера с руссификацией. Если кто желает проверить сам - пожалуйста.