Pregunta

Tengo un pedazo de código que crea un usuario de Windows. Todo está muy bien y el usuario es, en efecto creado. Sin embargo, cuando intento PInvoke LoadUserProfile, la operación falla, porque el usuario no está en el grupo de usuarios. Ahora, sé cómo agregar pragmáticamente este usuario al grupo de usuarios, pero no quiero a codificar nombre de grupo "Usuarios", ya que podría cambiar dependiendo de la configuración regional. ¿Hay una manera de agregar el usuario al grupo de usuarios por defecto (por cierto, runas comando de usuario / add ya hace eso)?


DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + domain);
DirectoryEntries entries = dirEntry.Children;
DirectoryEntry user = entries.Add(username, "User");
user.Properties["FullName"].Add("Dr Zoidberg");
user.Invoke("SetPassword", password);
user.CommitChanges();
¿Fue útil?

Solución

Windows y Active Directory tiene un numberof "SID notoriamente conocidas", que son los identificadores de seguridad para la orden interna cuentas y grupos. Se puede utilizar el SID conocido que se une al grupo de usuarios, ya que no va a cambiar, independientemente de la configuración regional. Un administrador puede incluso cambiar el nombre del grupo de usuarios a otra cosa, pero el SID seguirá siendo el mismo.

Los SID conocidos se enumeran en System.Security.Principal.WellKnownSidType

http://msdn.microsoft. com / es-es / library / system.security.principal.wellknownsidtype.aspx para más detalles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top