C# Active Directory正在添加用户属性

C# Active Directory正在添加用户属性,c#,active-directory,directoryentry,C#,Active Directory,Directoryentry,我正在尝试向Active Directory中的用户条目添加属性/属性。使用以下代码更新属性值没有任何问题 string LDAPString = "LDAP://DC=oc,DC=edu"; DirectoryEntry ou = new DirectoryEntry(LDAPString, "fakeUsername", "password"); DirectorySearcher searcher = new DirectorySearcher(ou); searcher.Filter

我正在尝试向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()
时,它会抛出一个错误:

指定的目录服务属性或值不存在

ExtendedErrorMessage显示以下内容:

00000057:LDAPPER:DSID-0C090B8A,注释:属性错误 转换操作,数据0,v1db1


我有一种感觉,我遗漏了一些简单的东西,但我似乎无法找到它。

我不明白,通常属性/属性不会出现,除非它填充了值。正如marc_提到的,属性已经存在于模式中,您只需要用值填充它。

我不明白,通常属性/属性不会出现,除非它填充了值。正如marc_提到的,架构中已经存在该属性,您只需用一个值填充它。

Active Directory中是否定义了该新属性?你是否扩展了广告模式??您不能在AD中设置任意新属性……该新属性是否已在Active Directory中定义?你是否扩展了广告模式??你不能只在AD中设置任意的新属性……“没有填充值?”不是这样。真正的秘密是您需要更改模式。“没有填充值?”不是这样。真正的秘密是您需要更改模式。
string propertyName = "test";
string propertyValue = "testValue";
user.Properties[propertyName].Add(propertyValue);
user.CommitChanges();