2008-11-24 4 views
2

Mon objectif est donc de pouvoir ajouter un utilisateur d'un domaine Active Directory à un autre groupe dans un domaine Active Directory distinct.Comment ajouter un utilisateur dans un autre domaine Active Directory en C#?

Je voudrais faire cela en C#. Je sais qu'il existe un espace de noms System.DirectoryServices avec des classes pour communiquer avec AD, mais je ne trouve aucune information sur l'ajout d'utilisateurs à travers des domaines.

Dans l'environnement, il existe deux contrôleurs de domaine avec la même forêt parente. Il y a une confiance transitoire entre les 2 domaines, appelons-les domaines A et B.

Je suis capable d'ajouter un utilisateur de B à un groupe de domaine local ou universel dans le domaine A avec l'outil Active Directory.

Est-ce que quelqu'un sait comment je peux faire cela par programmation en utilisant C#?

Répondre

1

Ce qui a fonctionné pour moi quand je l'ai écrit le code pour le faire revenir quelques années:

  1. Obtenez un DirectoryEntry pour le groupe auquel vous voulez ajouter un membre.
  2. Appelez Invoke sur le groupe DirectoryEntry en passant les arguments "Add" comme nom de méthode et ADsPath du membre dans un tableau.

Quelques exemples de code du haut de ma tête:

DirectoryEntry group = new DirectoryEntry(@"LDAP://CN=foo,DC=domainA"); 
string memberADsPath = @"LDAP://CN=bar,DC=domainB"; 
group.Invoke("Add", new Object[] {memberADsPath}); 
+0

Cela ne fonctionne pas pour moi, voir http://stackoverflow.com/questions/31984105/add-member-to-ad-group-from-a-trusted-domain. Peut-être que si les deux domaines sont gérés sur les mêmes DC (si c'est possible du tout), mais que mes domaines sont vraiment séparés, juste de confiance. Je dois élaborer une solution avec ForeighSecurityPrincipal. –

0

Vous devez créer un objet DirectoryEntry au Groupe. Ensuite, vous ajoutez le DN de l'utilisateur que vous voulez ajouter au groupe à l'attribut de membre du groupe. Par exemple:

DirectoryEntry group = new DirectoryEntry("LDAP://child.domain.com/cn=group,ou=sample,dc=child,dc=domain,dc=com"); 

string userDN = "cn=user,ou=sample,dc=domain,dc=com"; 

group.Properties["member"].Add(userDN); 
group.CommitChanges(); 

Vous avez probablement des problèmes pour vous connecter au groupe DirectoryEntry. Assurez-vous que vous pouvez lire les attributs de ce DE avant d'essayer d'ajouter un groupe pour vous assurer que votre liaison avec succès.

Questions connexes