Как программно добавить группу AD в SharePoint 2010 SPGroup?
Попытка добавить группу AD в SPGroup программно, и она не работает.
Я пробовал:
SPGroup.AddUsers("myADgroup");
а также
SPGroupCollection.Add(groupName, currentUser, "myADgroup", groupDescription);
Я пробовал как с доменом, так и без.
Есть идеи?
4 ответа
Эээ, нет метода SPGroup.AddUsers("myAdGroup"). Нет даже метода AddUser() с этим форматом.
Ты пытался:
SPGroup g = web.AssociatedMemberGroup;
SPUser u = web.EnsureUser("DOMAIN\\myADgroup");
g.AddUser(u);
Бит EnsureUser гарантирует, что группа AD будет добавлена в качестве пользователя SPWeb, чтобы вы могли затем назначать права.
Привет нет методов для добавления группы AD.
Сначала необходимо создать группу, а затем добавить пользователей в эту группу.
using (SPSite spSite = new SPSite("http://localhost"))
{
using (SPWeb spWeb = spSite.OpenWeb())
{
SPGroupCollection spGrps = spWeb.SiteGroups;
SPUser uGrpOwner = spWeb.CurrentUser;
SPUser uGrpDefMember = spWeb.CurrentUser;
string sGrpName = "GrupeName";
spGrps.Add(sGrpName, uGrpOwner, uGrpDefMember, "Decription");
SPGroup spGrp = spGrps[sGrpName];
List<SPUser> spUsersFromAD = YouFunctionGetUserFromAD();
foreach(SPUser spUser in spUsersFromAD){
spGrp.AddUser(spUser);
}
spWeb.Update();
}
}
Это продолжение ответа Энди Берна:
Из PowerShell я изначально пробовал следующее:
$web = Get-SPWeb http://localhost
$web.EnsureUser("domain\test group")
Это не сработало, что было загадочно.
Еще несколько экспериментов, и я обнаружил, что сработало следующее (опытные пользователи - встроенная группа):
$web.EnsureUser("builtin\power users")
$web.EnsureUser("power users")
$web.EnsureUser("test group")
Затем я заметил, что у меня было другое значение для имени (псевдоним DisplayName в PowerShell) - получается, что я использовал разные значения в Active Directory для "Имя группы" и "Имя группы (до Windows 2000)".
Имя группы работало само по себе, но с префиксом домена мне нужно было использовать имя до Windows 2000.
С этим я смог заставить работать следующее:
$web.EnsureUser("domain\pre2000 test group")
Итак, если у вас все еще есть проблемы, проверьте соответствие между двумя именами групп в AD.
У меня также возникла проблема с вызовом SPWeb.EnsureUser с группой AD. В моем случае была некоторая путаница, потому что у рассматриваемой группы было отображаемое имя, которое отличалось от основного sAMAccountName. Вызов EnsureUser с именем sAMAccountName, а не с отображаемым именем, решил проблему для меня.