以下のコードは、グループ内の私のユーザーを取得経由でActive Directoryグループにユーザー名を取得しますが、それは私は最初と最後の名前を返すようにしたい"CN=johnson\,Tom,OU=Users,OU=Main,DC=company,DC=com"
.NET
が返されます。どうすればこれを達成できますか?あなたが欲しい校長を持つまでgroup.Membersプロパティを通じて
PrincipalContext principalContext = new PrincipalContext(ContextType.Domain);
GroupPrincipal group = GroupPrincipal.FindByIdentity(principalContext, "GName");
検索:
DirectoryEntry ou = new DirectoryEntry();
DirectorySearcher src = new DirectorySearcher();
src.Filter = ("(&(objectClass=group)(CN=Gname))");
SearchResult res = src.FindOne();
if (res != null)
{
DirectoryEntry deGroup = new DirectoryEntry(res.Path);
PropertyCollection pcoll = deGroup.Properties;
foreach (object obj in deGroup.Properties["member"])
{
ListBox1.Items.Add(obj.ToString());
}
}
次は実際に答え、単なる警告ではありません://msdn.microsoft.com/en-us/library/system.directoryservices.directorysearcher.findall.aspx))を使用するか、Dispose呼び出しを使用してtry/finallyを呼び出します。 SearchResultCollectionsはガベージコレクションできません。私は何かを廃棄しなかったオンラインで見つかった例を使用した後、数日間メモリリークを捜した。 Active Directoryの検索に含まれるクラスを確認するには、MSのドキュメントを完全にチェックしてください。 –