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 :

Supprimer un utilisateur local d'un groupe WinNT


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 58
    Par défaut Supprimer un utilisateur local d'un groupe WinNT
    Bonjour à tous !

    Le titre le dit bien, je cherche à supprimer un utilisateur local Windows d'un groupe WinNT (Utilisateurs, Administrateurs, etc.) depuis des heures.

    J'ai trouvé comment créer un utilisateur :

    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
    public static void AddUser(string userDn_)
            {
                try
                {
                    DirectoryEntry newUser = _ad.Children.Add(userDn_, "user");
                    newUser.Invoke("SetPassword", new object[] {"abc123$$"});
                    newUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
                    newUser.CommitChanges();
                    newUser.Close();
     
                    Console.WriteLine("Création du compte réussie");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
    Comment l'ajouter à un groupe :

    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
    public static void AddUserToGroup (string groupDn_, string userDn_)
            {
                try
                {
                    String userPath = String.Format("WinNT://{0}/{1},user", Environment.MachineName, userDn_);
                    DirectoryEntry grp = _ad.Children.Find(groupDn_, "group");
                    if (grp != null) 
                        grp.Invoke("Add", new object[] { userPath });
                    grp.CommitChanges();
                    grp.Close();
     
                    Console.WriteLine("Ajout du compte au groupe {0} réussi", groupDn_);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
    Comment le supprimer complètement :

    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
    public static void DeleteUser (string userDn_)
            {
                try
                {
                    DirectoryEntry localDirectory = new DirectoryEntry("WinNT://" + Environment.MachineName.ToString());
                    DirectoryEntries users = localDirectory.Children;
                    DirectoryEntry user = users.Find(userDn_);
                    users.Remove(user);
                    Console.WriteLine("Suppression du compte {0} réussie", userDn_);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
    Mais pas le supprimer du groupe.

    J'ai testé pleins d'astuces, de codes trouvés grâce à l'ami de tous, mais la console me renvoie constamment des erreurs :
    Le nom du groupe est introuvable
    Il spécifie sans cesse la méthode .Invoke("Remove", new object[] { nomDuUser }) ou .Properties["Members"].Remove(directoryEntry) suivant la solution proposée.

    Alors qu'Invoke est utilisée dans l'ajout...

    Pourquoi je n'arrive pas à le supprimer ?

    Voici mon main

    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
    public static void Main (string [] args_)
            {
                Console.WriteLine("\tCREATION - Rincevent");
                AddUser("Rincevent");
     
                Console.WriteLine("\n\tAJOUT - Groupe Utilisateurs");
                AddUserToGroup("Utilisateurs", "Rincevent");
     
                Console.WriteLine("\n\tAJOUT - Groupe Administrateurs");
                AddUserToGroup("Administrateurs", "Rincevent");
     
                //Console.WriteLine("\n\tSUPPRESSION - Groupe Utilisateurs");
                //RemoveUserToGroup("Utilisateurs ", "Rincevent");
     
                Console.WriteLine("\n\tSUPPRESSION - Groupe Administrateurs");
                RemoveUserToGroup("Administrateurs ", "Rincevent");
     
                Console.WriteLine("\n\tSUPPRESSION COMPTE");
                DeleteUser("Rincevent");
     
                System.Console.WriteLine("Press any key to exit.");
                System.Console.ReadKey();
     
            }
    Merci d'avance,

    shini86161.

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 58
    Par défaut
    Je viens de trouver une erreur idiote... Un espace après Utilisateurs et Administrateurs, dans la méthode Remove du main.

    Voilà pourquoi le nom du groupe était introuvable.

    Mais une autre erreur apparaît. Voilà le code de la méthode RemoveUserToGroup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String userPath = String.Format("WinNT://./" + userDn_ + ",user");
    DirectoryEntry userEntry = new DirectoryEntry(userPath);
    String groupPath = String.Format("WinNT://./" + groupDn_ + ",group");
    DirectoryEntry groupEntry = new DirectoryEntry(groupPath);
     
    groupEntry.Properties["Members"].Remove(userEntry);
     
    groupEntry.CommitChanges();
    L'erreur se situe au niveau de groupEntry.Properties["Members"].Remove(userEntry.Path);, encore.
    Et l'erreur renvoyée est celle-ci :
    Impossible de supprimer l'élément spécifié car il est introuvable dans la collection.
    I need your help !

  3. #3
    Membre confirmé Avatar de bobjoumi
    Profil pro
    Inscrit en
    Février 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2009
    Messages : 94
    Par défaut
    Tu à surement du aller voir ça mais au cas où...

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 58
    Par défaut
    Citation Envoyé par bobjoumi Voir le message
    Tu à surement du aller voir ça mais au cas où...
    Merci bobjoumi !
    Oui, en effet, je suis allé voir ce site, très bien fait !

    J'ai relancé le code ce matin, et pour une raison inconnue, ça tourne !
    O.o

    J'ai pas compris, mais ca marche !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XP home] Utilisateur plus dans aucun groupe
    Par Médinoc dans le forum Windows XP
    Réponses: 8
    Dernier message: 13/05/2008, 08h26
  2. Réponses: 1
    Dernier message: 24/07/2007, 12h02
  3. Supprimer un utilisateur d'un groupe
    Par thargos dans le forum Sécurité
    Réponses: 3
    Dernier message: 18/10/2006, 12h06
  4. Réponses: 1
    Dernier message: 19/01/2006, 16h23
  5. [xp] compte passport et compte utilisateur local
    Par Eusebius dans le forum Windows XP
    Réponses: 5
    Dernier message: 06/07/2005, 13h59

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