Como adicionar um usuário no sistema local usando serviços de diretório no Visual Basic .NET ou no Visual Basic 2005

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 306271
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 306273.

NESTA TAREFA

Sumário
Este artigo descreve como usar o espaço para nome DirectoryServices para adicionar um usuário para o sistema local e um grupo.

back to the top

Requisitos

  • Microsoft Visual Basic .NET ou Microsoft Visual Basic 2005
back to the top

Criar o exemplo

  1. Abra o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 e crie um novo projeto Visual Basic Console Application.
  2. No Solution Explorer, clique com o botão direito do mouse em References e, em seguida, clique em Add Reference .
  3. Adicione uma referência ao assembly System.DirectoryServices.dll .
  4. Substitua o código no Module1.vb com o seguinte código:
    Imports System.DirectoryServicesModule Module1Sub Main()Try    Dim AD As DirectoryEntry = _      New DirectoryEntry("WinNT://" + Environment.MachineName + ",computer")    Dim NewUser As DirectoryEntry = AD.Children.Add("TestUser1", "user")    NewUser.Invoke("SetPassword", New Object() {"#12345Abc"})    NewUser.Invoke("Put", New Object() {"Description", "Test User from .NET"})    NewUser.CommitChanges()    Dim grp As DirectoryEntry    grp = AD.Children.Find("Guests", "group")    If grp.Name <> "" Then        grp.Invoke("Add", New Object() {NewUser.Path.ToString()})    End If    Console.WriteLine("Account Created Successfully")    Console.ReadLine()Catch ex As Exception    Console.WriteLine(ex.Message)    Console.ReadLine()End TryEnd SubEnd Module					
  5. Compilar e executar o projeto.
  6. Siga estas etapas em um computador baseado no Windows 2000 ou baseados no Windows Server 2003 para verificar se a conta foi criada e adicionada ao grupo Convidado:

    1. No menu Iniciar , aponte para programas , aponte para Ferramentas administrativas e, em seguida, clique em Gerenciamento do computador .
    2. Clique para expandir o nó usuários e grupos locais . A nova conta deve aparecer sob o nó usuários , bem como sob o nó para o grupo Convidado .
    Execute essas etapas em um computador baseado no Windows XP para verificar que a conta foi criada e adicionada ao grupo Convidado:
    1. No menu Iniciar , clique em Painel de controle .
    2. Clique duas vezes em contas de usuário . A nova conta de usuário deve aparecer na caixa de diálogo Contas de usuário .
  7. Importante, remova a conta de usuário recém-criada do sistema após terminar de teste.
back to the top

Explicação do código

Criar uma nova entrada de diretório

Quando você cria a entrada de diretório neste exemplo, assume-se que o sistema está executando o Microsoft Windows NT, Windows 2000 ou Windows XP. Observe que a seqüência que é passada para o construtor DirectoryEntry começa com "WinNT: / /". Você também pode executar serviços de diretório em outros sistemas operacionais de terceiros.
Dim AD As DirectoryEntry = _   New DirectoryEntry("WinNT://" + Environment.MachineName + ",computer")				

Adicionar a entrada de Directory para a árvore de diretório

O código a seguir adiciona um DirectoryEntry do tipo de usuário com o valor da TestUser1 à árvore do Active Directory .
Dim NewUser As DirectoryEntry = AD.Children.Add("TestUser1", "user")				

Definir a senha e a descrição para a nova conta de usuário

O código a seguir chama o método Invoke para chamar os métodos SetPassword e colocar do objeto DirectoryEntry . Isso define a senha e atribui uma descrição para a conta de usuário. Esse código também chama o método CommitChanges para salvar as alterações.
NewUser.Invoke("SetPassword", New Object() {"#12345Abc"})NewUser.Invoke("Put", New Object() {"Description", "Test User from .NET"})NewUser.CommitChanges()				

Adicionar a conta a um grupo

A primeira etapa para adicionar a conta a um grupo é definir uma variável do tipo DirectoryEntry . Em seguida, você chama o método Find do membro filhos da classe Active Directory para preencher a variável. Nesse caso, o grupo Convidado é o destino da pesquisa. Esse código testa o valor que o método Find retorna para determinar se o grupo foi encontrado. Se o grupo for encontrado, a nova conta de usuário é adicionada ao grupo.
Dim grp As DirectoryEntrygrp = AD.Children.Find("Guests", "group")If grp.Name <> "" Then    grp.Invoke("Add", New Object() {NewUser.Path.ToString()})End If				
back to the top

Solução de problemas

O código neste artigo falhará se você tentar executar o código sem os privilégios suficientes para criar uma conta de usuário. Para o código concluir com êxito, o usuário conectado no momento deve ser um membro do grupo Administradores ou ter permissões específicas que permitem ao usuário criar contas de usuário.

back to the top
Referências
Para obter mais informações sobre o Active Directory Service Interfaces, visite o seguinte site da Web Microsoft Developer Network (MSDN):

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 306271 - Última Revisão: 12/06/2006 23:18:59 - Revisão: 5.1

Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic 2005

  • kbmt kbvs2005applies kbhowtomaster KB306271 KbMtpt
Comentários