2012-08-28 202 views
2

我正在嘗試向Active Directory中的用戶條目添加屬性/屬性。使用以下代碼更新屬性值時沒有任何問題。Active Directory添加用戶屬性

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()它拋出一個錯誤:

The specified directory service attribute or value does not exist.

的ExtendedErrorMessage說以下內容:

00000057: LdapErr: DSID-0C090B8A, comment: Error in attribute conversion operation, data 0, v1db1

string propertyName = "test"; 
string propertyValue = "testValue"; 
user.Properties[propertyName].Add(propertyValue); 
user.CommitChanges(); 

我有一個感覺我缺少一些簡單的東西,但我似乎無法弄清楚。

+3

在Active Directory中定義了新屬性嗎?你擴展了AD模式嗎?你不能在AD中設置任意的新屬性...... –

回答

0

我不明白,通常一個屬性/屬性不會出現,除非它填充了一個值。正如marc_s所暗示的屬性已經存在於模式中,您只需使用值填充它。

相關問題