Как программно добавить группу AD в SharePoint 2010 SPGroup? - PullRequest
2 голосов
/ 22 декабря 2010

Попытка программно добавить группу AD в SPGroup, и она не работает.

Я пробовал:

SPGroup.AddUsers("myADgroup");

и

SPGroupCollection.Add(groupName, currentUser, "myADgroup", groupDescription);

Я пробовал как с доменом, так и без.

Есть идеи?

Ответы [ 4 ]

5 голосов
/ 27 декабря 2010

Эмм, нет метода SPGroup.AddUsers ("myAdGroup").Нет даже метода AddUser () с этим форматом.

Вы пробовали:

SPGroup g = web.AssociatedMemberGroup;
SPUser u = web.EnsureUser("DOMAIN\\myADgroup");
g.AddUser(u);

Бит EnsureUser гарантирует, чточто группа AD добавлена ​​в качестве пользователя SPWeb, поэтому вы можете назначать права.

1 голос
/ 20 октября 2011

Это продолжение ответа Энди Берна:

Из 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.

1 голос
/ 08 июня 2011

Привет, сейчас нет способов добавить группу 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();
    }
}
0 голосов
/ 10 июля 2012

У меня также возникла проблема с вызовом SPWeb.EnsureUser с группой AD. В моем случае была некоторая путаница, потому что у рассматриваемой группы было отображаемое имя, которое отличалось от основного sAMAccountName. Вызов EnsureUser с именем sAMAccountName, а не с отображаемым именем, решил проблему для меня.

...