Adicionar um usuário ao sistema local usando serviços de diretório e Visual C sharp
Este artigo descreve como usar o DirectoryServices
namespace para adicionar um usuário ao sistema local e a um grupo no Visual C#.
Versão original do produto: Visual C#
Número de KB original: 306273
Resumo
Este artigo passo a passo mostra como usar o DirectoryServices
namespace para adicionar um usuário ao sistema local e a um grupo.
Criar o Exemplo
Inicie o Visual Studio .NET 2003, Visual Studio 2005 ou Visual Studio 2008 e crie um novo projeto de Aplicativo de Console do Visual C#.
Em Gerenciador de Soluções, clique com o botão direito do mouse em Referências e clique em Adicionar Referência.
Adicione uma referência ao
System.DirectoryServices.dll
assembly.Substitua o código no arquivo Class1.cs pelo código a seguir.
Observação
No Visual C# 2005 ou Visual C# 2008, o arquivo Class1.cs é substituído pelo arquivo Program.cs .
using System; using System.DirectoryServices; class Class1 { static void Main(string[] args) { try { DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user"); NewUser.Invoke("SetPassword", new object[] {"#12345Abc"}); NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"}); NewUser.CommitChanges(); DirectoryEntry grp; grp = AD.Children.Find("Guests", "group"); if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});} Console.WriteLine("Account Created Successfully"); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } } }
Compile e execute o projeto.
Siga estas etapas em um computador baseado no Windows 2000 para verificar se a conta foi criada e adicionada ao grupo convidado:
- No menu Iniciar, aponte para Programas, aponte para Ferramentas Administrativas e clique em Gerenciamento de Computadores.
- Clique para expandir o nó Usuários Locais e Grupos . A nova conta deve aparecer no nó Usuários, bem como no nó do grupo Convidado.
Siga estas etapas em um computador baseado em Windows XP para verificar se a conta foi criada e adicionada ao grupo convidado:
- No menu Iniciar, clique em Painel de Controle.
- 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 .
Importante
Remova a conta de usuário recém-criada do sistema após concluir o teste.
Criar uma entrada de novo diretório
Ao criar a entrada do diretório neste exemplo, presume-se que o sistema esteja executando Windows NT, Windows 2000 ou Windows XP.
Observação
A cadeia de caracteres que é passada para o DirectoryEntry
construtor começa com "WinNT://"
. Você também pode executar os Serviços de Diretório em outros sistemas operacionais de terceiros.
DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");
Adicionar a Entrada do Diretório à Árvore de Diretório
O código a seguir adiciona um DirectoryEntry
usuário de tipo com o valor da árvore do TestUser1
Active Directory.
DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");
Defina a senha e a descrição da nova conta de usuário
O código a seguir chama o método Invoke para invocar os SetPassword
métodos e Put
do DirectoryEntry
objeto. Isso define a senha e atribui uma descrição à conta de usuário. Esse código também chama o CommitChanges
método 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
Para adicionar a conta a um grupo, siga estas etapas:
- Definir uma variável do tipo
DirectoryEntry
. - Chame o
Find
método doChildren
membro daActiveDirectory
classe para preencher a variável. Nesse caso, o grupo Convidado é o destino da pesquisa. Esse código testa o valor que oFind
método retorna para determinar se o grupo foi encontrado. Se o grupo for encontrado, a nova conta de usuário será adicionada ao grupo.
DirectoryEntry grp;
grp = AD.Children.Find("Guests", "group");
if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
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 que o código seja concluído com êxito, o usuário conectado atualmente deve ser um membro do grupo Administradores ou ter permissões específicas que permitem que o usuário crie contas de usuário.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários