2008-11-24 5 views
2

Таким образом, моя цель - добавить пользователя из одного домена Active Directory в другую группу в отдельный домен Active Directory.Как добавить пользователя в другой домен Active Directory в C#?

Я хотел бы сделать это на C#. Я знаю, что есть пространство имен System.DirectoryServices с классами для связи с AD, но я не могу найти никакой информации о добавлении пользователей через домены.

В среде есть два контроллера домена с одним и тем же родительским лесом. Существует временное доверие между двумя доменами, назовем их доменами A и B.

Я могу добавить пользователя из B в доменную локальную или универсальную группу внутри домена A с помощью инструмента Active Directory.

Кто-нибудь знает, как я могу сделать это программно с помощью C#?

ответ

1

То, что сработало для меня, когда я написал код, чтобы сделать это несколько лет назад:

  1. Получить DirectoryEntry для группы, к которой вы хотите добавить элемент.
  2. Вызов вызова в группе DirectoryEntry передайте аргументы «Добавить» в качестве имени метода и ADsPath члена в массиве.

Некоторые примеры кода с верхней части моей головы:

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

Это не работает для меня, см. Http://stackoverflow.com/questions/31984105/add-member-to-ad-group-from-a-trusted-domain. Возможно, если эти два домена управляются на одних и тех же DC (если это вообще возможно), но мои домены действительно раздельные, просто доверенные. Мне нужно разработать решение с ForeighSecurityPrincipal. – 2015-08-14 11:37:58

0

Вы должны создать объект DirectoryEntry к группе. Затем вы добавляете DN от пользователя, которого хотите добавить в группу, к атрибуту member в группе. Например:

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

Возможно, у вас возникли проблемы с привязкой к группе DirectoryEntry. Убедитесь, что вы можете читать атрибуты с этого DE, прежде чем пытаться добавить группу, чтобы убедиться в успешной привязке.