2010-09-20 22 views
1

J'ai un morceau de code qui crée un utilisateur Windows. Tout va bien et l'utilisateur est en effet créé. Toutefois, lorsque j'essaie de générer un épinglage LoadUserProfile, l'opération échoue car l'utilisateur ne se trouve pas dans le groupe Utilisateurs. Maintenant, je sais comment ajouter de manière pragmatique cet utilisateur au groupe Utilisateurs, mais je ne veux pas coder en dur le nom de groupe "Utilisateurs", car il pourrait changer en fonction des paramètres régionaux. Existe-t-il un moyen d'ajouter l'utilisateur au groupe Utilisateurs par défaut (en passant, la commande runas user/add le fait déjà)?Comment ajouter un nouvel utilisateur Windows au groupe Utilisateurs par défaut


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(); 

Répondre

2

Windows et Active Directory ont une numberOf « bien connus SIDs » qui sont les identifiants de sécurité pour les comptes et les groupes builtin. Vous pouvez utiliser le SID bien connu pour lier au groupe Utilisateurs car il ne changera pas indépendamment des paramètres régionaux. Un administrateur peut même renommer le groupe Utilisateurs en autre chose, mais le SID restera le même.

Les SIDs bien connus sont dénombrés dans System.Security.Principal.WellKnownSidType

Voir http://msdn.microsoft.com/en-us/library/system.security.principal.wellknownsidtype.aspx pour plus de détails.

+0

Merci, ça y est! – kateroh