我们要求让Active Directory Group的用户定期添加到共享点组。换句话说,我们需要将AD组中的用户同步到Share Point组。
我们正在寻找服务/工作流程来执行此操作。
请在这个问题上帮助我们
答案 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);
答案 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));
}
}
}
}