我可以使用以下内容查询用户,但我想在搜索DN中添加额外的OU = Good。如果不对GC的完整路径进行硬编码,这是否可行?
Forest myForest = Forest.GetCurrentForest();
GlobalCatalog cat = myForest.FindGlobalCatalog();
DirectorySearcher srch = cat.GetDirectorySearcher();
srch.Filter = "(&(objectClass=user)(samaccountname=myuser))";
SearchResult result = srch.FindOne();
答案 0 :(得分:1)
您可能会尝试获取全局编录的DirectoryEntry
,然后在其.Children
媒体资源中搜索您要查找的OU,然后使用DirectoryEntry
作为搜索结果root - 像(未经测试,手头没有AD来测试):
Forest myForest = Forest.GetCurrentForest();
GlobalCatalog cat = myForest.FindGlobalCatalog();
DirectoryEntry deGlobal = cat.GetDirectoryEntry();
DirectoryEntry deYourOU = deGlobal.Children.Find("OU=Good");
DirectorySearcher srch = new DirectorySearcher(deYourOU);
当然,实际上,您需要在代码中添加一些错误检查(!= null
等等) - 但这将是获取OU的基本方式(我希望!)< / p>