さて、今の私の問題は、ActiveDirectory内の別のグループにユーザーを追加するコードを書き込もうとしていることです。これが私たちが書いた解決策です。
主な方法の一部:
string newGroup = "TestDelete";
string userName = result.Properties["cn"][0].ToString();
string adduser = ad.AddToGroup(userName, newGroup);
Console.WriteLine(String.Format("{0} : {1}",userName, adduser));
別のクラスからこのメソッドを呼び出すもの:
public String AddToGroup(string userDn, string groupDn)
{
try
{
DirectoryEntry ldapConnection = new DirectoryEntry("LDAP://OU=" + groupDn + ",DC=blah,DC=blah,DC=blah");
ldapConnection.AuthenticationType = AuthenticationTypes.Secure;
string newUser = "CN=" + userDn + "CN=Members,DC=blah,DC=blah,DC=blah";
ldapConnection.Invoke("Add", new object[] { newUser });
ldapConnection.CommitChanges();
ldapConnection.Close();
return "Success";
}
catch (System.DirectoryServices.DirectoryServicesCOMException E)
{
Console.WriteLine("Exception caught:\n\n" + E.ToString());
}
}
例外を投げています
System.Runtime.InteropServices.COMException(0x80020006):不明な名前。(HRESULTからの例外:0x80020006(DISP_E_UNKNOWNNAME)) C:\ Users \ XXX \ Documents \のadjustUsers.Program.AddToGroup(String userDn、String groupDn)
のSystem.DirectoryServices.DirectoryEntry.InvokeSet(String propertyName、Object [] args)
Visual Studio 2010 \ Projects \ UserPruning \ AdjustUsers \ Program.cs:line 45
at UserPruning.MainProgram.Main(String [] args)in C:\ Users \ XXX \ Documents \ Visual Studio 2010 \ Projects \ UserPruning \ UserPruning\MainProgram。 cs:line 46
これは、私たちが見つけた限りでは、構文に問題があることを示しています。
46行目は
string adduser = ad.AddToGroup(userName,newGroup)
45行目は
ldapConnection.Invoke("Add", new object[] {newUser});
私たちは最後の日のためにこのコードを書き直そうとしてきましたが、まだ困惑しています。
ヘルプ?
ありがとう