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

StackOverflow https://stackoverflow.com/questions/3156551

Вопрос

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

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() Просто бросает а NotImplementedException.

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

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

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

Это было полезно?

Решение

Это работает для меня:

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();

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

Похоже, вы пропустили призвание «поставить» в своем примере - я думаю, поэтому вы видите NotImplementedException.

Другие советы

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

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

Это использует System.DirectoryServices.AccountManagement.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top