2009-10-18 2 views
0

사람이 내가 (프로그래밍 방식) 어떤 기능/정보/코드가 환영

(파워 유저, 백업 opetarors 같은) 그룹에 현재/선택한 사용자를 추가하는 방법을 말해 줄 수 그룹에 현재/선택한 사용자를 추가

답변

1

자, 로컬 그룹에 사용자를 추가하기 만하면 NetLocalGroupAddMembers API가 필요합니다 (어쨌든 C에서 그렇게하는 것). 간단한 예를 들어

:

LOCALGROUP_MEMBERS_INFO_3 member[1]; 

// Add using fully qualified name, could also use SID with LOCALGROUP_MEMBERS_INFO_0 
member[0].lgrmi3_domainandname = L"MAIN\\username"; 

status = NetLocalGroupAddMembers(NULL, L"Power Users", 3, (LPBYTE)member, 1); 

그룹 이름이 같은 것을 사용하여 프로그래밍 방식으로 확인할 수있는 시스템 그룹의 단지 텍스트 이름입니다

PLOCALGROUP_INFO_0 groups = NULL; 
DWORD dwCount = 0; 
DWORD dwTotalCount = 0; 

NET_API_STATUS status = NetLocalGroupEnum(NULL, 0, (LPBYTE*)&groups, MAX_PREFERRED_LENGTH, &dwCount, &dwTotalCount, NULL); 

if(status == NERR_Success) 
{ 
    for(DWORD i = 0; i < dwCount; i++) 
    { 
     printf("%ls\n", groups[i].lgrpi0_name); 
    } 
    NetApiBufferFree(groups); 
} 
else 
{ 
    printf("Error %d\n", status); 
} 

이 글로벌 그룹에 추가를 대신 NetGroupAddUser API를 사용해야합니다.

2

여기 당신에게 Jedi JCL

program Delphi_AdduserToGroup; 

{$APPTYPE CONSOLE} 

uses 
    Windows, 
    JclWin32, 
    SysUtils; 


Procedure AddUsertoGroup(aUser,aGroup:PWideChar); 
var 
    GroupMembersInfo : PLocalGroupMembersInfo3; 
    ResInt   : Integer; 
begin 
    GetMem(GroupMembersInfo,sizeof(TLocalGroupMembersInfo3)); 
    try 
    //Writeln(aUser+'->'+aGroup); 
    GroupMembersInfo^.lgrmi3_domainandname :=aUser; 
    ResInt:=NetLocalGroupAddMembers(nil,aGroup,3,pointer(GroupMembersInfo),1); 
    case ResInt of 
    NERR_Success   : Writeln('User added to group '+aGroup); 
    ERROR_ACCESS_DENIED : Writeln('The user does not have access to the requested information.'); 
    ERROR_NO_SUCH_MEMBER : Writeln('One or more of the members specified do not exist. Therefore, no new members were added.'); 
    ERROR_MEMBER_IN_ALIAS: Writeln('One or more of the members specified were already members of the local group. No new members were added.'); 
    ERROR_INVALID_MEMBER : Writeln('One or more of the members cannot be added because their account type is invalid. No new members were added.'); 
    else 
    Writeln('Error '+IntToStr(ResInt)); 
    end; 
    finally 
    FreeMem(GroupMembersInfo); 
    end; 
end; 


begin 
    try 
    AddUsertoGroup('myuser','Administrators'); 
    Readln; 
    except 
    on E:Exception do 
     Writeln(E.Classname, ': ', E.Message); 
    end; 
end. 

안녕을 사용하는 예.