Как создать группу локального пользователя (в C#)

Я ищу путь, как программно создать группу локального пользователя. Я нашел много примеров о том, как запросить и добавить пользователей, но ничто, что я могу понять о том, как создать новую группу.

var dirEntry = new DirectoryEntry(
                       "WinNT://" + Environment.MachineName + ",computer");

/* Code to test if the group already exists */            

if (!found)
{
    DirectoryEntry grp = dirEntry.Children.Add(groupName, "Group");
    dirEntry.CommitChanges();
}

Это - то, во что я прибыл, но я знаю, что это неправильно как CommitChanges() просто броски a NotImplementedException.

Я использовал это в качестве образца, но я не могу даже добраться, это для работы (благодарит MS):

http://msdn.microsoft.com/en-us/library/ms815734

У кого-либо есть фрагмент кода, который я могу использовать для создания новой локальной группы?

10
задан stakx supports GoFundMonica 5 February 2011 в 15:56
поделиться

2 ответа

У меня работает:

var ad = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry newGroup = ad.Children.Add("TestGroup1", "group");
newGroup.Invoke("Put", new object[] { "Description", "Test Group from .NET" });
newGroup.CommitChanges();

Адаптировано из этой статьи о пользователях.

Похоже, вы пропустили Invoke "Put" в своем примере - я думаю, поэтому вы видите NotImplementedException.

10
ответ дан 3 December 2019 в 21:19
поделиться

Вы можете попробовать следующее (сам не пробовал):

PrincipalContext context = new PrincipalContext(ContextType.Machine);
GroupPrincipal group = new GroupPrincipal(context);
group.Name = model.Name;
group.Save();

Здесь используется System.DirectoryServices.AccountManagement .

7
ответ дан 3 December 2019 в 21:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: