Добавление пользователя AD в локальную группу компьютеров с помощью AccountManagement

Я хотел реализовать добавление пользователя AD в группу локальных компьютеров через User и GroupPrincipals, и я подумал, что это будет работать хорошо и легко. К сожалению, я продолжаю получать сообщение об отказе в доступе. Возможно, я просто не понимаю правильную аутентификацию, но я предположил, что у меня настроен правильный доступ. Вот фрагмент кода того, что называется:

var ctx = new PrincipalContext(ContextType.Machine,
                               Environment.MachineName,
                               ConfigurationManager.AppSettings["MyUser"],
                               ConfigurationManager.AppSettings["MyPW"]);

        var grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, "LocalGrp");
        var adUser = ADService.GetUserByDomainUserName(vModel.ContactId);

        var adCtx = new PrincipalContext(ContextType.Domain,
                                         "myDomain.com",
                                         ConfigurationManager.AppSettings["MyUser"],
                                         ConfigurationManager.AppSettings["MyPW"])
                                              ;
        var user = UserPrincipal.FindByIdentity(adCtx, 
                                                IdentityType.Guid,
                                                adUser.UserGuid.ToString());

        if (grp != null &&
            user != null)
        {
            if(!user.IsMemberOf(grp))
            {
                grp.Members.Add(user);
                grp.Save();
            }
        }

Пользователь найден, группа найдена, но когда я добавляю и достигаю шага grp.Save(), я получаю исключение General Access Denied. с открытием ctx через "MyUser" и "MyPW", я подумал, что это позволит групповые манипуляции на машине, так как эта учетная запись является частью группы локальных администраторов машины. Могу ли я не смешивать контексты машины / домена таким образом, или есть проблема с аутентификацией, которую я просто пропускаю?

1 ответ

Вы запускали Visual Studio в режиме администратора. Несмотря на то, что ваш логин имеет права администратора, ваша программа должна повысить свои права, чтобы использовать эти права, если вы не запустили ее с повышенными правами.

Увидеть:

Другие вопросы по тегам