Comment localiser un groupe local de manière indépendante des parameters régionaux?

Dans mon code C #, je veux append un utilisateur au groupe “Administrators”. J’ai entendu dire que sur la version allemande de Windows, ce groupe s’appellerait “Administratoren” et peut-être sur d’autres versions locales, il aurait d’autres noms.

Mon code transmet une chaîne codée en dur lors de la recherche:

var context = new PrincipalContext( ContextType.Machine ); var group = GroupPrincipal.FindByIdentity( context, "Administrators" ); 

et donc ça va casser si le groupe a un autre nom. J’ai trouvé cet article MSDN avec des SIDs bien connus Je ne comprends pas comment les utiliser pour résoudre mon problème.

Comment localiser un groupe local indépendant de la langue du système d’exploitation Windows?

Je ne sais pas si cela pourrait être utile.

 using System.Security; using System.Security.Principal; ...... SecurityIdentifier sid = new SecurityIdentifier("S-1-5-32-544"); ssortingng name = sid.Translate(typeof(NTAccount)).Value; Console.WriteLine(name); 

le résultat est

 "BUILTIN\Administrators" 

J’ai pris le SID de cette page où vous pouvez trouver d’autres valeurs à expérimenter.