Запись учетной записи 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;
}
}