IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Langue du système et groupe administrateurs, besoin d'infos


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par défaut Langue du système et groupe administrateurs, besoin d'infos
    Bonjour à tous,

    L'appli que je développe en ce moment ajoute un utilisateur windows au système. Au cours de mes tests, j'ai fait une désagréable découverte...
    En effet, mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    grp = AD.Children.Find("Administrators", "group");
    if (grp != null) { grp.Invoke("Add", new object[] { NewUser.Path.ToString() }); }
    Qui fonctionne sur la plateforme de test, ne fonctionnait plus en déploiement sur les pcs du réseaux. Il me renvoyait une gentille exception comme quoi le groupe n'était pas trouvé.

    Ainsi je découvris... que le nom du groupe administrateur sous windows XP, dépend... de la langue d'installation du système!!!!!


    Et oui donc ce groupe s'appelle "Administrateurs" pour les versions françaises, "Administrators" pour les versions anglaises ect...

    Je suppose qu'il y a une raison pour ça, même si je trouve que c'est... Il me faut contourner celà.

    Dans ce but, je cherche la liste complète des différentes dénominations du groupe ainsi que les langues qui vont avec.
    Je cherche aussi un moyen pour pouvoir récupérer la langue du système (avec C#).
    Ou idéalement, quelque chose dans .Net qui permette de désigner le group administrateur sans être obligé de mettre le "String qui va bien". Un peu genre System.LePackage.KiMinteresse.AdminGroupName...

    Merci pour votre aide

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 101
    Par défaut
    Hello,

    Effectue ta recherche non pas sur le nom, mais sur le SID, celui du groupe admin étant constant (S-1-5-domain-512 -> http://support.microsoft.com/kb/243330)

    En espérant que ça peut aider...

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par défaut
    ça à l'air super ce truc...
    sauf que tout le monde cherche à récupérer le SID d'un utilisateur, alors que moi, je chercherai le nom du groupe à partir du SID....
    T'aurais une idée de comment faire ça?

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 101
    Par défaut
    Arf, désolé, j'ai pas lu le bon groupe, le SID à chercher est S-1-5-32-544

    De manière générale, les SID (attribut objectSID) sont des valeurs hexa stockée en big endian (bit de poids fort à droite... je crois que c'est big endian ). Donc, le SID ci-dessus se code en hexa :

    01 02 00 00 00 00 00 05 20 00 00 00 20 02 00 00

    (puisque 20 02 00 00 = 00 00 02 20 = 0x220 = 544) La recherche s'effectue donc avec le filtre LDAP suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (objectSID = \01 \02 \00 \00 \00 \00 \00 \05 \20 \00 \00 \00 \20 \02 \00 \00)
    Cette recherche te renverra toujours le groupe Administrator...

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par défaut
    Euh....
    là, j'avoue... tu m'as perdu...
    Déjà je comprends peu ( c'est pas que c'est pas clair, c'est que ça dépasse mes connaissances de ce niveau), mais alors pour traduire ça en code c#...

    tu n'aurais pas un exemple? ou un lien vers un exemple stp?

  6. #6
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 101
    Par défaut
    Here you go

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    const DOMAIN_AND_PORT = "my.domain.com:389";
    const OU = "OU=myGroups,DC=my,DC=domain,DC=com";
     
    // Definit la racine de ton AD
    string root = "LDAP://"+DOMAIN_AND_PORT+"/"+OU;
     
    // Instancie la directoryEntry racine
    rootEntry = new DirectoryEntry(root);
     
    // Definit un contexte de recherche avec la rootEntry comme baseDn
    DirectorySearcher rootSearcher = new DirectorySearcher(rootEntry);
     
    // Definit le filtre LDAP qui permet de retrouver le groupe Admin qui se trouve dans [OU]
    rootSearcher.Filter = "(objectSID = \01 \02 \00 \00 \00 \00 \00 \05 \20 \00 \00 \00 \20 \02 \00 \00)";
     
    // Lance la recherche
    SearchResult sr = rootSearcher.FindOne();
     
    if(sr != null){
      // le groupe a été trouvé, on l'instancie
      DirectoryEntry e = new DirectoryEntry();
      e.Path = sr.Path;
     
      // on met à jour l'attribut member du groupe en rajoutant le DN du user
      e.Properties["member"].Add(NewUser.Path.ToString());
     
      // Surtout ne pas oublier le commit des modifications
      e.CommitChanges();
    }

Discussions similaires

  1. Utilisateur de domaine et Groupe Administrateur
    Par MrEddy dans le forum Administration
    Réponses: 2
    Dernier message: 15/08/2007, 17h47
  2. Connaitre la langue du système d'exploitation
    Par poussin_44 dans le forum VB.NET
    Réponses: 4
    Dernier message: 30/07/2007, 16h14
  3. Réponses: 2
    Dernier message: 03/05/2007, 20h21
  4. Changer la langue du système !
    Par _shuriken_ dans le forum Windows XP
    Réponses: 8
    Dernier message: 14/11/2006, 11h22
  5. Enlever le User Administrateur du Groupe Administrateurs
    Par mouloudéen dans le forum Sécurité
    Réponses: 7
    Dernier message: 28/06/2006, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo