是否可以在“按示例查询”中搜索Guid ?

本文关键字:按示例查询 搜索 Guid 查询 是否 | 更新日期: 2023-09-27 18:17:56

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

要做到这一点,我更愿意写一个查询示例来搜索与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字段。

这是可能的,还是有一些原因我不想这样做(像一个更好的选择)?

是否可以在“按示例查询”中搜索Guid ?

处理这个问题的方法是使用FindByIdentity():

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

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