Таким образом, мне удалось получить некоторый код для обновления AD из внешних источников.Тем не менее, я немного озадачен тем, как это работает.У меня есть человек с sAMAccount xxxx, существующий в разных подразделениях.Теперь я хочу обновить информацию только в определенном подразделении, поэтому я добавил это в свой путь LDAP.Тем не менее, кажется, что информация также обновлялась в разных подразделениях?
Возможно ли это?Это потому, что есть только один объект «Person», или «GetDirectoryEntry ()» не помещает меня туда, где я думал в дереве?Или ... я только представляю, и странные вещи, которые я вижу, происходят из-за чего-то другого.
Некоторый код
DirectoryEntry entry = new DirectoryEntry(LDAP://my.path/ou=myou, dc=my, dc=path);
entry.Username = myUser
entry.Password = myPass
DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = @"(&(objectClass=Person)(SamAccountname=" + person.id + "))";
SearchResult result = searcher.FindOne();
try
{
DirectoryEntry user = result.GetDirectoryEntry();
user.Properties["displayName"].Value = person.DisplayName;
user.Properties["givenName"].Value = person.Firstname;
user.CommitChanges();
user.Close();
}
catch (DirectoryServicesCOMException ex)
РЕДАКТИРОВАТЬ: Он обновил объект Person во всех подразделениях.Таким образом, либо объект Person является одним и тем же во всей AD, что делает мою попытку обновить их только в определенном OU бессмысленным, либо «result.GetDirectoryEntry» игнорирует тот факт, что я думал, что работал только в моем конкретномOU объявлено в моем пути LDAP.