Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

CÓMO: Agregar un usuario al sistema local mediante Servicios de directorio y Visual C# .NET

Este artículo se publicó anteriormente con el número E306273
Para obtener una versión de Microsoft Visual Basic .NET de este artículo, consulte 306271.

EN ESTA TAREA

Resumen
Este artículo describe cómo usar el espacio de nombres DirectoryServices para agregar un usuario al sistema local y a un grupo.

volver al principio

Requisitos

  • Microsoft Windows XP, Windows 2000 o Windows NT 4.0
  • Visual C# .NET
volver al principio

Crear el ejemplo

  1. Abra Microsoft Visual Studio .NET y cree un nuevo proyecto de aplicación de consola de Visual C#.
  2. En el Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en Referencias y, después, haga clic en Agregar referencia.
  3. Agregue una referencia al ensamblado System.DirectoryServices.dll.
  4. Reemplace el código de Class1.cs por el código siguiente:
    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("Cuenta creada correctamente");	 Console.ReadLine();	}    catch (Exception ex)	{	 Console.WriteLine(ex.Message);	 Console.ReadLine();	}    }}
  5. Compile y ejecute el proyecto.
  6. Siga estos pasos en un equipo basado en Windows 2000 para comprobar que la cuenta se creó y agregó al grupo Invitados:

    1. En el menú Inicio, seleccione Programas, Herramientas administrativas y, a continuación, haga clic en Administración de equipos.
    2. Haga clic en el nodo Usuarios locales y grupos para expandirlo. La nueva cuenta debe aparecer bajo el nodo Usuarios, así como bajo el nodo del grupo Invitados.
    Siga estos pasos en un equipo basado en Windows XP para comprobar que la cuenta se creó y agregó al grupo Invitados:
    1. En el menú Inicio, haga clic en Panel de control.
    2. Haga doble clic en Cuentas de usuario. La nueva cuenta de usuario debe aparecer en el cuadro de diálogo Cuentas de usuario.
  7. Es importante que quite del sistema la cuenta de usuario recién creada cuando finalice la comprobación.
volver al principio

Explicación del código

Crear una nueva entrada de directorio

Al crear la entrada de directorio de este ejemplo se supone que está ejecutando Microsoft Windows NT, Windows 2000 o Windows XP. Tenga en cuenta que la cadena que se pasa al constructor DirectoryEntry empieza con "WinNT://". También puede ejecutar Servicios directorio en los sistemas operativos de otros proveedores.
DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");

Agregar la entrada de directorio al árbol de directorio

El código siguiente agrega un DirectoryEntry del tipo user con el valor de TestUser1 al árbol de Active Directory.
DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");

Asignar la contraseña y la descripción a la nueva cuenta de usuario

El código siguiente llama al método Invoke para invocar los métodos SetPassword y Put del objeto DirectoryEntry. Esto asigna la contraseña y una descripción a la cuenta de usuario. Este código llama al método CommitChanges para guardar los cambios.
NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});NewUser.CommitChanges();

Agregar la cuenta a un grupo

El primer paso para agregar la cuenta a un grupo es definir una variable del tipo DirectoryEntry. Debe llamar al método Find del miembro Children de la clase ActiveDirectory para llenar la variable. En este caso, el grupo Invitados es el objetivo de la búsqueda. Este código demuestra el valor que devuelve el método Find para determinar si se ha encontrado el grupo. Si el grupo se ha encontrado, la nueva cuenta de usuario se agrega al grupo.
DirectoryEntry grp;grp = AD.Children.Find("Guests", "group");if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
volver al principio

Solucionar problemas

El código de este artículo falla si intenta ejecutar el código sin los privilegios suficientes para crear una cuenta de usuario. Para que el código se complete con éxito, el usuario que ha iniciado sesión debe pertenecer al grupo Administradores o tener permisos específicos que permitan al usuario crear cuentas de usuario.

volver al principio
Propiedades

Id. de artículo: 306273 - Última revisión: 04/10/2003 14:21:00 - Revisión: 1.0

Microsoft Visual C# .NET 2002 Standard Edition

  • kbhowto kbhowtomaster KB306273
Comentarios
ody>