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 :
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 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 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
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); } }
Mais pas le supprimer du 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 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); } }
J'ai testé pleins d'astuces, de codes trouvés grâce à l'ami de tous, mais la console me renvoie constamment des erreurs :
Il spécifie sans cesse la méthode .Invoke("Remove", new object[] { nomDuUser }) ou .Properties["Members"].Remove(directoryEntry) suivant la solution proposée.Le nom du groupe est introuvable
Alors qu'Invoke est utilisée dans l'ajout...
Pourquoi je n'arrive pas à le supprimer ?
Voici mon main
Merci d'avance,
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(); }
shini86161.
Partager