ActiveDirectoryのユーザーエントリにプロパティ/属性を追加しようとしています。次のコードを使用してプロパティ値を更新するのに問題はありません。
string LDAPString = "LDAP://DC=oc,DC=edu";
DirectoryEntry ou = new DirectoryEntry(LDAPString, "fakeUsername", "password");
DirectorySearcher searcher = new DirectorySearcher(ou);
searcher.Filter = "sAMAccountName=" + username;
SearchResult result = searcher.FindOne();
DirectoryEntry user = new DirectoryEntry(result.Path, "fakeUsername", "password");
user.Properties[propertyName].Value = propertyValue;
user.CommitChanges();
user.Dispose();
ただし、新しいアイテムを追加して呼び出すCommitChanges()
と、エラーがスローされます。
指定されたディレクトリサービスの属性または値が存在しません。
ExtendedErrorMessageは次のように述べています。
00000057:LdapErr:DSID-0C090B8A、コメント:属性変換操作のエラー、データ0、v1db1
string propertyName = "test";
string propertyValue = "testValue";
user.Properties[propertyName].Add(propertyValue);
user.CommitChanges();
シンプルなものが欠けているような気がしますが、理解できないようです。