estrutura USER_INFO_4 (lmaccess.h)

A estrutura USER_INFO_4 contém informações sobre uma conta de usuário, incluindo o nome da conta, os dados de senha, o nível de privilégio, o caminho para o diretório base do usuário, o SID (identificador de segurança) e outras estatísticas de rede relacionadas ao usuário.

Sintaxe

typedef struct _USER_INFO_4 {
  LPWSTR usri4_name;
  LPWSTR usri4_password;
  DWORD  usri4_password_age;
  DWORD  usri4_priv;
  LPWSTR usri4_home_dir;
  LPWSTR usri4_comment;
  DWORD  usri4_flags;
  LPWSTR usri4_script_path;
  DWORD  usri4_auth_flags;
  LPWSTR usri4_full_name;
  LPWSTR usri4_usr_comment;
  LPWSTR usri4_parms;
  LPWSTR usri4_workstations;
  DWORD  usri4_last_logon;
  DWORD  usri4_last_logoff;
  DWORD  usri4_acct_expires;
  DWORD  usri4_max_storage;
  DWORD  usri4_units_per_week;
  PBYTE  usri4_logon_hours;
  DWORD  usri4_bad_pw_count;
  DWORD  usri4_num_logons;
  LPWSTR usri4_logon_server;
  DWORD  usri4_country_code;
  DWORD  usri4_code_page;
  PSID   usri4_user_sid;
  DWORD  usri4_primary_group_id;
  LPWSTR usri4_profile;
  LPWSTR usri4_home_dir_drive;
  DWORD  usri4_password_expired;
} USER_INFO_4, *PUSER_INFO_4, *LPUSER_INFO_4;

Membros

usri4_name

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode que especifica o nome da conta de usuário. Para a função NetUserSetInfo , esse membro é ignorado.

usri4_password

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode que especifica a senha do usuário identificado pelo membro usri4_name . O comprimento não pode exceder bytes PWLEN. A função NetUserGetInfo retorna um ponteiro NULL para manter a segurança de senha.

Por convenção, o comprimento das senhas é limitado a caracteres LM20_PWLEN.

usri4_password_age

Tipo: DWORD

O número de segundos decorridos desde que o membro usri4_password foi alterado pela última vez. As funções NetUserAdd e NetUserSetInfo ignoram esse membro.

usri4_priv

Tipo: DWORD

O nível de privilégio atribuído ao membro usri4_name . As funções NetUserAdd e NetUserSetInfo ignoram esse membro. Esse membro pode ser um dos valores a seguir. Para obter mais informações sobre direitos de conta de usuário e grupo, consulte Privilégios.

Valor Significado
USER_PRIV_GUEST
Convidado
USER_PRIV_USER
Usuário
USER_PRIV_ADMIN
Administrador

usri4_home_dir

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode que especifica o caminho do diretório base do usuário especificado pelo membro usri4_name . A cadeia de caracteres pode ser NULL.

usri4_comment

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode que contém um comentário a ser associado à conta de usuário. A cadeia de caracteres pode ser uma cadeia de caracteres NULL ou pode ter qualquer número de caracteres antes do caractere nulo de terminação.

usri4_flags

Tipo: DWORD

Esse membro pode ser um ou mais dos valores a seguir.

Observe que definir sinalizadores de controle de conta de usuário pode exigir determinados privilégios e controlar direitos de acesso. Para obter mais informações, consulte a seção Comentários da função NetUserSetInfo .

