1

我需要查找给Guid定 OU 中是否存在具有给定值的计算机。

为此,我更愿意编写一个Query By Example来搜索匹配 a 的计算机Guid。例如:

PrincipalContext context = new PrincipalContext(ContextType.Domain, domain, container);
ComputerPrincipal computer = new ComputerPrincipal(context);

computer.Guid = guidToMatch;

PrincipalSearcher searcher = new PrincipalSearcher(computer);
// Get the computer if it exists...

当然这不起作用,因为该ComputerPrincipal.Guid字段是只读的。此外,ComputerPrincipal.AdvancedSearchFilter不包含Guid字段。

这是可能的,还是有某种原因我不想这样做(比如更好的选择)?

4

2 回答 2

3

看起来处理这个问题的方法是使用FindByIdentity()

PrincipalContext context = new PrincipalContext(ContextType.Domain, domain, container);
ComputerPrincipal computer = ComputerPrincipal.FindByIdentity(context, guidToMatch);
于 2011-12-15T23:32:16.947 回答
0

处理此问题的另一种方法是对表单进行基本搜索。这基本上允许您通过 objectGUID 搜索对象并取回匹配项,无论是计算机还是其他类型的对象。然后,您可以检查该对象,看看它是否是您的想法...

于 2011-12-17T06:21:29.967 回答