试图以编程方式将AD组添加到SPGroup,但它不起作用。如何以编程方式将AD组添加到SharePoint 2010 SPGroup?
我已经试过:
SPGroup.AddUsers("myADgroup");
和
SPGroupCollection.Add(groupName, currentUser, "myADgroup", groupDescription);
我都与域,没有尝试过。
任何想法?
试图以编程方式将AD组添加到SPGroup,但它不起作用。如何以编程方式将AD组添加到SharePoint 2010 SPGroup?
我已经试过:
SPGroup.AddUsers("myADgroup");
和
SPGroupCollection.Add(groupName, currentUser, "myADgroup", groupDescription);
我都与域,没有尝试过。
任何想法?
呃,没有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")
然后我发现我有名称不同的值(在PowerShell中别名为显示名称) - 事实证明,我在Active Directory中使用了“组名”和“组名(Windows 2000之前)”中的不同值。
组名自身工作,但与域前缀我需要使用Windows 2000以前的名称。
有了这个,我能够得到以下工作:
$web.EnsureUser("domain\pre2000 test group")
所以,如果你仍然有问题,您在AD两组名之间的一致性。
我也遇到了与AD组一起调用SPWeb.EnsureUser的问题。在我的情况下,出现了一些混淆,因为有问题的组的显示名称与其底层的sAMAccountName不同。使用sAMAccountName而不是显示名称调用EnsureUser为我排序问题。
是的,我试过EnsureUser,它没有工作。回来后找不到用户。 – user484483 2010-12-28 23:39:05