将组添加到本地管理员

时间:2014-10-16 19:33:47

标签: c# active-directory console-application directoryservices

我正在尝试在本地管理员中添加现有组。组"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的所有用户和群组,我无法添加一个。有人可以告诉我,我做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要像这样调用AddGroup

  

AddGroup(Environment.MachineName,“WinNT://”+ Environment.MachineName +“/ Some Active Group”);