Compartilhar via


Função NetGroupGetUsers (lmaccess.h)

A função NetGroupGetUsers recupera uma lista dos membros em um grupo global específico no banco de dados de segurança, que é o banco de dados SAM (gerenciador de contas de segurança) ou, no caso de controladores de domínio, o Active Directory.

Sintaxe

NET_API_STATUS NET_API_FUNCTION NetGroupGetUsers(
  [in]      LPCWSTR    servername,
  [in]      LPCWSTR    groupname,
  [in]      DWORD      level,
  [out]     LPBYTE     *bufptr,
  [in]      DWORD      prefmaxlen,
  [out]     LPDWORD    entriesread,
  [out]     LPDWORD    totalentries,
  [in, out] PDWORD_PTR ResumeHandle
);

Parâmetros

[in] servername

Um ponteiro para uma cadeia de caracteres constante que especifica o nome DNS ou NetBIOS do servidor remoto no qual a função deve ser executada. Se esse parâmetro for NULL, o computador local será usado.

[in] groupname

Um ponteiro para uma cadeia de caracteres constante que especifica o nome do grupo global cujos membros devem ser listados. Para obter mais informações, consulte a seção Comentários a seguir.

[in] level

O nível de informações dos dados solicitados. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
0
Retornar os nomes de membro do grupo global. O parâmetro bufptr aponta para uma matriz de estruturas de GROUP_USERS_INFO_0 .
1
Retornar os nomes e atributos de membro do grupo global. O parâmetro bufptr aponta para uma matriz de estruturas de GROUP_USERS_INFO_1 .

[out] bufptr

Um ponteiro para o endereço do buffer que recebe a estrutura de informações. O sistema aloca a memória para esse buffer. Você deve chamar a função NetApiBufferFree para desalocar a memória. Observe que você deve liberar o buffer mesmo que a função falhe com ERROR_MORE_DATA.

[in] prefmaxlen

O comprimento máximo preferencial dos dados retornados, em bytes. Se você especificar MAX_PREFERRED_LENGTH, a função alocará a quantidade de memória necessária para armazenar os dados. Se você especificar outro valor nesse parâmetro, ele poderá restringir o número de bytes retornados pela função. Se o tamanho do buffer for insuficiente para manter todas as entradas, a função retornará ERROR_MORE_DATA. Para obter mais informações, consulte Buffers de função de gerenciamento de rede e Comprimentos de buffer de função de gerenciamento de rede.

[out] entriesread

Um ponteiro para um valor que recebe a contagem de elementos realmente enumerados.

[out] totalentries

Um ponteiro para um valor que recebe o número total de entradas que poderiam ter sido enumeradas da posição de currículo atual.

[in, out] ResumeHandle

Um ponteiro para uma variável que contém um identificador de currículo usado para continuar uma enumeração de usuário existente. O identificador deve ser zero na primeira chamada e deixado inalterado para chamadas subsequentes. Se o parâmetro ResumeHandle for NULL, nenhum identificador de currículo será armazenado.

Valor retornado

Se a função for bem-sucedida, o valor retornado será NERR_Success.

Se a função falhar, o valor retornado poderá ser um dos seguintes códigos de erro.

Código de retorno Descrição
ERROR_ACCESS_DENIED
O usuário não tem acesso às informações solicitadas.
ERROR_INVALID_LEVEL
O nível de chamada do sistema não está correto. Esse erro será retornado se o parâmetro de nível tiver sido especificado como um valor diferente de 0 ou 1.
ERROR_MORE_DATA
Mais entradas estão disponíveis. Especifique um buffer grande o suficiente para receber todas as entradas.
ERROR_NOT_ENOUGH_MEMORY
Memória insuficiente disponível para concluir a operação.
NERR_InvalidComputer
O nome do computador é inválido.
NERR_GroupNotFound
Não foi possível encontrar o nome do grupo global na estrutura apontada pelo parâmetro bufptr .
NERR_InternalError
Ocorreu um erro interno.

Comentários

Se você chamar essa função em um controlador de domínio que está executando o Active Directory, o acesso será permitido ou negado com base na ACL (lista de controle de acesso) do objeto protegível. A ACL padrão permite que todos os usuários autenticados e membros do grupo "Acesso compatível com o Pré-Windows 2000" exibam as informações. Se você chamar essa função em um servidor membro ou estação de trabalho, todos os usuários autenticados poderão exibir as informações. Para obter informações sobre acesso anônimo e restrição de acesso anônimo nessas plataformas, consulte Requisitos de segurança para as funções de gerenciamento de rede. Para obter mais informações sobre ACLs, ACEs e tokens de acesso, consulte Controle de Acesso Model.

O descritor de segurança do objeto Group é usado para executar o marcar de acesso para essa função.

Para conceder uma associação de usuário em um grupo global existente, você pode chamar a função NetGroupAddUser . Para remover um usuário de um grupo global, chame a função NetGroupDelUser . Para obter informações sobre como substituir a associação de um grupo global, consulte NetGroupSetUsers.

Os nomes de conta de usuário são limitados a 20 caracteres e os nomes de grupo são limitados a 256 caracteres. Além disso, os nomes de conta não podem ser encerrados por um período e não podem incluir vírgulas ou qualquer um dos seguintes caracteres imprimíveis: ", /, , [, ], :, |, <, , >, +, =, ;, ?, *. Os nomes também não podem incluir caracteres no intervalo de 1 a 31, que são não imprimíveis.

Se você estiver programando para o Active Directory, poderá chamar determinados métodos ADSI (Active Directory Service Interface) para obter a mesma funcionalidade que você pode obter chamando as funções do grupo de gerenciamento de rede. Para obter mais informações, consulte IADsGroup.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho lmaccess.h (inclua Lm.h)
Biblioteca Netapi32.lib
DLL Netapi32.dll

Confira também

GROUP_USERS_INFO_0

GROUP_USERS_INFO_1

Funções de grupo

NetApiBufferFree

NetGroupAddUser

NetGroupDelUser

NetGroupSetUsers

NetQueryDisplayInformation

NetUserGetGroups

Funções de gerenciamento de rede

Visão geral do gerenciamento de rede