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

Вниз

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

 
_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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.035 c
6-1079507178
Layner
2004-03-17 10:06
2004.04.11
Сохраняю файл аттач с помощью TIdPOP3, TIdAttachment


7-1075378020
User3000
2004-01-29 15:07
2004.04.11
Как получить список всех процессов в win9x/Me


1-1082619648
NewDelphiUser
2004-04-22 11:40
2004.04.11
ExtractShortPathName, только наоборот.


3-1079439158
incm
2004-03-16 15:12
2004.04.11
Параллельное использование баз Paradox через BDE


7-1079895775
Leviathan
2004-03-21 22:02
2004.04.11
AntiFreeze цикла