员工或任何其他AD组与SharePoint 2007的同步
目前,AD和SharePoint都有一个员工组
这样做的最佳方式是什么?
答案 0 :(得分:2)
您是否在SharePoint网站上使用Windows身份验证?
如果你这样做,你不需要一个脚本来保持你的组同步。如果你这样做,他们将保持同步。从AD组中删除用户也会将其从SharePoint组中删除。
您可能会遇到一些延迟,但这可能就是您认为需要脚本的原因(不应超过15分钟)。
如果您匆忙,可以进行IISReset,您应该立即看到您的更改。
如果您没有使用Windows Auth,或者您的SharePoint组与AD组不同,则需要添加同步例程。
你最好的选择可能是每x分钟一些代码(或运行的SSIS包)。在循环中,检查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();
}
其中Site是您的网站集,用户拥有您需要的所有信息。这将创建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);
}
}