2011-12-15 1 views
1

해당 OU 내에 주어진 Guid 컴퓨터가 있는지 찾아야합니다."Query By Example"에서 Guid를 검색 할 수 있습니까?

이 작업을 수행하려면 Guid과 일치하는 컴퓨터를 검색하는 Query By Example을 쓰는 것이 좋습니다. 예를 들면 다음과 같습니다 ComputerPrincipal.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.AdvancedSearchFilter에는 Guid 필드가 없습니다.

더 나은 대안과 같이 어쨌든 이것을하고 싶지 않은 이유가 있습니까?

답변

2

이 처리하는 방법처럼 보이는 것은 FindByIdentity()을 사용하는 것입니다

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

이 처리하는 또 다른 방법은 형식의 기본 검색을 수행하는 것입니다. 이것은 본질적으로 objectGUID로 객체를 검색하고 컴퓨터 또는 다른 유형의 객체가 될 수 있습니다. 그런 다음 개체를 검사하여 마음에 들었는지 확인할 수 있습니다.