информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[Win32] Из реестра 29.03.03 14:35  Число просмотров: 1101
Автор: zonny <Sasha> Статус: Member
<"чистая" ссылка>
<programming>
[Win32] admin 29.03.03 12:00  
Автор: Kerk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как узнать (WinXP) что текущий юзер - Администратор?
А чем GetUserName не нравится? 10.04.03 13:42  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
[Win32] Из реестра 29.03.03 14:35  
Автор: zonny <Sasha> Статус: Member
<"чистая" ссылка>
[Win32] Из реестра 10.04.03 09:59  
Автор: Kerk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Подробнее можно? ;))))))
[Win32] Из реестра 10.04.03 13:31  
Автор: zonny <Sasha> Статус: Member
Отредактировано 10.04.03 13:33  Количество правок: 1
<"чистая" ссылка>
> Подробнее можно? ;))))))
Если адрес в реестре, то вот для w2k
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
Там ключ Logon User Name . Он то и содержит имя пользователя.
[WinNT?] Я гонец из Пензы ;-))))))) 11.04.03 20:22  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 12.04.03 06:39  Количество правок: 3
<"чистая" ссылка>
> > Подробнее можно? ;))))))
> Если адрес в реестре, то вот для w2k
> HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
> \Explorer
> Там ключ Logon User Name . Он то и содержит имя
> пользователя.

И всё-таки, IMHO, не надо извращений... Я думаю, что автор корневого поста хотел узнать, имеет ли процесс, в котором исполняется некий код, административные привилегии...

В MSDN описано как минимум два метода. В первом открываем Token процесса и долго с ним мучаемся... Метод этот самый правильный и самый трудный в плане кодирования, но единожды закодив...

Второй метод прост, как выстрел из пистолета. Вот пример функции на Delphi:
Uses WINSVC;
----------
Function IsUserAdmin(Const aHostName: String): Bool;
Var SCHndl: THandle;
Begin
  SCHndl := OpenSCManager(PChar(aHostName), Nil, SC_MANAGER_ALL_ACCESS);
  Result := SCHndl <> 0;
  If Result Then 
    CloseServiceHandle(SCHndl)
  Else 
    If GetLastError <> ERROR_ACCESS_DENIED Then
      RaiseLastWin32Error;
End;

---


Суть трюка в том, что NT сама проверит вас на «административность», если вы запросите такой высокий уровень доступа к базе системных служб. Более того, если указать aHostName (не пустой), то можно проверить свои силы на удалённой машине ;-)
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach