Liste De Tous Les Groupes Active Directory
Le code suivant répertorie certains, mais pas tous, des Groupes Active Directory. Pourquoi?
Je suis en train de la liste de tous les groupes de sécurité, les groupes de distribution, les groupes d'ordinateurs etc. Ai-je précisé le mauvais objectClass
?
private static void ListGroups()
{
DirectoryEntry objADAM = default(DirectoryEntry);
DirectoryEntry objGroupEntry = default(DirectoryEntry);
DirectorySearcher objSearchADAM = default(DirectorySearcher);
SearchResultCollection objSearchResults = default(SearchResultCollection);
SearchResult myResult=null;
objADAM = new DirectoryEntry(LDAP);
objADAM.RefreshCache();
objSearchADAM = new DirectorySearcher(objADAM);
objSearchADAM.Filter = "(&(objectClass=group))";
objSearchADAM.SearchScope = SearchScope.Subtree;
objSearchResults = objSearchADAM.FindAll();
//Enumerate groups
try
{
fileGroups.AutoFlush = true;
if (objSearchResults.Count != 0)
{
foreach (SearchResult objResult in objSearchResults)
{
myResult = objResult;
objGroupEntry = objResult.GetDirectoryEntry();
Console.WriteLine(objGroupEntry.Name);
fileGroups.WriteLine(objGroupEntry.Name.Substring(3));
}
}
else
{
throw new Exception("No groups found");
}
}
catch (PrincipalException e)
{
fileErrorLog.AutoFlush = true;
fileErrorLog.WriteLine(e.Message + " " + myResult.Path);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
Vous devez vous connecter pour publier un commentaire.
Si vous êtes sur .NET 3.5 ou ultérieure, vous pouvez utiliser un
PrincipalSearcher
et une "requête-par-exemple" principal de faire votre recherche:Si vous ne l'avez pas déjà absolument lire l'article MSDN La gestion de Répertoire les entités de Sécurité dans le .NET Framework 3.5 qui montre bien comment l'utiliser au mieux les nouvelles fonctionnalités de
System.DirectoryServices.AccountManagement
PrincipalContext
,GroupPrincipal
, etPrincipalSearcher
en utilisant des blocs car ils sont jetables.Essayer filtre "(objectcategory=groupe)"
Trouvé la solution ici
J'ai essayé et cela a fonctionné
Pour récupérer un ensemble de résultats est de plus de 1 000 articles, vous devez définir SizeLimit à sa valeur par défaut (zéro) et set PageSize à une valeur qui est inférieure ou égale à 1000.
objSearchADAM.PageSize = 1000;
vous pouvez obtenir tous les détails du groupe d'annonces par le powershell ci-dessous et si vous voulez de Nom particulier à l'encontre d'un Groupe d'ANNONCES, puis le filtre d'écriture au lieu de *
Get-ADGroup -Filtre * propriétés * | Export-csv c:\csv\new.csv