我使用
查询特定域中的所有安全组PrincipalSearchResult<Principal> results = ps.FindAll();
其中ps是PrincipalSearcher。
然后我需要迭代结果(首先将其转换为GroupPrincipal)并在notes字段中找到包含特定字符串的结果。
但AD中的Notes字段显然不是GroupPrincipal类中的公共字段,doh。 我做错了什么?
更新: 我放弃了这个。似乎没有办法访问那个讨厌的Notes字段。
答案 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:)