Valor Significado
UF_SCRIPT
O script de logon executado. Esse valor deve ser definido.
UF_ACCOUNTDISABLE
A conta do usuário está desabilitada.
UF_HOMEDIR_REQUIRED
O diretório base é necessário. Este valor é ignorado.
UF_PASSWD_NOTREQD
Nenhuma senha é necessária.
UF_PASSWD_CANT_CHANGE
O usuário não pode alterar a senha.
UF_LOCKOUT
No momento, a conta está bloqueada. Você pode chamar a função NetUserSetInfo para limpar esse valor e desbloquear uma conta bloqueada anteriormente. Você não pode usar esse valor para bloquear uma conta desbloqueada anteriormente.
UF_DONT_EXPIRE_PASSWD
A senha nunca deve expirar na conta.
UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED
A senha do usuário é armazenada em criptografia reversível no Active Directory.
UF_NOT_DELEGATED
Marca a conta como "confidencial"; outros usuários não podem atuar como delegados dessa conta de usuário.
UF_SMARTCARD_REQUIRED
Exige que o usuário faça logon na conta de usuário com uma cartão inteligente.
UF_USE_DES_KEY_ONLY
Restrinja essa entidade de segurança para usar apenas tipos de criptografia DES (Data Encryption Standard) para chaves.
UF_DONT_REQUIRE_PREAUTH
Essa conta não requer pré-autenticação Kerberos para logon.
UF_TRUSTED_FOR_DELEGATION
A conta está habilitada para delegação. Essa é uma configuração sensível à segurança; contas com essa opção habilitada devem ser rigorosamente controladas. Essa configuração permite que um serviço em execução na conta assuma a identidade de um cliente e se autentique como esse usuário para outros servidores remotos na rede.
UF_PASSWORD_EXPIRED
A senha do usuário expirou.

Windows 2000: Esse valor é ignorado.

UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION
A conta é confiável para autenticar um usuário fora do pacote de segurança Kerberos e delegar esse usuário por meio da delegação restrita. Essa é uma configuração sensível à segurança; contas com essa opção habilitada devem ser rigorosamente controladas. Essa configuração permite que um serviço em execução na conta afirme a identidade de um cliente e se autentique como esse usuário para serviços configurados especificamente na rede.

Windows XP/2000: Esse valor é ignorado.

 

Os valores a seguir descrevem o tipo de conta. Somente um valor pode ser definido. Não é possível alterar o tipo de conta usando a função NetUserSetInfo .

Valor Significado
UF_NORMAL_ACCOUNT
Esse é um tipo de conta padrão que representa um usuário típico.
UF_TEMP_DUPLICATE_ACCOUNT
Essa é uma conta para usuários cuja conta primária está em outro domínio. Essa conta fornece acesso do usuário a esse domínio, mas não a nenhum domínio que confie nesse domínio. O Gerenciador de Usuários refere-se a esse tipo de conta como uma conta de usuário local.
UF_WORKSTATION_TRUST_ACCOUNT
Essa é uma conta de computador para um computador que é membro desse domínio.
UF_SERVER_TRUST_ACCOUNT
Essa é uma conta de computador para um controlador de domínio de backup que é membro desse domínio.
UF_INTERDOMAIN_TRUST_ACCOUNT
Essa é uma permissão para confiar em uma conta de um domínio que confia em outros domínios.

usri4_script_path

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode especificando o caminho para o arquivo de script de logon do usuário. O arquivo de script pode ser um . Arquivo CMD, um arquivo .EXE ou um arquivo .BAT. A cadeia de caracteres também pode ser NULL.

usri4_auth_flags

Tipo: DWORD

Os privilégios de operador do usuário.

Para a função NetUserGetInfo , o valor apropriado é retornado com base na associação de grupo local. Se o usuário for membro dos Operadores de Impressão, AF_OP_PRINT será definido. Se o usuário for membro dos Operadores de Servidor, AF_OP_SERVER será definido. Se o usuário for membro dos Operadores de Conta, AF_OP_ACCOUNTS será definido. AF_OP_COMM nunca está definido.

As funções NetUserAdd e NetUserSetInfo ignoram esse membro.

Esse membro pode ser um ou mais dos valores a seguir.

Valor Significado
AF_OP_PRINT
O privilégio do operador de impressão está habilitado.
AF_OP_COMM
O privilégio do operador de comunicações está habilitado.
AF_OP_SERVER
O privilégio do operador de servidor está habilitado.
AF_OP_ACCOUNTS
O privilégio do operador de contas está habilitado.

usri4_full_name

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode que contém o nome completo do usuário. Essa cadeia de caracteres pode ser uma cadeia de caracteres NULL ou pode ter qualquer número de caracteres antes do caractere nulo de terminação.

usri4_usr_comment

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode que contém um comentário do usuário. Essa cadeia de caracteres pode ser uma cadeia de caracteres NULL ou pode ter qualquer número de caracteres antes do caractere nulo de terminação.

