将Active Directory组用户添加到SharePoint站点组

时间:2012-05-23 08:22:24

标签: sharepoint active-directory spgroup

我们要求让Active Directory Group的用户定期添加到共享点组。换句话说,我们需要将AD组中的用户同步到Share Point组。

我们正在寻找服务/工作流程来执行此操作。

请在这个问题上帮助我们

2 个答案:

答案 0 :(得分:1)

Perhabs你可以使用SPUtility.GetPrincipalsInGroup MSDN

bool reachedMaxCount;
SPWeb web = SPContext.Current.Web;
int limit = 100;
int group = "Domain\\SecurityGroup";
SPPrincipalInfo[] users = SPUtility.GetPrincipalsInGroup(web, group, limit, out reachedMaxCount);

有一个很好的例子:https://stackoverflow.com/a/6153943/655293

答案 1 :(得分:0)

据我所知,没有开箱即用的Web服务或工作流执行此任务。 @ HW90建议的SPUtility.GetPrincipalsInGroup方法指出你肯定是正确的方向。

我建议您编写自定义SharePoint计时器作业(SPJobDefinition)。在SPJobDefinition.Execute Method

中执行所需的操作
public override void Execute(Guid targetInstanceId)
{
  using (SPSite site = new SPSite("http://server/the/site/collection")
  {
    using (SPWeb web = site.OpenWeb())
    {
      int limit = 100;
      string group = "Domain\\SecurityGroup";
      SPPrincipalInfo[] users = SPUtility.GetPrincipalsInGroup(web, group, limit, out reachedMaxCount);

      SPGroup siteGroup = web.SiteGroups["TheGroup"];

      // clear the group
      for (int i = siteGroup.Users.Count - 1; i >= 0; i--)
      {
        siteGroup.Users.Remove(i);
      }

      foreach (SPPrincipalInfo pi in users)
      {
        siteGroup.AddUser(web.EnsureUser(pi.LoginName));
      }
    }
  }
}