У нас есть много доменов в том же лесу (например, sw.main.company.com, nw.main.company.com, main.company.com), и у меня есть контроль над OU в sw.main.company.com, где я создал универсальную группу Active Directory.Добавление пользователей в универсальную группу AD из разных доменов C#
У меня нетрудно прагматично (C#) добавлять пользователей «sw» в группу с использованием System.DirectoryServices.AccountManagement .NET 4.5 и т. Д. На порт AD по умолчанию, но когда дело доходит до добавления пользователей из других доменов (nw, mw и т. д.), я получаю сообщение «HResult = -2147016651 Message = сервер не желает обрабатывать запрос» и «операция не разрешена через порт GC, данные 0, v1db1» при установке нового принципала PrincipalContext (ContextType.Domain) sw.main.company.com:3268 "," DC = main, DC = компания, DC = com ").
Все контроллеры домена также являются серверами глобального каталога, а вызывающий порт 3268 позволяет пользователям из других доменов правильно разрешать, но я не могу совершать добавления с помощью команды GlobalPrincipal.Save(), не вызывая ошибку.
Я включил соответствующий код ниже, а также подробный стек ошибок. Мне нужна помощь в этом.
public void SyncADUsers()
{
AddUserToGroup("MW\\abc123user", "Universal_Group_1");
}
public void AddUserToGroup(string userId, string groupName)
{
try
{
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "sw.main.company.com:3268", "DC=main,DC=company,DC=com"))
{
GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, groupName);
group.Members.Add(pc, IdentityType.SamAccountName, userId);
group.Save();
}
}
catch (System.DirectoryServices.DirectoryServicesCOMException E)
{
//doSomething with E.Message.ToString();
}
}
System.InvalidOperationException был необработанным HResult = -2146233079 Сообщения = Сервер не обрабатывают запрос. Source = System.DirectoryServices.AccountManagement StackTrace: в System.DirectoryServices.AccountManagement.ADStoreCtx.UpdateGroupMembership (учетная запись Principal, учетные данные DirectoryEntry, NetCred, authTypes AuthenticationTypes) в System.DirectoryServices.AccountManagement.SDSUtils.ApplyChangesToDirectory (Principal p, StoreCtx storeCtx, GroupMembershipUpdater updateGroupMembership, учетные данные NetCred, AuthenticationTypes authTypes) в System.DirectoryServices.AccountManagement.ADStoreCtx.Update (Principal p) в System.DirectoryServices.AccountManagement.Principal.Save() в ExampleUsers.SyncAD.AddUserToGroup (String userId, String groupName) в c : \ SourceControl \ ExampleUsers \ ExampleUsers \ SyncAD.cs: строка 33 в ExampleUsers.SyncAD.SyncADUsers() в c: \ SourceControl \ ExampleUsers \ ExampleUsers \ SyncAD.cs: строка 18 в ExampleUsers.Program.Main (String [] args) в c: \ SourceControl \ ExampleUsers \ ExampleUsers \ Program.cs: строка 62 в System.AppDomain._nExecuteAssembly (RuntimeAssem bly assembly, String [] args) в System.AppDomain.ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String [] args) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() в System.Threading.ThreadHelper.ThreadStart_Context (состояние объекта) в System.Threading.ExecutionContext.RunInternal (ExecutionContext executeContext, ContextCallback callback, состояние объекта, Boolean preserveSyncCtx) в System.Threading.ExecutionContext.Run (ИсполнениеКонтекстовое исполнениеКонтекст, Обратный вызов ContextCallback, Состояние объекта, Boolean preserveSyncCtx) в System.Threading.ExecutionContext.Run (ExecutionContext executeContext, ContextCallback callback, состояние объекта) в System.Threading.ThreadHelper.ThreadStart() InnerException: System.DirectoryServices.DirectoryServicesCOMException HResult = -2147016651 Сообщение = Сервер не хочет обрабатывать запрос. Source = System.DirectoryServices ErrorCode = -2147016651 ExtendedError = 8245 ExtendedErrorMessage = 00002035: LdapErr: DSID-0C090B3E, комментарий: операция не разрешена через порт GC, данные 0, v1db1 StackTrace: в System.DirectoryServices.DirectoryEntry.CommitChanges() в системе .DirectoryServices.AccountManagement.ADStoreCtx.UpdateGroupMembership (Основная группа, DirectoryEntry де, NetCred полномочия, AuthenticationTypes authTypes) InnerException: