Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

как добавить пользователя в группу   Найти похожие ветки 

 
_hunter_ ©   (2004-01-29 17:32) [0]

Здравствуйте. Как можно добавить пользователя в какую нибудь группу например "администраторы"?
Создать пользователя функцие NetUserAdd получается. А вот добавить его в группу (например администраторы) что-то ни как... возвращает код ошибки NERR_GroupExists. Что я делаю не так?

procedure TForm1.AddUserToGroupClick(Sender: TObject);
var
ServName:PWideChar;
UserName: PWideChar;
buf: GROUP_USERS_INFO_0;
nStatus: integer;
begin
ServName:="server";
UserName:=PWideChar(WideString(Form1.Edit1.Text));

//  NetApiBufferAllocate(1000,pointer(buf));
buf.grui0_name:="Administrators";
nStatus:=NetUserSetGroups(ServName,UserName,0,@buf,1);
//  NetApiBufferFree(@buf);
case nStatus of
  NERR_Success         : ShowMessage("Success");
  ERROR_ACCESS_DENIED  : ShowMessage("ACCESS DENIED");
  NERR_InvalidComputer : ShowMessage("Invalid computer");
  NERR_NotPrimary      : ShowMessage("Not primary");
  NERR_GroupNotFound   : ShowMessage("Group not found");
  NERR_UserNotFound    : ShowMessage("User not found");
else
  ShowMessage(IntToStr(nStatus));
end;
end;


 
AndersoNRules ©   (2004-01-29 22:08) [1]

A kakiye uniti ti zdesi ispolizueshi ?


 
_hunter_ ©   (2004-01-30 05:47) [2]

JwaLmAccess, JwaLmErr, JwaLm, JwaWinNT

а можно и так:

function NetUserSetGroups; external netapi32lib name "NetUserSetGroups";

NERR_Success = 0;
ERROR_ACCESS_DENIED = 5;
NERR_BASE = 2100;
NERR_InvalidComputer    = (NERR_BASE+251);
NERR_NotPrimary          = (NERR_BASE+126);
NERR_GroupNotFound       = (NERR_BASE+120);
NERR_UserNotFound        = (NERR_BASE+121);

_GROUP_USERS_INFO_0 = record
 grui0_name: LPWSTR;
end;

GROUP_USERS_INFO_0 = _GROUP_USERS_INFO_0;


 
clickmaker ©   (2004-01-30 12:53) [3]

А винда не русская часом? Тогда название группы по-другому звучит. Для универсальности лучше получать SID встроенной группы с помощью AllocateAndInitializeSid, а потом уже LookupAccountSid, чтобы имя группы узнать


 
_hunter_ ©   (2004-01-30 15:06) [4]

да нет не русская... в том то и дело...


 
clickmaker ©   (2004-01-30 16:23) [5]

buf.grui0_name д.б. PWideChar


 
_hunter_ ©   (2004-02-02 07:42) [6]

всмысле так?
buf.grui0_name:=PWideChar(WideString("Administrators"));
не помогает...
может быть имя группы надо писать не так?



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

Форум: "WinAPI";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
6-1079372447
leonidus
2004-03-15 20:40
2004.04.11
Для чего нужен компонет IdAntiFreeze?


8-1071208499
fzn
2003-12-12 08:54
2004.04.11
DrawIconEx - проблемы


1-1079980993
валенок
2004-03-22 21:43
2004.04.11
Окно на заднем плане


14-1082121118
John Doe
2004-04-16 17:11
2004.04.11
Где найти серьезные книги


9-1065678501
Master™Jedi
2003-10-09 09:48
2004.04.11
DelphiX и 3D





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский