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. :aie:
J'ai trouvé comment créer un utilisateur :
Code:
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:
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:
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. :cry:
J'ai testé pleins d'astuces, de codes trouvés grâce à l'ami de tous, mais la console me renvoie constamment des erreurs :
Citation:
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...:triste:
Pourquoi je n'arrive pas à le supprimer ?
Voici mon main
Code:
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.