我一直尝试以编程方式将AD组添加到SPGroup,但它不起作用。
我试过了:
SPGroup.AddUsers("myADgroup");和
SPGroupCollection.Add(groupName, currentUser, "myADgroup", groupDescription);我已经尝试过使用domain和不使用domain。
有什么想法吗?
发布于 2010-12-27 19:00:53
呃,没有SPGroup.AddUsers("myAdGroup")方法。甚至没有这种格式的AddUser()方法。
您是否尝试过:
SPGroup g = web.AssociatedMemberGroup;
SPUser u = web.EnsureUser("DOMAIN\\myADgroup");
g.AddUser(u);EnsureUser位确保将AD组添加为SPWeb的用户,以便您随后可以分配权限。
发布于 2011-06-08 19:30:05
您好,目前还没有添加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();
}
}发布于 2011-10-20 12:20:45
这是安迪·伯恩的回答的后续:
在PowerShell中,我最初尝试了以下操作:
$web = Get-SPWeb http://localhost
$web.EnsureUser("domain\test group")这不起作用,这是令人困惑的。
经过更多的实验,我发现以下方法确实有效(Power Users是一个内置组):
$web.EnsureUser("builtin\power users")
$web.EnsureUser("power users")
$web.EnsureUser("test group")然后我注意到我有一个不同的名称值(在PowerShell中别名为DisplayName ) --原来我在Active Directory中为“组名”和“组名(Windows2000之前的版本)”使用了不同的值。
组名本身起作用,但带有域名前缀,我需要使用Windows 2000之前的名称。
有了这个,我就能让下面的代码正常工作:
$web.EnsureUser("domain\pre2000 test group")因此,如果您仍然有问题,请检查AD中两个组名称之间的一致性。
https://stackoverflow.com/questions/4512548
复制相似问题