![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как добавить пользователя в группу [D6, Win2k, WinXP]
_hunter_ © (2004-01-29 17:32:00)Здравствуйте. Как можно добавить пользователя в какую нибудь группу например "администраторы"?
Создать пользователя функцие 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;
_hunter_ (2004-02-02 07:42:00) [1]всмысле так?
buf.grui0_name:=PWideChar(WideString('Administrators'));
не помогает...
может быть имя группы надо писать не так?
clickmaker (2004-01-30 16:23:00) [2]buf.grui0_name д.б. PWideChar
_hunter_ (2004-01-30 15:06:00) [3]да нет не русская... в том то и дело...
clickmaker (2004-01-30 12:53:00) [4]А винда не русская часом? Тогда название группы по-другому звучит. Для универсальности лучше получать SID встроенной группы с помощью AllocateAndInitializeSid, а потом уже LookupAccountSid, чтобы имя группы узнать
_hunter_ (2004-01-30 05:47:00) [5]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;
AndersoNRules (2004-01-29 22:08:00) [6]A kakiye uniti ti zdesi ispolizueshi ?