Estoy usando C# para buscar el objectGuid
de mi computadora local al consultar Active Directory. Para ello, actualmente estoy usando un DirectorySearcher
, pasándole un camino (hardcoded) como la raíz de búsqueda, y luego filtrar por el nombre del equipo:¿Es posible encontrar la computadora local en AD sin hardcoding de su dominio?
string adRootPath = @"LDAP://OU=foo,DC=bar,DC=baz,DC=com";
DirectoryEntry adRoot = new DirectoryEntry(adRootPath);
DirectorySearcher searcher = new DirectorySearcher(adRoot);
searcher.Filter = @"(&(objectCategory=Computer)(CN=" + Environment.MachineName + "))";
no quiero a codificar la raíz de búsqueda, y Me preguntaba si hay una mejor manera. Pensé simplemente en usar una raíz de búsqueda vacía, pero me preocupaba que los nombres de las computadoras no siempre fueran únicos en diferentes dominios.
¿Hay una manera mejor?
Gracias. ¿Se garantizará que FindAll() encontrará solo un resultado (que es la computadora local), incluso si hay nombres de computadora duplicados en diferentes OU? – Eric
@Eric: no, 'FindAll()' encontrará ** todas ** las ocurrencias que coincidan con los criterios especificados (como su nombre lo indica). Luego puede inspeccionar, p. la propiedad 'DistinguishedName' en' ComputerPrincipal' para ver en qué árbol AD vive esa computadora. También hay un método '.FindOne()' que devuelve la primera coincidencia, pero es posible que no sepa que hay otras computadoras que coinciden con sus criterios. –
Ah, ya veo. Bueno, en realidad estoy tratando de encontrar la información AD de la computadora * local *. Parece que con este método, no tendría forma de distinguir qué computadora es la computadora local en mis resultados. – Eric