J'ai la méthode suivante utilisée pour rechercher un groupe d'utilisateurs soit sur l'ordinateur local (fait en premier) ou dans la forêt actuelle.Services d'annuaire, Rechercher tous les fournisseurs disponibles
public string FindUserGroup(string group)
{
//Search local computer
using (DirectorySearcher searcher = new DirectorySearcher(new DirectoryEntry()))
{
searcher.Filter = "(&(objectClass=group)(|(cn=" + group + ")(dn=" + group + ")))";
SearchResult result = searcher.FindOne();
if (result != null)
return TranslateDirectoryEntryPath(result.GetDirectoryEntry().Path);
}
//Search current forest
Forest forest = Forest.GetCurrentForest();
foreach (Domain domain1 in forest.Domains)
{
using (DirectorySearcher searcher = new DirectorySearcher(domain1.GetDirectoryEntry()))
{
searcher.Filter = "(&(objectClass=group)(|(cn=" + group + ")(dn=" + group + ")))";
SearchResult result = searcher.FindOne();
if (result != null)
return TranslateDirectoryEntryPath(result.GetDirectoryEntry().Path);
}
}
return string.Empty;
}
Mon problème est que nous avons à titre d'exemple dire « domain.local » et « mydomain.local », et mon login actuel est lié à « domain.local », puis en utilisant ci-dessous ne sera pas en mesure pour trouver quelque chose dans "mydomain.local", même si je parviens à travers l'interface utilisateur de Windows.
Comment puis-je rechercher tous les fournisseurs visibles du point de vue de mon ordinateur lorsque je ne les connais pas tous? Est-ce que je dois vraiment faire le Registre Travailler moi-même?
Edit:
Une différence dans les 2 domaines est le « niveau », ils sont quand je dans un dialogue Explorateur d'objets CHOISIT « Lieux », il mises en page:
- Computer
- Direction Tout
- domain.local
- mydomain.local
Ainsi excists « mydomain.local » en dehors de ce qui est appelé « répertoire entier », mais mon ordinateur peut le localiser, si cela fait une différence?
Vous avez juste besoin de faire une recherche sur votre ordinateur local, puis de faire une recherche sur le catalogue Gobal. Si votre forêt n'a pas de catalogue global, oui, vous devez effectuer une recherche dans chacun des domaines un par un. –
@Harvey Kwok: Et cela ne serait accessible que par le Registre? ... puisque puisque la "Boîte de dialogue du navigateur d'objets" répertorie le domaine, l'ordinateur en a une certaine connaissance. Et je semble me souvenir d'avoir trouvé quelque chose à ce sujet dans le registre, mais j'espérais ne pas avoir à le découvrir. – Jens
Vous vouliez dire une liste complète des domaines? Cela provient généralement d'Active Directory. Active Directory stocke quel domaine fait confiance à quel domaine. Vérifiez le conteneur CN = System et recherchez tous les objets trustedDomain. –