我正在尝试在本地管理员中添加现有组。组"ABC\Some Active Group"
存在。我可以通过Windows GUI添加它,但我需要通过代码添加它。这是我到目前为止所尝试的:
public static bool AddGroup(string machineName, string groupName)
{
bool ifSuccessful = false;
try
{
DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + machineName);
DirectoryEntry admGroup = localMachine.Children.Find("administrators", "group");
//admGroup.Children.Add(groupName, "Group");
admGroup.Invoke("Add", groupName);
admGroup.CommitChanges();
ifSuccessful = true;
}
catch (Exception ex)
{
ifSuccessful = false;
//logging
Console.WriteLine(machineName + " ----------" + ex.Message);
}
return ifSuccessful;
}
我称之为:
AddGroup(Environment.MachineName, @"ABC\Some Active Group");
我得到了异常,(它是一个内部异常)
传递了无效的目录路径名
我也尝试过添加它:
admGroup.Children.Add(groupName, "Group");
但后来我得到了例外:
位于路径的Active Directory对象 WinNT:// ABC / MachineName / Administrators不是容器
我已经能够成功获得admGroup
的所有用户和群组,我无法添加一个。有人可以告诉我,我做错了什么?
答案 0 :(得分:1)
您需要像这样调用AddGroup
AddGroup(Environment.MachineName,“WinNT://”+ Environment.MachineName +“/ Some Active Group”);