Синхронизация группы сотрудников в AD и SharePoint - PullRequest
2 голосов
/ 18 октября 2010

Синхронизация сотрудников или любой другой группы AD и SharePoint 2007

В настоящее время существует группа сотрудников как в AD, так и в SharePoint

  • Нам нужен пакетный сценарий или рабочий процесс, иливсе, что синхронизирует эти группы
  • Должна быть односторонняя синхронизация с Active Directory, являющейся главным, и SharePoint, являющейся копией
  • . Она должна синхронизироваться автоматически каждый час, и у нас должна быть возможность вручнуювыполнить синхронизацию в любое время
  • НЕ следует удалять группу и заново ее заполнять.Это означало бы, что будет время, когда никто не будет иметь доступа

Каков наилучший способ сделать это?

1 Ответ

2 голосов
/ 19 октября 2010

Вы используете проверку подлинности Windows на своем сайте SharePoint?

Если да, вам не нужен скрипт для синхронизации групп, если вы это сделаете. Они будут синхронизироваться самостоятельно.Удаление пользователя из группы AD также приведет к его удалению из группы SharePoint.

Возможно, вы столкнулись с небольшой задержкой, из-за которой, возможно, вы решили, что вам нужен сценарий (это должно занять не более 15 минут).

Если вы спешите, вы можете сделать IISReset, и вы должны немедленно увидеть изменения.


Если вы не используете проверку подлинности Windows или если ваша группа SharePoint являетсяЕсли группа будет отличаться от группы AD, то вам нужно будет добавить процедуру синхронизации.

Лучше всего, вероятно, будет какой-то код (или выполняемый пакет служб SSIS) каждые x минут.В цикле проверьте каждого члена вашей группы AD.Проверьте, что они находятся в группе SharePoint.Если это не так, используйте код, подобный следующему:

using (SPWeb oWebsiteRoot = SPContext.Current.Site.RootWeb)
{
    //Loop through your AD group here
    oWebsiteRoot.AllowUnsafeUpdates = true;
    oWebsiteRoot.Groups["Employee"].AddUser(username, email, fullname, String.Empty);
    oWebsiteRoot.Update();
}

, где Сайт - это семейство ваших сайтов, и у пользователя есть вся необходимая информация.Это создаст пользователя SharePoint и добавит его в группу.

Когда это будет сделано, просмотрите каждого пользователя SharePoint и убедитесь, что он входит в группу AD.Если нет, удалите их:

using (SPWeb oWebsiteRoot = SPContext.Current.Site.RootWeb)
{
    SPGroupCollection collGroups = oWebsiteRoot.SiteGroups;
    SPUser oUser = oWebsiteRoot.Users["User_Name"];

    foreach (SPGroup oGroup in collGroups)
    {
        oGroup.RemoveUser(oUser);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...