私は外部ソースからADを更新するためにいくつかのコードをロールバックすることができました。しかし、私はそれがどのように動作するかについて少し混乱しています。 異なるOUにsAMAccount xxxxが存在する人がいます。 これで、特定のOUの情報を更新したいだけなので、LDAPパスに入れておきます。それでも、情報は異なるOUでも更新されているようですね。DirectoryServiceを使用してユーザーを更新する
可能でしょうか?それは、「Person」オブジェクトが1つしかないか、「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)
EDIT:それはすべてのOUの中にPersonオブジェクトを更新しました。したがって、PersonオブジェクトはAD全体で1つで同一であるため、特定のOUで無意味に更新しようとしています。また、「result.GetDirectoryEntry」は、自分が特定の目的でのみ動作していると思ったという事実を無視しますOUはLDAPパスで宣言されています。