usri4_parms

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode reservada para uso por aplicativos. Essa cadeia de caracteres pode ser uma cadeia de caracteres NULL ou pode ter qualquer número de caracteres antes do caractere nulo de terminação. Os produtos da Microsoft usam esse membro para armazenar informações de configuração do usuário. Não modifique essas informações.

usri4_workstations

Tipo: LPWSTR

Importante

Você não deve mais usar usri4_workstations. Em vez disso, você pode controlar o acesso de entrada às estações de trabalho definindo as configurações de Atribuição de Direitos de Usuário (Permitir logon localmente e Negar logon localmente ou Permitir logon por meio dos Serviços de Área de Trabalho Remota e Negar logon por meio dos Serviços de Área de Trabalho Remota).

Um ponteiro para uma cadeia de caracteres Unicode que contém os nomes das estações de trabalho das quais o usuário pode fazer logon. Até oito estações de trabalho podem ser especificadas; os nomes devem ser separados por vírgulas. Se você não quiser restringir o número de estações de trabalho, use uma cadeia de caracteres NULL . Para desabilitar logons de todas as estações de trabalho para essa conta, defina o valor UF_ACCOUNTDISABLE no membro usri4_flags .

usri4_last_logon

Tipo: DWORD

A data e a hora em que o último logon ocorreu. Esse valor é armazenado como o número de segundos decorridos desde 00:00:00, 1º de janeiro de 1970, GMT. Esse membro é ignorado pelas funções NetUserAdd e NetUserSetInfo .

Esse membro é mantido separadamente em cada BDC (controlador de domínio de backup) no domínio. Para obter um valor preciso, você deve consultar cada BDC no domínio. O último logon ocorreu no momento indicado pelo maior valor recuperado.

usri4_last_logoff

Tipo: DWORD

Este membro não é usado no momento.

A data e a hora em que o último logoff ocorreu. Esse valor é armazenado como o número de segundos decorridos desde 00:00:00, 1º de janeiro de 1970, GMT. Um valor zero indica que a hora do último logoff é desconhecida.

Esse membro é mantido separadamente em cada BDC (controlador de domínio de backup) no domínio. Para obter um valor preciso, você deve consultar cada BDC no domínio. O último logoff ocorreu no momento indicado pelo maior valor recuperado.

usri4_acct_expires

Tipo: DWORD

A data e a hora em que a conta expira. Esse valor é armazenado como o número de segundos decorridos desde 00:00:00, 1º de janeiro de 1970, GMT. Um valor de TIMEQ_FOREVER indica que a conta nunca expira.

usri4_max_storage

Tipo: DWORD

A quantidade máxima de espaço em disco que o usuário pode usar. Especifique USER_MAXSTORAGE_UNLIMITED para usar todo o espaço em disco disponível.

usri4_units_per_week

Tipo: DWORD

O número de unidades de tempo de comprimento igual em que a semana é dividida. Esse valor é necessário para calcular o comprimento da cadeia de caracteres de bits no membro usri4_logon_hours .

Esse valor deve ser UNITS_PER_WEEK para o LAN Manager 2.0. Esse elemento é ignorado pelas funções NetUserAdd e NetUserSetInfo .

Para aplicativos de serviço, as unidades devem ser um dos seguintes valores: SAM_DAYS_PER_WEEK, SAM_HOURS_PER_WEEK ou SAM_MINUTES_PER_WEEK.

usri4_logon_hours

Tipo: PBYTE

Um ponteiro para uma cadeia de caracteres de bits de 21 bytes (168 bits) que especifica os horários durante os quais o usuário pode fazer logon. Cada bit representa uma hora exclusiva na semana, em Greenwich Mean Time (GMT).

O primeiro bit (bit 0, palavra 0) é domingo, 0:00 a 0:59; o segundo bit (bit 1, palavra 0) é domingo, 1:00 a 1:59; e assim por diante. Observe que o bit 0 na palavra 0 representa domingo de 0:00 a 0:59 somente se você estiver no fuso horário GMT. Em todos os outros casos, você deve ajustar os bits de acordo com o deslocamento de fuso horário (por exemplo, GMT menos 8 horas para o Horário Padrão do Pacífico).

Especifique um ponteiro NULL nesse membro ao chamar a função NetUserAdd para indicar nenhuma restrição de tempo. Especifique um ponteiro NULL ao chamar a função NetUserSetInfo para indicar que nenhuma alteração deve ser feita nos horários durante os quais o usuário pode fazer logon.

