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?
Create a group. Click Start > Control Panel > Administrative Tools > Computer Management. In the Computer Management window, expand System Tools > Local Users and Groups > Groups. Click Action > New Group.
You may try the following (haven't tried it myself):
PrincipalContext context = new PrincipalContext(ContextType.Machine);
GroupPrincipal group = new GroupPrincipal(context);
group.Name = model.Name;
group.Save();
This uses System.DirectoryServices.AccountManagement
.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With