2012-01-03 6 views
0

私は外部ソースから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パスで宣言されています。

答えて

0

機能が確認されているにもかかわらず、私はまだ同じユーザーであるため、特定のテストが必要な理由は不明です。とにかく、ここに行く!

関連する問題