usri4_bad_pw_count

Tipo: DWORD

O número de vezes que o usuário tentou fazer logon na conta usando uma senha incorreta. Um valor de – 1 indica que o valor é desconhecido. As chamadas para as funções NetUserAdd e NetUserSetInfo ignoram esse membro.

Esse membro é replicado do controlador de domínio primário (PDC); ele também é mantido em cada BDC (controlador de domínio de backup) no domínio. Para obter um valor preciso, você deve consultar cada BDC no domínio. O número de vezes que o usuário tentou fazer logon usando uma senha incorreta é o maior valor recuperado.

usri4_num_logons

Tipo: DWORD

O número de vezes que o usuário fez logon com êxito nessa conta. Um valor de – 1 indica que o valor é desconhecido. As chamadas para as funções NetUserAdd e NetUserSetInfo ignoram esse membro.

Esse membro é mantido separadamente em cada BDC (controlador de domínio de backup) no domínio. Para obter um valor preciso, você deve consultar cada BDC no domínio. O número de vezes que o usuário fez logon com êxito é a soma dos valores recuperados.

usri4_logon_server

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode que contém o nome do servidor para o qual as solicitações de logon são enviadas. Os nomes de servidor devem ser precedidos por duas barras invertidas (\). Para indicar que a solicitação de logon pode ser manipulada por qualquer servidor de logon, especifique um asterisco (\*) para o nome do servidor. Uma cadeia de caracteres NULL indica que as solicitações devem ser enviadas ao controlador de domínio.

Para servidores Windows, a função NetUserGetInfo retorna \*.

As funções NetUserAdd e NetUserSetInfo ignoram esse membro.

usri4_country_code

Tipo: DWORD

O código de país/região para o idioma de escolha do usuário.

usri4_code_page

Tipo: DWORD

A página de código para o idioma de escolha do usuário.

usri4_user_sid

Tipo: PSID

Um ponteiro para uma estrutura sid que contém o SID (identificador de segurança) que identifica exclusivamente o usuário. As funções NetUserAdd e NetUserSetInfo ignoram esse membro.

usri4_primary_group_id

Tipo: DWORD

O RID (identificador relativo) do Grupo Global Primário para o usuário. Quando você chama a função NetUserAdd , esse membro deve ser DOMAIN_GROUP_RID_USERS (definido em WinNT.h). Quando você chama NetUserSetInfo, esse membro deve ser o RID de um grupo global no qual o usuário está registrado. Para obter mais informações, consulte SIDs conhecidos e componentes sid.

usri4_profile

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode que especifica um caminho para o perfil do usuário. Esse valor pode ser uma cadeia de caracteres NULL , um caminho absoluto local ou um caminho UNC.

usri4_home_dir_drive

Tipo: LPWSTR

Um ponteiro para uma cadeia de caracteres Unicode que especifica a letra da unidade atribuída ao diretório base do usuário para fins de logon.

usri4_password_expired

Tipo: DWORD

As informações de expiração da senha.

A função NetUserGetInfo retornará zero se a senha não tiver expirado (e diferente de zero se tiver).

Ao chamar NetUserAdd ou NetUserSetInfo, especifique um valor diferente de zero neste membro para informar aos usuários que eles devem alterar sua senha no próximo logon. Para desativar essa mensagem, chame NetUserSetInfo e especifique zero neste membro. Observe que você não pode especificar zero para negar a expiração de uma senha que já expirou.

Comentários

A estrutura USER_INFO_4 pode ser usada com as funções NetUserAdd, NetUserSetInfo e NetUserGetInfo .

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.

Observe que a estrutura USER_INFO_4 substitui a estrutura USER_INFO_3 no Windows XP e posterior. É recomendável que os aplicativos usem a estrutura USER_INFO_4 em vez da estrutura USER_INFO_3 com as funções acima no Windows XP e posteriores.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho lmaccess.h (inclua Lm.h)

Confira também

NetUserAdd

NetUserEnum

NetUserGetInfo

NetUserSetInfo

Visão geral do gerenciamento de rede

Estruturas de gerenciamento de rede

SID

USER_INFO_3

Funções de usuário