Можно ли искать Guid в «Query By Example»? - PullRequest
1 голос
/ 16 декабря 2011

Мне нужно выяснить, существует ли компьютер с данным Guid внутри данного подразделения.

Для этого я бы предпочел написать Запрос по примеру , который ищетдля компьютера, соответствующего 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 не содержит поля * 1012. *.

Возможно ли это, или есть какая-то причина, по которой я бы не хотел этого делать (как лучшая альтернатива)?

Ответы [ 2 ]

3 голосов
/ 16 декабря 2011

Похоже, способ справиться с этим - использовать FindByIdentity():

PrincipalContext context = new PrincipalContext(ContextType.Domain, domain, container);
ComputerPrincipal computer = ComputerPrincipal.FindByIdentity(context, guidToMatch);
0 голосов
/ 17 декабря 2011

Другой способ справиться с этим - выполнить базовый поиск формы. По сути, это позволит вам искать объект по objectGUID и возвращать совпадение, будь то компьютер или какой-либо другой тип объекта. Затем вы можете осмотреть объект и посмотреть, имеет ли он в виду ...

...