2012-08-06 5 views
4

Dans mon code C# je veux ajouter un utilisateur au groupe "Administrateurs". J'ai entendu 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.Comment puis-je localiser un groupe local de manière indépendante des paramètres régionaux?

Mon code passe une chaîne codée en dur lorsque vous effectuez la recherche:

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

et il cassera si le groupe a fait un autre nom. J'ai trouvé this MSDN article with well-known SIDs écrou je ne sais 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?

Répondre

4

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"); 
string name = sid.Translate(typeof(NTAccount)).Value; 
Console.WriteLine(name); 

le résultat est

"BUILTIN\Administrators" 

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

Questions connexes