Search code examples
c#localuser-managementusergroups

How to create a local user group (in C#)


I'm looking for a way how to programmatically create a local user group. I found plenty of examples on how to query and add users but nothing I can understand about how to create a new group.

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

This is what I've arrived at but I know it's wrong as CommitChanges() just throws a NotImplementedException.

I've been using this as a sample but I can't even get it to work (thanks MS):

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

Anyone have a code snippet I can use to create a new local group?


Solution

  • This works for me:

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

    Adapted from this article on users.

    It looks like you missed the Invoke "Put" in your example - I guess this is why you are seeing the NotImplementedException.