如何访问GroupPrincipal对象上的notes字段

时间:2008-11-27 13:52:35

标签: c# active-directory

我使用

查询特定域中的所有安全组
PrincipalSearchResult<Principal> results = ps.FindAll();

其中ps是PrincipalSearcher。

然后我需要迭代结果(首先将其转换为GroupPrincipal)并在notes字段中找到包含特定字符串的结果。

但AD中的Notes字段显然不是GroupPrincipal类中的公共字段,doh。 我做错了什么?

更新: 我放弃了这个。似乎没有办法访问那个讨厌的Notes字段。

4 个答案:

答案 0 :(得分:7)

您可以访问目录条目的“notes”字段:

// Get the underlying directory entry from the principal
System.DirectoryServices.DirectoryEntry UnderlyingDirectoryObject =
     PrincipalInstance.GetUnderlyingObject() as System.DirectoryServices.DirectoryEntry;

// Read the content of the 'notes' property (It's actually called info in the AD schema)
string NotesPropertyContent = UnderlyingDirectoryObject.Properties["info"].Value;

// Set the content of the 'notes' field (It's actually called info in the AD schema)
UnderlyingDirectoryObject.Properties["info"].Value = "Some Text"

// Commit changes to the directory entry
UserDirectoryEntry.CommitChanges();

进行了一些狩猎 - 我曾经认为音符属性确实被称为'音符',ADSIEdit来救援!

答案 1 :(得分:1)

我一次又一次地回到这个挑战,但现在我终于放弃了。确实看起来该物业无法进入。

答案 2 :(得分:1)

对于使用“info”属性的任何人:请注意,如果使用空字符串或空值,它将引发异常。

答案 3 :(得分:1)

我能够改变那个领域。

entryToUpdate.Properties [ “信息”]清除(); entryToUpdate.Properties [“info”]。添加(“你想要的一些文字”);

非常感谢Brad:)