Запись учетной записи Windows в группу - C#
Формулировка задачи:
Добрый день! Интересует возможность решения следующего кода:
Как вписать вместо "Administrators" значения SID, чтобы можно было создавать пользователей вне зависимоти от языка системы.
Спасибо!
Если поможет, код создания пользователя и присваивания ему группы.
DirectoryEntry grp; grp = AD.Children.Find("Administrators", "group"); if (grp != null) { grp.Invoke("Add", new object[] { NewUser.Path.ToString() }); } Console.WriteLine("Account created successfully");
DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); DirectoryEntry NewUser = AD.Children.Add(users + i, "user"); NewUser.Invoke("SetPassword", new object[] { "password" }); NewUser.Invoke("Put", new object[] { "Description", "User program Soft" }); NewUser.Properties["userFlags"].Value = Convert.ToInt32(NewUser.Properties["userFlags"].Value) | 0x0040 | 0x10000; NewUser.CommitChanges(); DirectoryEntry grp; grp = AD.Children.Find("Administrators", "group"); if (grp != null) { grp.Invoke("Add", new object[] { NewUser.Path.ToString() }); } Console.WriteLine("Account " + users + i + " created successfully"); } catch (Exception ex) { Console.Write(ex.Message); Console.WriteLine(users + i); }
Решение задачи: «Запись учетной записи Windows в группу»
textual
Листинг программы
static string GetAdministratorsGroupName() { return new SecurityIdentifier("S-1-5-32-544").Translate(typeof(NTAccount)).Value; } static string GetAdministratorsGroupName() { using (var ctx = new PrincipalContext(ContextType.Machine)) using (var grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Sid, "S-1-5-32-544")) { return grp.Name; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д