Veröffentlicht 17. Februar 200916 j Hallo, ich versuche mit folgendem Code user, die in einer RichTextBox stehen zu einer Gruppe hinzuzufügen. //Copy User to This Group private void button2_Click(object sender, EventArgs e) { string[] lines = richTextBox1.Lines; foreach (string str_User in lines) { //connect to AD DirectoryEntry dom = new DirectoryEntry("LDAP://xyz.org"); DirectorySearcher src = new DirectorySearcher(dom, "(objectCategory=group)"); src.Filter = "(&(objectCategory=group)(sAMAccountName=" + textBox2.Text + "))"; foreach (SearchResult res in src.FindAll()) { DirectoryEntry group = new DirectoryEntry(res.Path); if (!group.Properties["member"].Contains(str_User)) { group.Properties["member"].Add(str_User); group.CommitChanges(); } } } Allerdings kommt die Exception bei "group.CommitChanges();" Der Server kann die Anforderung nicht ausführen. (Ausnahme von HRESULT: 0x80072035) Verweigert der Server das bestätigen, oder wie soll ich es verstehen? Oder ist es ein Programmierfehler?
17. Februar 200916 j Autor Editieren war leider nicht möglich, hier der Code wie ich die Sachen in die RichTextbox schreibe: ArrayList GetADGroupUsers(string groupName) { SearchResult result; DirectoryEntry searchRoot = new DirectoryEntry("LDAP://xyz.org"); DirectorySearcher search = new DirectorySearcher(searchRoot); search.Filter = String.Format("(cn={0})", groupName); search.PropertiesToLoad.Add("member"); search.PropertiesToLoad.Add("samaccountname"); result = search.FindOne(); string memberList = ""; ArrayList userNames = new ArrayList(); if (result != null) { for (int counter = 0; counter < result.Properties["member"].Count; counter++) { memberList = (string)result.Properties["member"][counter]; int indexChar = memberList.IndexOf(","); string subString = memberList.Substring(0, indexChar); int indexChar2 = memberList.IndexOf("="); userNames.Add(subString.Substring(indexChar2 + 1, (subString.Length) - (indexChar2 + 1))); } } foreach (string User in userNames) { String username; username = User.ToString().Replace("\\", ""); System.DirectoryServices.DirectoryEntry entry1 = new System.DirectoryServices.DirectoryEntry( "LDAP://xyz.org "); System.DirectoryServices.DirectorySearcher search1 = new System.DirectoryServices.DirectorySearcher(entry1); //Search Filter = Exchange Mailbox search1.Filter = "(&(objectClass=user)" + "(sAMAccountName=" + username + "))"; // foreach (System.DirectoryServices.SearchResult userresult in search1.FindAll()) { richTextBox1.Text += userresult.GetDirectoryEntry().Properties["distinguishedName"].Value.ToString() + "\n"; } } return userNames; }
23. Februar 200916 j naja bin mir nicht ganz sicher aber ist der übergebene name auch dre login name? also DOMAIN\USER ? In einer anderen anwendung greife ich auf folgende paranmeter zurück res.Properties[ "samAccountName" ][ 0 ] res ist ein System.DirectoryServices.DirectorySearcher alternativ sind noch diese werte interresant Searcher.PropertiesToLoad.Add( "dn" ); Searcher.PropertiesToLoad.Add( "cn" ); Searcher.PropertiesToLoad.Add( "displayName" ); Searcher.PropertiesToLoad.Add( "sn" );
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.