[英]How to add AD group to SharePoint 2010 SPGroup programmatically?
一直試圖以編程方式將AD組添加到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();
}
}
這是Andy Burn的回答:
從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")
然后我注意到我有一個不同的Name值(在PowerShell中別名為DisplayName) - 事實證明我在Active Directory中使用了“組名”和“組名(Windows 2000之前版)”中的不同值。
組名自己工作,但使用域前綴我需要使用Windows 2000以前的名稱。
有了這個,我能夠得到以下工作:
$web.EnsureUser("domain\pre2000 test group")
因此,如果您仍然遇到問題,請檢查AD中兩個組名之間的一致性。
我在使用AD組調用SPWeb.EnsureUser時也遇到了問題。 在我的情況下,有一些混亂,因為有問題的組的顯示名稱與其底層的sAMAccountName不同。 使用sAMAccountName而不是顯示名稱調用EnsureUser為我排序問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.