c # - Sådan får du alle grupper på en lokal maskine med administreret kode (ingen P/Invoke)

Indlæg af Hanne Mølgaard Plasc

Problem



Så jeg kiggede på SO for svaret på dette spørgsmål, og det syntes som alt, hvad jeg kom på tværs af, var for Active Directory eller noget lignende. Der var ingen eksempler herpå for den lokale maskine.


Dybest set er målet her at få alle brugergrupperne i systemet. Det samme du ser, hvis du starter Computer Management, gå til Systemværktøjer> Lokale brugere og Grupper> Grupper

Bedste reference


using (PrincipalContext context = new PrincipalContext(ContextType.Machine))
{
    using (GroupPrincipal groupPrincipal = new GroupPrincipal(context))
    {
        groupPrincipal.Name = "*";

        PrincipalSearcher principalSearcher = new PrincipalSearcher();
        principalSearcher.QueryFilter = groupPrincipal;
        PrincipalSearchResult<Principal> groupList = principalSearcher.FindAll();

        foreach (Principal group in groupList)
        {
            // Do something with info
        }
   }
}